Système de plugins pour interface utilisateur
Bonjour,
Dans le cadre d'un projet étudiant, je cherche à faire une application modulaire avec la notion de plugins. Plus précisément, on aurait :
- Une application maître qui permet de lister, rechercher, mettre à jour, supprimer, exécuter les plugins et stocker des informations en provenance des plugins.
- Des plugins téléchargés depuis internet qui contiennent la logique applicative et des éléments d'interface utilisateur.
Pour l'instant, je suis parvenu à coder une application maître qui télécharge un fichier .apk via HTTP puis qui instancie une classe de ce fichier (avec la méthode DexClassLoader()). Je me suis appuyé sur cet article : http://android-developers.blogspot.f...in-dalvik.html
Par contre, je ne vois absolument pas comment faire pour afficher le layout (ni d'ailleurs un autre élément graphique) contenu en tant que ressource dans le fichier .apk téléchargé. J'ai essayé de créer un Intent depuis l’application maître en passant le nom de la classe du plugin téléchargé :
Code:
1 2 3 4 5
|
DexClassLoader cl = new DexClassLoader(...);
Class<?> libClass = cl.loadClass(nom_de_la_classe_du_plugin);
Intent intent = new Intent(this.getApplicationContext(), libClass);
startActivity(intent); |
Mais ça ne fonctionne pas puisque le Intent n’est évidemment pas déclaré dans le AndroidManifest.xml de l’application maître.
Est-ce qu’il existe un moyen d’avoir des Intent “dynamiques” ? Et plus largement est-ce que ce type de plugin est possible sous Android ? Faut-il passer par une autre méthode ? Ou bien est-ce tout simplement impossible ??
Merci de votre aide.
Stéphane Legrand.