2013-05-02 18 views
8

Przechodziłem przez dokumenty APK EXPANSION FILES w Androidzie i zastanawiałem się, czy możemy mieć wszystkie pliki układu w patch apk i logiki biznesowej aplikacji w głównym apk?Android Expansion apk

Przeczytałem to również Android Apps Break the 50MB Barrier.

Próbowałem to zrobić, ale problemem, z którym miałem do czynienia było to, że nasze nazwy widżetów muszą znajdować się w pliku R.java, który jest generowany automatycznie. Jeśli mam pliki układów w pliku poprawki, nie w pliku głównym, to nie jestem w stanie odnieść następnie za pomocą R.id.xxx.

Proszę mi powiedzieć, czy jest to możliwe, czy nie?

Jeśli jest to możliwe, to w jaki sposób można to osiągnąć?

Chcę również wiedzieć, jakie są zasoby lub zasoby, które można dodać w pakiecie apk.

Odpowiedz

3

Mówiąc prosto, to nie jest możliwe, aby oddzielić pliki układ z apk, a następnie próbuje uzyskać do niego dostęp za pomocą R.id.whatever

pliki rozszerzające są przeznaczone do przechowywania aktywów, takie jak media, Dokumenty i inne takie statyczne rzeczy, których używa aplikacja, a zawartość dodatku jest przechowywana w pamięci współdzielonej urządzenia i nie jest powiązana z plikiem APK. Aby uzyskać dostęp do zasobów pliku rozszerzenia, musisz zakodować aplikację, aby odczytała je ze współużytkowanej lokalizacji przechowywania tego urządzenia.

Wracając do pytania o przechowywanie plików układu w pliku rozszerzenia. Aby to osiągnąć, będziesz musiał napisać własny parser układu z podstawową funkcjonalnością podobną do LayoutInflator. Nie można użyć narzędzia LayoutInflator do analizy dowolnego pliku układu, który nie jest częścią pakietu apk lub przechowywany w pamięci zewnętrznej. Chodzi o to, aby przechowywać pliki układu w pliku rozszerzenia (który będzie poza apk, w pamięci współdzielonej urządzenia), przeanalizować plik za pomocą własnego analizatora składni i dodać widoki do głównego layoutu w środowisku wykonawczym. Chociaż nie będziesz w stanie uzyskać dostępu do swoich widoków za pomocą R.id.whatever, ale zawsze możesz użyć drzewa wizualnego, aby uzyskać dostęp do widoków lub podczas analizowania widoków przechowuj przywoływane obiekty, aby uzyskać do nich dostęp w celu późniejszego wykorzystania.

Mam nadzieję, że da ci to punkt wyjścia.

Powiązane problemy