Au coeur du système Android – enregistrer une application dans un fichier APK
C’est au tour du troisième billet dans la série sur Au coeur du système Android.
Introduction
De très nombreuses personnes se demandent comment il est possible d’enregistrer une application installée sur un système Android dans un fichier au format APK.
Solution
Je vous propose un simple bout de code qui enregistre toutes les applications installées.
//Récupère la liste des applications installées PackageManager appInfo = getPackageManager(); List<PackageInfo> list = appInfo.getInstalledPackages(PackageManager.GET_PROVIDERS); for (PackageInfo pack : list) { if (pack.applicationInfo.publicSourceDir!=null) { try { //Construit le nom du fichier APK String apkFileName = pack.applicationInfo.publicSourceDir.substring(pack.applicationInfo.publicSourceDir.lastIndexOf("/")+1); InputStream in = new FileInputStream(new File (pack.applicationInfo.publicSourceDir)); //Enregistre le fichier APK sur la carte mémoire OutputStream out = new FileOutputStream(new File(Environment.getExternalStorageDirectory()+"/"+apkFileName)); int count = 0; byte[] buf = new byte[512]; while ( (count = in.read(buf,0,512))!=-1) { out.write(buf, 0, count); } out.close(); in.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }
Notez que seules les applications publiques peuvent être enregistrées sur la carte mémoire. En effet, Google propose moyennant finance de protéger une application publiée sur l’Android Market en la rendant privée. Ainsi, il n’est pas possible de l’enregistrer dans un fichier APK.
Conclusion
Ce genre de manipulation avec le système Android n’est pas très documentée. Beaucoup de développeurs se demandent comment le faire puisque certaines applications proposent de sauvegarder les applications installées au format APK sur la carte mémoire. Et bien maintenant vous saurez le faire ! 😉
https://blog.lecacheur.com/2010/03/22/au-coeur-du-systeme-android-enregistrer-une-application-dans-un-fichier-apk/AndroidDéveloppementandroidC'est au tour du troisième billet dans la série sur Au coeur du système Android. Introduction De très nombreuses personnes se demandent comment il est possible d'enregistrer une application installée sur un système Android dans un fichier au format APK. Solution Je vous propose un simple bout de code qui enregistre toutes les...SeBSébastien LECACHEUR23r0@laposte.netAdministratorLe weblogue de SeB
Bonjour et merci pour les découvertes que je fais ici! Comme vous en connaissez un PAQUET et que j’ai un mystère, j’en profite: enregistrer une image du navigateur implique son re-téléchargement (alors qu’un iPhone a l’air de se servir de celle en cache) Alors sur Android peut-on aussi enregistrer sans double énergie, double temps et doubles données?
Merci pour votre savoir partagé! Dominique
Je n’ai pas vérifié le comportement du navigateur Android. Et il faudrait également vérifier le comportement des autres navigateurs disponibles sous Android. Néanmoins, il me semble que ce soit une amélioration à apporter à ces derniers et non à Android afin qu’ils utilisent leur cache plutôt que de télécharger à nouveau l’image.
Merci pour tes encouragements ! 🙂