Después de que Android instala una aplicación desde Marketplace, ¿mantiene el archivo .apk?
¿Existe una ubicación estándar donde Android guardaría dichos archivos?
Las aplicaciones preinstaladas están en la /system/app
carpeta. Las aplicaciones instaladas por el usuario están en /data/app
. Supongo que no puedes acceder a menos que tengas un teléfono rooteado. No tengo un teléfono rooteado aquí, pero prueba este código:
public class Testing extends Activity {
private static final String TAG = "TEST";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
File appsDir = new File("/data/app");
String[] files = appsDir.list();
for (int i = 0 ; i < files.length ; i++ ) {
Log.d(TAG, "File: "+files[i]);
}
}
Enumera los apks en mi magia htc rooteada y en el emu.
Puede usar el administrador de paquetes (
pm
)adb shell
para enumerar los paquetes:y para mostrar dónde está el
.apk
archivo:Y
adb pull
para descargar el apk.fuente
adb pull /data/app/com.example.app-filename.apk path/to/desired/destination
Si solo desea obtener un archivo APK de algo que instaló anteriormente, haga lo siguiente:
No necesita rootear su teléfono, usar
adb
o escribir nada.fuente
No hay una ubicación estándar, sin embargo, puede usar PackageManager para obtener información sobre los paquetes y la clase ApplicationInfo que puede obtener desde allí tiene información diversa sobre un paquete en particular: la ruta a su .apk, la ruta a su directorio de datos, la ruta a un .apk de solo recursos (para aplicaciones bloqueadas hacia adelante), etc. Tenga en cuenta que puede o no tener permiso para leer estos directorios dependiendo de su relación con la otra aplicación; sin embargo, todas las aplicaciones pueden leer el recurso .apk (que también es el .apk real para la aplicación sin bloqueo de reenvío).
Si solo está hurgando en el shell, las aplicaciones actualmente sin bloqueo de reenvío se encuentran en /data/app/.apk. El usuario de shell puede leer un .apk específico, aunque no puede enumerar el directorio. En una versión futura, la convención de nomenclatura cambiará ligeramente, así que no cuente con que siga siendo la misma, pero si obtiene la ruta del archivo .apk desde el administrador de paquetes, puede usarlo en el shell.
fuente
Las aplicaciones preinstaladas generalmente están en / system / app y las aplicaciones instaladas por el usuario están en / data / app.
Puede usar "adb pull", pero necesita conocer la ruta completa del archivo APK. En el emulador, puede obtener un listado de directorio usando "adb shell" + "ls". Pero en un dispositivo Android, no podrá hacerlo en la carpeta "/ data" por razones de seguridad. Entonces, ¿cómo averiguar la ruta completa del archivo APK?
Puede obtener una lista completa de todas las aplicaciones instaladas escribiendo un programa que consulte el PackageManager. Fragmento de código corto a continuación:
También puede encontrar aplicaciones que brinden dicha información. Hay muchos de ellos. Prueba este (AppSender).
fuente
Si está buscando la ruta de una aplicación específica, una solución rápida y sucia es simplemente obtener el informe de errores:
No sé si esto proporcionará una lista exhaustiva, por lo que puede ser útil ejecutar primero la aplicación.
fuente
Instalar desde el mercado
Es el comportamiento del mercado si mantener la apk después de la instalación. Google Play no mantiene la apk después de la instalación. Otros mercados de terceros pueden tener comportamientos diferentes.
Instalar desde la herramienta de desarrollo / depuración (adb, eclipse, android studio)
Cuando instalamos el apk desde la herramienta de depuración, invocamos directamente
adb install
o desde eclipse / android studio, el apk se transferirá (adb push
) a un directorio público de lectura y escritura, por lo general/data/local/tmp/
. Después de eso, la herramienta usará elpm
comando para instalar, eliminará el apk temporal/data/local/tmp/
después de la instalación exitosa.Podríamos obtener esta información de la salida de depuración como la siguiente.
Cómo el sistema mantiene el apk
Por supuesto, el sistema tiene que almacenar todas las aplicaciones en algún lugar. Hay tres lugares para que el sistema mantenga las aplicaciones basadas en los diferentes tipos de aplicaciones:
para la aplicación de stock
Por lo general, estos se envían en el dispositivo por fabricación, incluida la aplicación principal para el sistema en ejecución y el servicio de Google, puede encontrarlos en el directorio
/system/app
y/system/priv-app
.aplicación instalada por el usuario
La mayoría de los apks entran en esta categoría. Por lo general, estos usuarios los instalan desde el mercado o
adb install
sin-s
opción. Puede encontrarlos en el directorio/data/app
de un dispositivo rooteado.aplicación en tarjeta sd
Si el apk habilita su ubicación de instalación en sdcard con
android:installLocation="auto"
su manifiesto, la aplicación se puede mover a sdcard desde el menú del administrador de aplicaciones del sistema. Estas aplicaciones generalmente se encuentran en la carpeta segura de sdcard/mnt/sdcard/asec
.Otra forma de forzar la ubicación de instalación a sdcard es usar el comando
adb install -s apk-to-install.apk
.Como nota, los archivos para la aplicación preinstalada ya no están en un solo
.apk
archivo. Hay una carpeta que contiene archivos para cada aplicación preinstalada en el directorio/system/app
o/system/priv-app
para la versión más reciente de Android.fuente
Puede extraer aplicaciones con ADB. Están en / data / App /, creo.
Tenga en cuenta que debe rootear su teléfono para extraer aplicaciones protegidas contra copia.
fuente
En / data / app pero para protección de copia no creo que puedas acceder a él.
fuente
Si está rooteado, descargue la aplicación Root Explorer. El mejor administrador de archivos para usuarios rooteados. De todos modos, Sistema / aplicación tiene todas las aplicaciones predeterminadas que vienen con el teléfono, y datos / apk tiene todas las aplicaciones de las aplicaciones que ha instalado. Simplemente mantenga presionada la apk que desee (mientras está en Root Explorer), acceda a su carpeta / sdcard y simplemente pegue.
fuente
Use esto para enumerar todos los .apks en / data / app /
fuente
Puede extraer los .apks de cualquiera de ellos:
fuente
Los archivos .apk se pueden ubicar en el directorio / data / app /. Usando ES File Explorer podemos acceder a estos archivos .APK.
fuente
si está usando eclipse goto DDMS y luego el explorador de archivos allí verá la carpeta Sistema / Aplicaciones y las aplicaciones están allí
fuente
Cuando instalé mi aplicación en el emulador, me mostró el archivo .apk en
Después de instalar su aplicación, simplemente use el comando ls vie shell y verifique el directorio deseado, pero depende del tipo de aplicación que esté intentando instalar. Usé este método para instalar Point si algo está mal.
fuente
Otra forma de obtener los
apk
mensajes de correo electrónico que no puede encontrar, en un dispositivo rooteado es con la caja de herramientas rom .Realice una copia de seguridad con el administrador de aplicaciones, luego vaya
storage/emulated/appmanager
y compruebe la copia de seguridad de la aplicación del sistema o la copia de seguridad de la aplicación del usuario .fuente
Para buscar
apk
, descargue e instale el remitente de la aplicación Bluetooth desde Play Store. Una vez que se complete la instalación, abra el remitente de la aplicación Bluetooth. Mostrará todas las aplicaciones(.apk)
instaladas en su dispositivo, luego puede transferir fácilmente la aplicación a su PC a través de Bluetooth.fuente
A diferencia de lo que está escrito en la respuesta elegida, no necesita root y es posible obtener los APK de las aplicaciones instaladas, que es como lo hice en mi aplicación ( aquí ). Ejemplo:
Luego, para cada uno de los elementos de la lista, puede acceder a packageInfo.applicationInfo.sourceDir , que es la ruta completa del APK de la aplicación instalada.
fuente
Bueno, llegué a esta publicación porque quería reinstalar alguna aplicación que me gustaba mucho. Si este es su caso, simplemente vaya a Google Play y busque Mis aplicaciones, la pestaña Todos, y encontrará la manera de reinstalar alguna aplicación que le haya gustado. Me enfrenté a un problema que no pude encontrar al buscar una aplicación, pero estaba allí en Mis aplicaciones para poder reinstalarla en mi nuevo móvil;)
fuente