2013-03-04 11 views
5

Czy system Android kompresuje surowe zasoby XML, tj. Te pod katalogiem res/xml?Czy Android kompresuje surowe zasoby XML?

Mam pewne zasoby w assets i planuję przenieść je do res/xml (dzięki czemu mogę je zlokalizować), ale nie jestem pewien, czy będą one skompresowane.

Rozumiem, że mogę to sprawdzić, rozpakowując apk, ale może ktoś już wie?

Odpowiedz

1

Proszę spojrzeć na this wpis na blogu Briana Hardy'ego. Wszystkie "pliki ściśliwe" są kompresowane nawet pliki xml. Pliki Xml są kompresowane przez aapt w formacie binarnym. Jeśli nie chcesz, aby pliki były kompresowane, możesz zapisać je jako jeden z typów plików w poście na blogu. Możesz również spakować swoje dane do pliku .zip (Android nie będzie próbował go skompresować), a następnie rozpakować go samodzielnie podczas czytania.

+0

A zatem, kiedy używam parsera Xml na zasobach R.xml, abdroid rozpakowuje wymagany zasób, a następnie analizuje go? –

+0

Nie, nie rozpakuj tego. Pliki xml nie są spakowane. Są konwertowane na skompresowany format binarny. Metody zdefiniowane w pliku android.content.res.Resources mogą analizować ten format. Na przykład, metoda [this] (http://developer.android.com/reference/android/content/res/Resources.html#getXml (int)) może parsować ogólny plik xml za pomocą id podanego przez aapt at czas budowy. –