2011-09-01 11 views

Odpowiedz

1

Z resources.arsc, mogą się zdarzyć dwie rzeczy.

Zwykle plik jest zapisywany w .apk nieskompresowany. Android mmap() s pliku i po prostu czyta z niego, w razie potrzeby, bez ładowania całego pliku do pamięci RAM.

Jeśli jest skompresowany jednak bezpośrednim dostępie swobodnym do pliku nie jest już opcją, więc robi się dekompresji i przechowywane w pamięci do dalszych operacji (np ładuje ciąg).

Nie jestem pewien, dlaczego tak się stanie, jeśli aplikacja nie działa. Być może jest on przechowywany jako background process?

+0

dlaczego właśnie Android go rozpakował i skopiuj go do danych/danych, czy coś najpierw zrobił, a następnie umieścił w danych/aplikacji, aby plik APK mógł być mniejszy? – DzMonster

+0

Nie mam dobrej odpowiedzi. Myślę, że musiałbyś iść na kompromis w obie strony. Jeśli zapiszesz go w '/ data/data', marnujesz miejsce na dysku. Jeśli załadujesz go do pamięci RAM, marnujesz pamięć RAM. Czy twój plik jest wystarczająco duży, aby ta alokacja była problemem? – Vlad

+0

Tak, teraz ma prawie 30mb rozmiar, plik resource.arsc ma 6mb. Ponieważ w środku jest dużo języka. Sugestia? – DzMonster