¿Como Se Instala Un Apk Y Como Se Ve Despues? – android

Pregunta:


Tengo una duda sobre que pasa con ese archivo apk una vez instalado si se queda como uno solo o se separa en fragmentos que componen el funcionamiento del app. Pregunto esto, porque quiero hacer un app como linkSD2 que se encargue de mover app y no se si se queda en ese formato apk o cambia a otro formato o se divide en diferentes fragmentos.

Preguntado por: PowerApp

quiero hacer un app como linkSD2 que se encargue de mover app

Que tu puedas mover la aplicación programaticamente me parece que no es posible, pero tu puedes definir el archivo AndroidManifest.xml de tu aplicación donde se instalaría la aplicación, y si esta únicamente permite instalarse en el almacenamiento interno, esto mediante la propiedad:

android:installLocation

en la cual puedes especificar

"internalOnly": si la aplicación debe ser instalada únicamente en el
almacenamiento interno.

"auto" : si la aplicación puede ser instalada en el almacenamiento
externo (SD Card), pero el sistema operativo puede instalar la aplicación en el
almacenamiento interno por default. Si el almacenamiento interno esta
lleno, el sistema operativo la instala en el almacenamiento externo.
El usuario puede mover la aplicación en el almacenamiento que elija.

"preferExternal" : Indica que la aplicación prefiere ser instalada en
el almacenamiento externo (SD Card). El usuario puede mover la aplicación en el
almacenamiento que elija.

Ejemplo:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    android:installLocation="auto"
    ...
    ... >

Con respecto a que sucede si instalas tu aplicación con el .apk, en el caso de que se instale tu aplicación en el almacenamiento externo, el .apk se instala ahí pero datos que genera la aplicación como son bases de datos, preferencias, los .dex , etc esto se guarda en almacenamiento interno.

no se si se queda en ese formato apk o cambia a otro formato o se
divide en diferentes fragmentos.

En realidad se divide, el archivo .apk es un archivo empaquetado, de hecho puedes comprobarlo cambiando la extensión a .zip y ábrelo para que tu mismo veas su contenido.

Como ejemplo cambie la extensión de mi archivo MyApp.apk a MyApp.zip y este es su contenido:

introducir la descripción de la imagen aquí


Desde la configuración puedes realizar el movimiento de tu aplicación a almacenamiento externo (SD Card) o interno, si es que tienes definido en tu AndroidManifest.xml :

  android:installLocation="auto"

o

  android:installLocation="preferExternal"

introducir la descripción de la imagen aquí

El archivo .apk es un paquete que tiene un contenido variable, dependiendo del proyecto en si.

Lo que más comunmente se encuentra dentro del .apk son las siguientes carpetas:

  • META-INF :

    • MANIFEST.MF: El manifiesto
    • CERT.RSA: Certificado de la aplicación
    • CERT.SF: Lista de los recursos y el digest SHA-1 de las líneas correspondientes en el manifiesto, por ejemplo:

       Signature-Version: 1.0 
       Created-By: 1.0 (Android)  SHA1-Digest-Manifest:
       wxqnEAI0UA5nO5QJ8CGMwjkGGWE=  
       ...  
       Name: res/layout/exchange_component_back_bottom.xml  SHA1-Digest:
       eACjMjESj7Zkf0cBFTZ0nqWrt7w=  
       ...  
       Name: res/drawable-hdpi/icon.png 
       SHA1-Digest: DGEqylP8W0n0iV/ZzBx3MW0WGCA=
      
  • lib: Carpeta que contiene el código compilado que es específico a la arquitectura del procesador. Se divide en:

    • armeabi: Código compilado para procesadores ARM
    • armeabi-v7a: Código compilado para procesadores ARMv7 y superior
    • x86: Código compilado para procesadores x86
    • mips: Código compilado para procesadores MIPS
  • res: carpeta que contiene recursos no compilados dentro de resources.arsc .

  • assets: carpeta que contiene assets que se recuperan vía AssetManager.

  • AndroidManifest.xml: Un manifiesto adicional, que describe el nombre, versión, derechos de acceso y bibliotecas referenciadas por la aplicación. El archivo podría estar en formato binario XML de Android, que puede ser convertido a XML de texto plano con herramientas como AXMLPrinter2, apktool, or Androguard.

  • classes.dex: La clases compiladas en formato dex, para la máquina virtual Dalvik

    • resources.arsc : Archivo que contiene recursos pre-compilados, tales como XML binario por ejemplo.

Al mejor estilo de java, el archivo .apk es en realidad un archivo comprimido con zip (como también lo son, por ejemplo, los archivos .jar y .war), por lo que puedes fácilmente ver su contenido utilizando cualquier herramienta que pueda mostrar/descomprimir un zip. Puede ser necesario que para ello tengas que renombrar el archivo.

Fuente

Referencia

Fuente

Related Posts:

Push notifications to devices and browsers via Pushbullet
...
Send messages to mobile devices with Google Firebase.
...
A PHP library for easy PushOver service use: send real-time notifications to your Android and iOS devices.
...
A simple PHP library for the Pushover service
...
Google Cloud Messaging (GCM) PHP Server Library
...
Read basic info about an application from .apk file.
...
A PHP library for sending GCM messages
...
A Bundle for Symfony2 projects to send notifications in mobile devices through Firebase Cloud Messaging API
...
PHP API for Firebase Cloud Messaging from Google
...
PHP application server for google firebase cloud messaging (FCM)
...
Standalone PHP library for easy devices notifications push.
...
Girar Rectángulo con LibGDX – android libgdx
Pregunta: Estoy haciendo un programilla de prueba que se compone de : 4 botones , arriba, abajo, izquierda y derecha. Una nave espacial, formada por un ...
Botones con android y LibGDX – android libgdx
Pregunta: Buenas, he creado un pequeño boton en android, con libGDX muy sencillo, pero el problema es el siguiente: Le tengo asignada una funcion que escribe ...
¿Location manager Android? Experiencias – android mysql android-studio
Pregunta: He desarrollado una aplicación Gps que envía información a Mysql cada 10 seg atraves de locationmanager. ¿Según su experiencia hasta cuanto es posible disminuir ...
Crear cuenta regresiva N segundos mientras se visualiza una Activity en Android – java android
Pregunta: Quiero implementar una cuenta regresiva de N segundos, que se inicie cuando la Activity se muestre, se pare el contador cuando el usuario decide ...
Tags:

Add a Comment

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *