Ich stimme zu, was Reflog sagte, mein Unternehmen verwendet ein Ant-Skript, um den Paketnamen für jede Marke zu ändern und auch Ressourcen nach Bedarf zu ersetzen. Ich schrieb die Basis-App mit Standardverhalten und erstellte Ordner für jede weitere Marke, die nur die Dateien enthielt, die sich von der Basis unterschieden, genau wie die mehreren aufklappbaren Ordner mit unterschiedlichen dpi-Größen ("Drawable", "Drawable-hdpi"). ..). Zu den weiteren Änderungen gehörte das Ändern der Zeichenkettendateien für jede Marke für die entsprechenden Farben und den Rechtstext.
Durch ihre Benennung im Lokalisierungsstil (zum Beispiel "drawable-de-rAA-hdpi", "layout-de-rBB" ...) konnte ich dies schnell in mehreren Emulatoren testen, indem ich den " Custom Locale "App in jedem Emulator, und stellen Sie das Gebietsschema auf" en_AA "," en_BB "je nach Bedarf. Durch das Speichern mehrerer Kopien des Basis-AVDs konnte ich diese Einstellungen speichern, sodass ich nicht innerhalb des Emulators wechseln musste, um alle endgültigen Marken zu testen.
Eine Einschränkung dieses Ansatzes ist, dass diese emulierte Version der App alle Dateien in der .apk enthält, während das Ant-Skript die Duplikate entfernt. Auch wenn diese "vollständige" .apk auf Geräten installiert wird, wird nur das Standardverhalten angezeigt, es sei denn, Sie können das Gebietsschema auf dem Gerät so einstellen, dass es dem Markengebietsschema entspricht. (Benutzerdefiniertes Gebietsschema wurde auf keinem meiner physischen Geräte installiert.) Dies funktioniert gut, wenn Sie absichtlich vorhandene benannte Gebietsschemata verwenden (en_AU, en_CA, en_GB), aber problematisch für benutzerdefinierte Namen sein können (en_B1, en_XX).
Definitiv, das ist, wofür Bibliotheksprojekte erfunden wurden. Wir haben gerade eine App in ein "full + lite" -Schema umgewandelt und das ursprüngliche Projekt in ein Bibliotheksprojekt umgewandelt und es dann in zwei Projekte aufgeteilt. – Felix
Danke @johan - auch als Referenz, es ist auch möglich, das Befehlszeilenargument --custom-package mit aapt in build zu verwenden.xml, wie hier beschrieben: http://blog.elsdoerfer.name/2010/04/29/android-build-multiple-versions-of-a-project/ - Library-Ansatz klingt besser langfristige Wette auf mich tho – Kevin
angegebenen Link kaputt :( – Moorthy