Split Android App in zwei Teile

8

Ich versuche zu verstehen, ob es möglich ist, eine Android App in zwei Teile zu teilen (installiert von einem APK). Ich schaue mir das an, um einen Teil im Gerätespeicher und den anderen Teil auf der SD-CARD zu installieren. Die zwei Teile gehören zusammen und sollten nicht separat installiert werden.

Hinweis: Ich muss nicht nur Ressourcen, sondern auch Aktivitäten trennen, damit APK Expansion Files keine Lösung ist, da solche Funktionalität nicht zur Verfügung steht.

    
Louis 03.04.2012, 06:31
quelle

8 Antworten

3

Ich denke, es wird möglich sein. Können Sie versuchen, den folgenden Ansatz zu verfolgen?

  1. Erstellen Sie zwei Apps
  2. In der Manifest-Datei des ersten APK solltest du eine Aktivität der Kategorie MAIN und LAUNCHER haben. Auf diese Weise wird Ihre App in der Launcher-Liste angezeigt
  3. Du solltest in der 2. APK keine Aktivität der Kategorie MAIN und LAUNCHER haben, aber du weißt, welche Aktivität du als Launcher-Aktivität der zweiten App öffnen musst, da es deine eigene App ist. Auf diese Weise wird Ihre zweite App niemals in der Launcher-Liste der Apps angezeigt
  4. Platziere 2. APK im Ordner "Assets" des ersten APK
  5. Wenn Ihre Haupt-App Inhalte aus der zweiten App verwenden möchte, installieren Sie die zweite App aus dem Ordner "Assets" ( wie hier erwähnt ) mit der Einstellung der Installationsort auf SDCard wie folgt: android:installLocation="preferExternal" und starten Sie dann Ihre gewünschte Aktivität der zweiten App

Ich habe das noch nicht versucht, aber theoretisch scheint es legitim.

Lassen Sie mich wissen, ob das funktioniert. Danke!

    
Shrikant 30.01.2017 05:43
quelle
1
  

APK-Erweiterungsdateien

Google Play erfordert derzeit, dass Ihre APK-Datei nicht mehr als 100 MB beträgt. Für die meisten Anwendungen ist dies ausreichend Platz für den gesamten Code und die Assets der Anwendung. Einige Apps benötigen jedoch mehr Platz für High-Fidelity-Grafiken, Mediendateien oder andere große Assets. Wenn Ihre App zuvor 100 MB überschritten hat, mussten Sie die zusätzlichen Ressourcen selbst hosten und herunterladen, wenn der Nutzer die App öffnet. Das Hosting und die Bereitstellung der zusätzlichen Dateien kann kostspielig sein und die Benutzererfahrung ist oft weniger als ideal. Um diesen Vorgang für Sie einfacher und für die Nutzer angenehmer zu gestalten, können Sie in Google Play zwei große Erweiterungsdateien anhängen, die Ihr APK ergänzen.

Google Play hostet die Erweiterungsdateien für Ihre Anwendung und stellt sie kostenlos für das Gerät bereit. Die Erweiterungsdateien werden auf dem freigegebenen Speicherort des Geräts gespeichert (die SD-Karte oder die per USB montierbare Partition; auch als "externer Speicher" bezeichnet), auf die Ihre App zugreifen kann. Auf den meisten Geräten lädt Google Play die Erweiterungsdatei (en) gleichzeitig mit dem Herunterladen der APK herunter, sodass Ihre Anwendung alles enthält, was sie benötigt, wenn der Benutzer sie zum ersten Mal öffnet. In einigen Fällen muss Ihre Anwendung die Dateien jedoch von Google Play herunterladen, wenn Ihre Anwendung gestartet wird.

  

Herunterladen der Erweiterungsdateien

In den meisten Fällen lädt und speichert Google Play Ihre Erweiterungsdateien gleichzeitig mit der Installation oder Aktualisierung des APK auf dem Gerät. Auf diese Weise sind die Erweiterungsdateien verfügbar, wenn Ihre Anwendung zum ersten Mal gestartet wird. In einigen Fällen muss Ihre App die Erweiterungsdateien jedoch selbst herunterladen, indem Sie sie über eine URL anfordert, die Sie in einer Antwort vom Application Licensing-Dienst von Google Play erhalten haben.

  

Die grundlegende Logik, die Sie benötigen, um Ihre Erweiterungsdateien herunterzuladen, ist die folgende:

Wenn Ihre Anwendung gestartet wird, suchen Sie nach den Erweiterungsdateien auf dem freigegebenen Speicherort (im Verzeichnis Android / obb //).         Wenn die Erweiterungsdateien vorhanden sind, sind Sie fertig und Ihre Anwendung kann fortfahren.         Wenn die Erweiterungsdateien nicht vorhanden sind:             Führen Sie eine Anfrage mit der Google Application License für Google Apps aus, um die Dateinamen, Größen und URLs Ihrer App zu erhalten.             Verwenden Sie die von Google Play bereitgestellten URLs, um die Erweiterungsdateien herunterzuladen und die Erweiterungsdateien zu speichern. Sie müssen die Dateien auf dem freigegebenen Speicherort (Android / obb //) speichern und den genauen Dateinamen verwenden, der von der Antwort von Google Play bereitgestellt wird.

Quelle

    
W4R10CK 29.01.2017 12:36
quelle
0

Ihre App könnte einfach prüfen, ob die SD-Karte aktuell verfügbar ist ("eingesteckt") oder nicht. Wenn es verfügbar ist, funktioniert Ihre App wie gewohnt und wenn die SD-Karte nicht verfügbar ist, würde die App automatisch beenden / ein Pop-up anzeigen / verschiedene Aktivitäten starten / was auch immer.

    
jdstaerk 25.01.2017 13:33
quelle
0

Ja, es ist möglich. Aber mit einem Vorbehalt, wäre es möglich, beide Apps separat zu installieren, da beide in den Laden hochgeladen werden sollten. Sie müssen nur eine Menge Absichten verwenden.

Sie müssen die gesamte Kommunikation zwischen beiden Apps mit Intents abwickeln. Das bedeutet, dass alles, was die erste App benötigt, mit einer Absicht für die zweite App abgefragt werden muss. Wenn die andere App im Gerät nicht gefunden wird, sollte dies eine Absicht für den Play Store auslösen. Auf diese Weise arbeiten zwei Apps wie eine. Denken Sie daran, der Benutzer wird immer noch feststellen, wo Sie Ihre App installieren, aber wie Christian-Strempfer darauf hingewiesen hat, kann die SD-Karte als bevorzugtes Ziel festgelegt werden.

Wenn Sie Speicherplatz sparen möchten, sollten Sie Ihre Ressourcen (Bilder, Sounds usw.) dynamisch gestalten. Da es sich bei all diesen Dateien nur um Dateien in der apk handelt, könntest du sie einfach durch Dateien von der SD-Karte ersetzen. Sie müssen sie nur irgendwo hochladen und herunterladen, nachdem die App installiert wurde. Auf diese Weise können Sie die genauen Versionen der einzelnen Ressourcen bereitstellen und sie bei Bedarf entfernen. Sie können lernen, welche Bildschirme am häufigsten verwendet werden, und die Assets für die verwendeten weniger entfernen. Etc.

    
Fco P. 30.01.2017 05:22
quelle
0

Sie können, aber nicht aus Ihrem Grund. Mehrere APKs dienen lediglich dazu, sicherzustellen, dass Ihre App für mehrere Geräte funktioniert - nicht, um ihre Gesamtgröße auf den internen Speicher und die SD-Karte aufzuteilen.

Mehrfacher APK-Support

  

Obwohl wir Sie ermutigen, ein einziges APK zu entwickeln und zu veröffentlichen, das   unterstützt so viele Gerätekonfigurationen wie möglich   manchmal nicht möglich. Um Ihnen bei der Veröffentlichung Ihrer Anwendung zu helfen   Mit Google Play können Sie so viele Geräte wie möglich veröffentlichen   APKs unter dem gleichen Anwendungsauflistung. Google Play liefert dann   jedes APK zu den entsprechenden Geräten basierend auf Konfigurationsunterstützung   Sie haben in der Manifestdatei jedes APKs deklariert.

     

Indem Sie Ihre Anwendung mit mehreren APKs veröffentlichen, können Sie:

     

Unterstützt verschiedene OpenGL-Texturkomprimierungsformate mit jedem APK.

     

Unterstützen Sie verschiedene Bildschirmkonfigurationen mit jedem APK.

     

Unterstützen Sie verschiedene Plattformversionen mit jedem APK.

     

Derzeit sind dies die einzigen Geräteeigenschaften von Google Play   unterstützt die Veröffentlichung mehrerer APKs als dieselbe Anwendung.

    
Davek804 03.04.2012 06:38
quelle
0

Vielleicht ist das was du willst? APK-Erweiterungsdateien

    
Harry 21.02.2013 10:07
quelle
0

Wenn Sie nur nach einer Möglichkeit suchen, Anwendungsressourcen auf dem externen Laufwerk zu behalten, ist Harrys Antwort hilfreich .

Ansonsten ist es nicht möglich, eine App-Installation in zwei Teile zu teilen. Sie können das Manifestattribut android: installLocation verwenden, um zu definieren, wo Sie es installieren möchten Sie können es sogar auf nur intern installieren auf dem Gerät erzwingen, aber es gibt keine Option, es zu teilen.

Alternativen

Zwei Apps

Sie erstellen zwei getrennte zwei Apps und überprüfen den Start von jedem, wenn der andere installiert ist. Andernfalls bitten Sie den Benutzer, den anderen zu installieren und den Benutzer an den App Store weiterzuleiten.

Eine App überprüft den externen Speicher

Ich kenne Ihren Anwendungsfall nicht, aber aus Ihren Kommentaren klingt es, als würden Sie nach der falschen Lösung suchen.

  

Die Anwendung, über die ich nachdenke, hat einen Teil, der immer verfügbar sein soll (Installation im Gerätespeicher) und einen Teil, den der Benutzer nicht verfügbar machen kann (vorübergehend), indem er die SD-CARD entfernt. Auch wenn der Benutzer entscheidet, die App auf oder von der SD-CARD zu verschieben, sollte der Teil, den ich im Gerätespeicher installieren möchte, immer dort bleiben.

Sie können einfach überprüfen, ob der externe Speicher verfügbar ist und bestimmte Aktivitäten blockieren, wenn dies nicht der Fall ist. Wenn Sie sicherstellen möchten, dass es dieselbe SD-Karte ist, können Sie beim ersten Start eine UUID erstellen und sie sowohl intern als auch extern speichern. Wenn sie übereinstimmen, ist es die richtige SD-Karte.

Fazit

Ihre Lösung ist wahrscheinlich zu kompliziert und Sie sollten nach Alternativen suchen.

    
Christian Strempfer 26.01.2017 20:37
quelle
0

Sie können zwei verschiedene Startaktivitäten von einem APK aus erstellen, indem Sie zwei MAIN LAUNCHER-Einträge in Manifest.xml definieren

%Vor%

Dadurch werden zwei Einstiegspunkte für eine App erstellt, zwei verschiedene Launcher-Symbole mit dem Namen "Auth Firebase" und andere mit dem Namen "Auth Google" öffnen jeweils unterschiedliche Aktivitäten.

    
Mohd Asim Suhail 31.01.2017 22:10
quelle

Tags und Links