¿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:

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 ...
Crear prototipos para aplicaciones Android – android prototipos
Pregunta: estoy interesado en optar por una herramienta que me sea bastante util para poder realizar prototipos de aplicaciones móviles, especificamente para Android. Empece buscando ...
¿Como usar la clase Intent para mostrar las apps del usuario – android android-intent
Pregunta: Quiero que mi app muestre las aplicaciones del usuario en un ListView. He tratado de investigar y me salio en ingles la mención a esta ...
Calcular distancia entre dos coordenadas android – android
Pregunta: quisiera saber como puedo hallar la distancia entre 2 coordenadas en kilómetros en trayecto vía automóvil, estoy usando la API de google maps. Agradezco cualquier ...
¿Cómo puedo crear una aplicación Android que no se pueda cerrar así como WhatsApp? – android android
Pregunta: Esta pregunta ya tiene una respuesta aquí: ...
Spinner y EditText – java android
Pregunta: Tengo este código para cargar un spinner con datos de una base de datos: private class Getfrutas extends AsyncTask<Void, Void, Void> { ...
Crear listview en un Fragment en android – android
Pregunta: Estoy creando una aplicación en la cual incluyo un listview, en un Fragment. Dicho listview ya lo había ejecutado en un activity normal y ...
¿ Por qué se me detiene la aplicación al usar este pequeño código? – java android bottombar
Pregunta: Tengo un bottomBar donde tengo 5 opciones, la última es la del mapa de google API. Mi problema es que al hacer click en ...
¿ Cómo implemento este código para android 6.0? – java android
Pregunta: Tengo en un Fragment implementado el Google API y FUNCIONA. Pero funciona en mis 3 móviles que son jellybean, kitkat y lollipop. El ...
¿Cómo guardar un ImageView en Android? – java android
Pregunta: Mi aplicación está compuesta por un botón y un ImageView y cuando se aprieta el botón la ImageView recibe una imagen que tengo en ...
¿Como Se Puede Almacenar Una Imagen En Una Base De Datos SqlLite? – android
Pregunta: Quiero saber si es posible almacenar una imagen en una base de datos Sql Lite. Gracias. Preguntado por: PowerApp La imagen se guardaría ...
Como usar windowSoftInputMode=“adjustNothing” – android android-layout
Pregunta: Buenas, tengo un layout para una actividad en el cual cuando voy a utilizar el teclado android este oculta algunos views, he estado buscando ...
Tags:

Add a Comment

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