Comme indiqué ci-dessus, un seul fichier APK ne peut contenir qu'une application.
Vous pouvez toujours suggérer à votre utilisateur l'installation d'une autre application, mais je comprendre ce n'est pas ce que vous voulez ici.
Alors, voici une petite astuce qui offrira plus de ce que vous visez (accepter pour différents noms de paquets, aucun moyen de le faire) enveloppé dans les une seule APK:
Première: Ajouter un androïde: tag processus à votre activité autonome:
<activity android:name=".StandAloneActivity"
android:process=":MyNewProcess">
ce informera Android que cette activité doit être exécutée sur un processus distinct dont le nom est « MyNewProcess ». Vous pouvez ajouter des composants supplémentaires (Activités, Services ..) étiquetés comme ": MyNewProcess". Ils seront tous exécutés selon le même processus.
Ensuite: Créer un filtre intention « action.MAIN » pour les DEUX votre activité autonome et l'activité principale de votre application:
<activity android:name=".MainActivity" >
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
<activity
android:name=".StandAloneActivity"
android:process=":MyNewProcess" >
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
Ce informera Android qui deux icônes homescreen distinctes besoins à créer pour votre application, une pour chacune des activités MAIN (exécutées maintenant sur des processus séparés).Inutile de dire que les invocations de méthodes standard ne passeront pas d'un processus à un autre. Vous aurez besoin d'utiliser Intents, AIDL interfaces ou quel que soit autre mécanisme IPC votre petit cœur désire
c'est presque exactement ce que je voulais. de la manière hacky que j'utilise pour trouver les noms de paquets des paquets en cours d'exécution, j'ai même obtenu le nom de paquet différent que je voulais, à savoir {my.package.name}: MyNewProcess. Je dis presque parce que j'ai supprimé le deuxième filtre d'intention afin d'empêcher la deuxième activité d'obtenir une icône de lanceur de son propre. –