2009-06-10 20 views
8

Pracuję nad aplikacją dla systemu Android, która musi działać na kilku plikach danych o łącznej wartości około 30MB. Złożyłem test, a emulator nie powiódł się z OutOfDiskSpace. Debugowanie na urządzeniu nie powiodło się przy jeszcze mniejszym rozmiarze danych. Po przeczytaniu grup google okazuje się, że limit rozmiaru aplikacji nie jest nigdzie nigdzie określany i nikt z google nie został przedstawiony ze szczegółami na ten temat. Biorąc pod uwagę, że istnieją aplikacje na iPhone'a, które mają ponad 100MB, wprowadzenie takiego małego limitu na aplikacje na Androida wydaje się dziwne, z wyjątkiem faktu, że masz stosunkowo niewielką całkowitą dostępną przestrzeń pamięci aplikacji (< 100MB). Aplikacja Android wymagająca dużych plików danych

Teraz moje pytanie:

Jakie techniki używasz do czynienia z tym limitem? Jeśli masz aplikację, która potrzebuje więcej niż 10 MB, czy umieścisz ją na serwerze sieciowym i za pierwszym razem pobierasz? Jeśli tak, w jaki sposób obchodzić się z kontrolą dostępu, aby tylko twoja aplikacja mogła uzyskać dane?

Odpowiedz

0

Wygląda na to, że próbujesz załadować duży plik do pamięci - to nigdy nie jest skalowalne. Użyj modelu transmisji strumieniowej, aby przetworzyć plik w porcjach lub skompresuj zawartość, jeśli potrzebujesz całej rzeczy. Jeśli serwujesz go z serwera/usługi sieciowej, po prostu serwuj części, których potrzebuje aplikacja, a następnie cały plik.

+0

To nie jest problem. Problem polega na znalezieniu dobrej techniki uzyskiwania dostępu do potrzebnych danych. Cała aplikacja nigdy nie jest ładowana do pamięci, ale całkowity rozmiar jest ograniczony co do tego, co można nawet skopiować do przestrzeni aplikacji. – AdamC

+0

@Gandlaf Zgadzam się z twoim sposobem robienia rzeczy dla tak dużych plików. Wydaje mi się, że oryginalny plakat mówił ogólnie o APK-ie, chociaż nie został tak określony. W każdym razie, przegłosowałem cię, ponieważ nie mogłem zrozumieć przyczyny upadku. –

11

Powszechnie stosowaną techniką jest pobieranie danych po uruchomieniu aplikacji i zapisywanie danych na karcie SD. dzieje się tak, ponieważ pamięć wewnętrzna jest rzadkim towarem z obecnym stanem Androida. Instalowanie aplikacji na karcie SD nie jest oficjalnie obsługiwane i brakuje pamięci wewnętrznej w HTC Dream i Sapphire.

Here is a link do wątku na oficjalnej grupie android-developers, gdzie inżynier Google Android (Dianne Hackborn) reaguje na tym samym pytaniem z

Najlepszym rozwiązaniem w tej chwili jest myślę pobrać dużą ilość danych po instalowanie.

+0

Dlaczego głosowanie w dół? Wydaje mi się, że pytanie brzmi: jak utworzyć aplikację z dużą ilością danych? W tej chwili sposobem na zrobienie tego jest umieszczenie aplikacji bazowej na Android Market, a następnie pobranie dużych plików (audo/video/spakowane bazy danych) przy pierwszym uruchomieniu aplikacji, zapisanie tych dużych plików na karcie SD, aby na samym urządzeniu nie zabraknie miejsca. Czy to nie jest pytanie? – snctln