Co zrobić gdy moja aplikacja dla Androida zajmuje więcej niż 50MB
Ograniczenie wielkości aplikacji (pliku APK) do 50MB na platformie Android jest dość uciążliwe, ale nie pozostajemy sami z tym problemem. Jest to wyłącznie teoretyczne ograniczenie. Rozwiązaniem są expansion files. Expansion file są to pliki z roszerzeniem .obb, hostowane na serverach Google. Odciąża to nas tym samym z konieczności hostowania dużych plików, co przy sporej ilości instalacji może stanowić duże obciążenie.
Zawartość pliku obb może być całkowicie dowolna, może być to plik ZIP, PDF czy nawet MP4. O ile spakowanie naszych dodatkowych danych do postaci ZIP’a wydaje się rozsądne, pamiętajmy że takie dane trzeba będzie wypakować. Dużo lepszym rozwiazaniem jest trzymanie plików w oryginalnej formie, pozwala nam to osadzić plik obb i korzystać z jego zawartości jak gdyby były to wypakowane pliki. Bez rozpakowywania.
Standardowym narzędziem do tworzenia pliku obb, jest JOBB tool. Przykładowy sposób wygenerowania pliku dla ANT’a:
<exec executable="${adb.sdk}tools/jobb.bat"> <arg value="-d" /> <arg value="${basedir}/sciezka-do-folderu-z-naszymi-plikami/" /> <arg value="-o" /> <arg value="${obbpath}" /> <arg value="-pn" /> <arg value="${app.full-package}" /> <arg value="-pv" /> <arg value="${version}" /> </exec>
oczywiście w miejsce zmiennych należy podać odpowiednie ścieżki, np:
adb.sdk = C:/Program Files (x86)/Android/android-sdk/ obbpath=sciezka-do-pliku/main.100001.com.mycompany.mygame.obb app.full-package = com.mycompany.mygame version=100001
Rzeczą o której należy pamiętać jest schemat nazywania pliku: [main|patch].<expansion-version>.<package-name>.obb
Tak przygotowany plik wstawiamy w android console wraz z naszą aplikacją. Mamy możliwość dodania dwóch plików rozszerzenia, główny (main) i aktualizujący (patch). Każdy z tych plików pozwala na dodanie dodatkowych 2GB danych.
Aby skorzystać z naszego pliku w aplikacji, najprościej jest wykorzystać gotową bibliotekę.