2011-06-09 7 views
7

Je construis une application basée sur des composants pour Android. En bref, je voudrais charger un fichier APK pendant l'exécution et exécuter du code à partir de celui-ci.Chargement du contexte à partir d'un fichier APK dans Android

J'ai utilisé DexClassLoader avec succès pour charger et instancier certaines classes, le problème réside dans la lecture des ressources de l'APK.

Je voudrais créer une coutume objet Context que je pouvais utiliser pour charger ces ressources (avec une instance LayoutInflater par exemple), de façon similaire à la createPackageContext(), qui ne fonctionne pas pour ma demande car il est à la recherche que dans l'installation paquets.

+1

C'est quelque chose que vous pouvez essayer (je n'ai pas essayé moi-même, mais c'était ce que je pensais quand j'ai cherché les docs): 'PackageManager.getPackageArchiveInfo' retournera un' PackageInfo' qui vous permettra d'obtenir un 'ApplicationInfo '. Avec cet objet, vous pouvez appeler 'PackageManager. getResourcesForApplication' pour vous renvoyer un objet 'Resources'. –

Répondre

1
  InputStream in = getResources() 
       .openRawResource(R.raw.fileName); 

alors juste lu à partir de ce flux. Cet exemple ouvrirait res/raw/fileName.html pour la lecture. Je ne comprends pas pourquoi charger des classes pour l'exécution à partir de votre propre fichier apk d'une manière si problématique. Si je comprends mal et que vous avez besoin de charger à partir d'un autre fichier apk, alors - qui empêche d'ouvrir ce fichier pour l'entrée et la lecture de celui-ci? C'est juste une archive ZIP compresses. Je pense que vous pourriez construire votre implémentation en remplaçant les méthodes d'accès aux données et votre instance pourrait contenir la référence au fichier d'où lire les données.

Questions connexes