Android Erweiterung apk

8

Ich habe die Dokumentation von APK-EXPANSIONSDATEIEN auf Android durchgesehen und ich habe mich gefragt, ob das so ist Können wir alle Layout-Dateien in der Patch-Apk und die Geschäftslogik der Anwendung in der Haupt-APK haben?

Ich lese diese Android Apps Brechen Sie die 50MB Barriere auch.

Ich habe versucht, dies zu erstellen, aber das Problem, dem ich gegenüberstand, war, dass unsere Widget-Namen in der R.java-Datei enthalten sein mussten. Wenn ich Layoutdateien in der Patch-Datei nicht in der Hauptdatei habe, kann ich mich nicht darauf beziehen mit R.id.xxx.

Also bitte sagen Sie mir, ob das möglich ist oder nicht?

Wenn das möglich ist, wie kann es dann erreicht werden?

Ich möchte auch wissen, welche Ressourcen oder Assets in der Patch-APK hinzugefügt werden können.

    
Shruti 02.05.2013, 06:22
quelle

1 Antwort

3

Es ist nicht möglich, die Layoutdateien von apk zu trennen und dann mit R.id.whatever

darauf zuzugreifen

Erweiterungsdateien sind zum Speichern der Assets wie Medien, Dokumente und anderer statischer Dinge gedacht, die von Ihrer Anwendung verwendet werden. Der Inhalt des Erweiterungspacks wird im freigegebenen Speicher des Geräts gespeichert und ist nicht mit der APK-Datei verknüpft. Um auf die Assets der Erweiterungsdatei zuzugreifen, müssen Sie Ihre Anwendung codieren, um sie vom freigegebenen Speicherort des Geräts zu lesen.

Zurück zur Frage des Speicherns der Layoutdateien in einer Erweiterungsdatei. Um dies zu erreichen, müssen Sie einen eigenen Layout-Parser mit der Grundfunktionalität ähnlich dem LayoutInflator schreiben. Sie können mit LayoutInflator keine Layoutdatei analysieren, die nicht Teil der APK ist oder auf einem externen Speicher gespeichert ist. Die Idee besteht also darin, Ihre Layoutdateien in der Erweiterungsdatei zu speichern (die sich außerhalb der apk befindet, auf gemeinsam genutztem Speicher), die Datei mit einem eigenen Parser zu analysieren und die Ansichten zur Laufzeit dem Hauptlayout hinzuzufügen. Obwohl Sie nicht in der Lage sind, auf Ihre Ansichten mit R.id.whatever zugreifen, aber Sie können immer visuelle Baum verwenden, um auf die Ansichten zugreifen oder beim Analysieren der Ansichten speichern Sie die referenzierten Objekte, um sie für die spätere Verwendung zugreifen.

Hoffe, das gibt Ihnen einen Ausgangspunkt.

    
Vinod Maurya 02.05.2013, 10:24
quelle

Tags und Links