Une fois qu'Android a installé une application à partir de Marketplace, conserve-t-il le fichier .apk?
Existe-t-il un emplacement standard où Android conserverait ces fichiers?
Les applications préinstallées sont dans le /system/app
dossier. Les applications installées par l'utilisateur sont dans /data/app
. Je suppose que vous ne pouvez pas accéder à moins que vous n'ayez un téléphone enraciné. Je n'ai pas de téléphone enraciné ici mais essayez ce code:
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]);
}
}
Il répertorie les apks dans ma magie htc enracinée et dans l'émeu.
Vous pouvez utiliser le gestionnaire de packages (
pm
)adb shell
pour lister les packages:et pour afficher où se trouve le
.apk
fichier:Et
adb pull
pour télécharger l'apk.la source
adb pull /data/app/com.example.app-filename.apk path/to/desired/destination
Si vous souhaitez simplement obtenir un fichier APK de quelque chose que vous avez précédemment installé, procédez comme suit:
Vous n'avez pas besoin de rooter votre téléphone, d'utiliser
adb
ou d'écrire quoi que ce soit.la source
Il n'y a pas d'emplacement standard, mais vous pouvez utiliser le PackageManager pour en savoir plus sur les packages et la classe ApplicationInfo que vous pouvez obtenir à partir de là contient diverses informations sur un package particulier: le chemin vers son .apk, le chemin vers son répertoire de données, le chemin à un .apk de ressources uniquement (pour les applications verrouillées en avant), etc. Notez que vous pouvez ou non avoir la permission de lire ces répertoires en fonction de votre relation avec l'autre application; cependant, toutes les applications sont capables de lire la ressource .apk (qui est également le vrai .apk pour les applications non verrouillées en avant).
Si vous ne faites que fouiller dans le shell, les applications actuellement non verrouillées en avant se trouvent dans /data/app/.apk. L'utilisateur du shell peut lire un .apk spécifique, bien qu'il ne puisse pas lister le répertoire. Dans une prochaine version, la convention de dénomination sera légèrement modifiée, donc ne comptez pas qu'elle reste la même, mais si vous obtenez le chemin du .apk du gestionnaire de paquets, vous pouvez l'utiliser dans le shell.
la source
Les applications préinstallées sont généralement dans / system / app et les applications installées par l'utilisateur sont dans / data / app.
Vous pouvez utiliser "adb pull", mais vous devez connaître le chemin complet du fichier APK. Sur l'émulateur, vous pouvez obtenir une liste de répertoires en utilisant "adb shell" + "ls". Mais sur un appareil Android, vous ne pourrez pas le faire dans le dossier "/ data" pour des raisons de sécurité. Alors, comment déterminez-vous le chemin complet du fichier APK?
Vous pouvez obtenir une liste complète de toutes les applications installées en écrivant un programme qui interroge le PackageManager. Extrait de code court ci-dessous:
Vous pouvez également trouver des applications qui donneront de telles informations. Il y en a beaucoup. Essayez celui-ci (AppSender).
la source
Si vous recherchez le chemin d'une application spécifique, une solution rapide et sale consiste simplement à grep le rapport de bogue:
Je ne sais pas si cela fournira une liste exhaustive, il peut donc être utile d'exécuter l'application en premier.
la source
Installer à partir du marché
C'est le comportement du marché de conserver l'apk après l'installation. Google play ne conserve pas l'apk après l'installation. D'autres marchés tiers peuvent avoir des comportements différents.
Installer à partir de l'outil de développement / débogage (adb, eclipse, android studio)
Lorsque nous installons l'apk à partir de l'outil de débogage, directement invoqué
adb install
ou depuis eclipse / android studio, l'apk sera transféré (adb push
) vers un répertoire public en lecture et en écriture, généralement/data/local/tmp/
. Après cela, l'outil utilisera lapm
commande pour installer, il supprimera l'apk temporaire/data/local/tmp/
après l'installation réussie.Nous pourrions obtenir ces informations à partir de la sortie de débogage comme suit.
Comment le système conserve l'apk
Bien sûr, le système doit stocker tous les apks quelque part. Il y a trois endroits pour que le système conserve les apks en fonction des différents types d'apks:
pour l'application stock
Ceux-ci sont généralement expédiés dans l'appareil par le fabricant, y compris l'application principale pour le fonctionnement du système et le service Google, vous pouvez les trouver sous le répertoire
/system/app
et/system/priv-app
.application installée par l'utilisateur
La plupart des apks entrent dans cette catégorie. Ces apks sont généralement installés à partir du marché par les utilisateurs ou
adb install
sans-s
option. Vous pouvez les trouver dans le répertoire/data/app
d'un périphérique enraciné.app sur sdcard
Si l'apk active son emplacement d'installation dans sdcard avec
android:installLocation="auto"
dans son manifeste, l'application peut être déplacée vers sdcard à partir du menu du gestionnaire d'applications du système. Ces apks sont généralement situés dans le dossier sécurisé de sdcard/mnt/sdcard/asec
.Une autre façon de forcer l'emplacement d'installation à sdcard consiste à utiliser la commande
adb install -s apk-to-install.apk
.À noter, les fichiers de l'application pré-installée ne sont plus dans un seul
.apk
fichier. Il existe un dossier contenant des fichiers pour chaque application préinstallée dans le répertoire/system/app
ou/system/priv-app
pour la dernière version d'Android.la source
Vous pouvez extraire des applications avec ADB. Ils sont dans / data / App /, je crois.
Notez que vous devez rooter votre téléphone pour extraire des applications protégées contre la copie.
la source
Dans / data / app mais pour la protection contre la copie, je ne pense pas que vous puissiez y accéder.
la source
Si vous êtes rooté, téléchargez l'application Root Explorer. Meilleur gestionnaire de fichiers pour les utilisateurs enracinés. Quoi qu'il en soit, System / app a tous les apks par défaut fournis avec le téléphone, et data / apk a tous les apks des applications que vous avez installées. Appuyez longuement sur l'apk de votre choix (dans l'Explorateur racine), accédez à votre dossier / sdcard et collez-le.
la source
Utilisez ceci pour lister tous les .apks sous / data / app /
la source
Vous pouvez extraire les .apks de n'importe lequel d'entre eux:
la source
Les fichiers .apk peuvent être situés dans le répertoire / data / app /. En utilisant ES File Explorer, nous pouvons accéder à ces fichiers .APK.
la source
si vous utilisez eclipse goto DDMS, puis l'explorateur de fichiers, vous verrez le dossier System / Apps et les apks sont là
la source
Lorsque j'ai installé mon application sur l'émulateur, il a montré mon fichier .apk dans
Après avoir installé votre application, utilisez simplement la commande ls vie shell et vérifiez le répertoire souhaité, mais cela dépend du type d'application que vous essayez d'installer. J'ai utilisé cette méthode pour installer Point si quelque chose ne va pas.
la source
Une autre façon d'obtenir les
apk
s que vous ne trouvez pas sur un appareil enraciné est d' utiliser la boîte à outils rom .Effectuez une sauvegarde à l'aide du gestionnaire d'applications, puis accédez à
storage/emulated/appmanager
et vérifiez la sauvegarde de l'application système ou la sauvegarde de l'application utilisateur .la source
Pour trouver un
apk
, téléchargez et installez l'expéditeur d'application Bluetooth à partir du Play Store. Une fois l'installation terminée, ouvrez l'expéditeur de l'application Bluetooth. Il affichera toutes les applications(.apk)
installées sur votre appareil, puis vous pourrez facilement transférer l'application sur votre PC via Bluetooth.la source
Contrairement à ce qui est écrit sur la réponse choisie, vous n'avez pas besoin de root et il est possible d'obtenir les APK des applications installées, c'est ainsi que je l'ai fait sur mon application ( ici ). Exemple:
Ensuite, pour chacun des éléments de la liste, vous pouvez accéder à packageInfo.applicationInfo.sourceDir , qui est le chemin complet de l'APK de l'application installée.
la source
Eh bien, je suis venu à ce post parce que je voulais réinstaller une application que j'aimais beaucoup. Si tel est votre cas, accédez simplement à Google Play et recherchez Mes applications, l'onglet Tout, et vous trouverez un moyen de réinstaller une application qui vous a plu. J'ai rencontré un problème que je n'ai pas pu trouver en recherchant une application, mais il était présent dans Mes applications afin que je puisse réinstaller dans mon nouveau mobile;)
la source