Jak zmniejszyć rozmiar pliku .APK


#1

Witam,
Stworzyłem grę na androida - jest 1 problem - plik APK waży ~50MB - czytałem, że jest możliwość zmniejszenia tego rozmiaru pliku:
1)Czy da się to zrobić z poziomu Windows CMD?
2)Jakieś tutoriale? (mogą być po angielsku)
Z góry dziękuję za odpowiedź.


#2

Pewnie Unity albo Unreal? :smiley:


#3

Tak, Unreal (wiadomość musi mieć min 20 znaków… więc dopiusuję to w nawiasie)


#4

Niewiem jak w Unreal ale pewnie tak jak w Unity i innych gotowych silnikach - ponizej jakiejs tam wartosci nie zejdziesz. dla unity jest to okolo 20-23mb, czysty projekt bez niczego. A jedyne co mozesz zmniejszyc to rozmiar tekstur, muzyki i tego typu rzeczy.


#5

to to akurat wiem - w unrealu zamiast 250Mb plik APK waży teraz 50MB - ale słyszałem, że da się to jeszcze jakoś skompresować


#6

W przypadku Unity trzeba zapłacić za zmniejszenie (serio), więc może w przypadku Unreal to samo :smiley:


#7

Tylko tu mi raczej chodzi nie o to, jak to zrobić w edytorze - czytałem, że plik APK to kilka plików .ZIP i że można to bardziej skompresować - tylko jak? Jakiś program, komenda CMD?


#8

W Unity czysty projekt to 20 mb ?
Ostatnio stworzyłem mini grę i całość zajmuje 10 mb.


#9

Niestety tak, jeszcze raz sprawdzilem. Czysty projekt - tylko zapisana scena(pusta) 22mb…
size

Dlatego przerzucam sie na libgdx przy robieniu malych gier.
Przyklad:
Mala gra splashscreen + menu + gra (max 10 spritow + moze 2 / UI + muzyka (200kb))
Unity: instalka 25mb - zainstalowane na p9lite 40mb+ oO
Libgdx: instalka 5mb (i wierze ze moge jeszcze zmniejszyc) - zainstalowane 7mb…
jest roznica.


#10

Zrobiłem sobie teraz builda na najnowszym Unity.
Jest to gra typu kółko i krzyżyk z multiplayer. 5 scen, parę spritów, trochę czcionek, dźwięków, muzyka 400 kb.
Gra zajmuje niecałe 11 mb, a wiem że można by zejść poniżej 10 mb.


#11

No u mnie tez najnowsze Unity… cos jest nie tak, no ale watpie zeby cos bylo namieszane przy pustym projekcie :confused: Cos zmieniales szczegolnego?


#12

Texture compression ETC, compression LZ4HC, Device Filter ARMv7, Stripping level mscorlib


#13

tak jak myslalem ze device filter… to zmniejsza odrazu do 10mb.
no ale nie obslugujesz w ten sposob wiecej urzadzen.
Mozna by dac publish z multiple apk. Ale jak masz device filter fat - armv7 + x86 to ponizej 20mb (19,99) czysty projekt nie schodzi,


#14

No a co z pro guardem? Unity to raczej spory silnik, że wszystkiego nie korzystasz, więc sporo kodu można wywalić. Z mojego doświadczenia, w przypadku aplikacji potrafi to zmniejszyć rozmiar APK o połowę.

https://developer.android.com/studio/build/shrink-code.html


#15

Tak można też użyć jakiejś lepszej kompresji. Też miałem takie dylematy co do małych gier, ale doszedłem do wniosku, że już teraz to nie ma takiego znaczenia dla użytkownika.


#16

Wyexportowalem projekt do gradle -> import do Android Studio -> w gradle-build jest automatycznie wcisniety proguard.
Po zrobieniu apk -> to samo 20mb miniumum. A wielkosc nieraz ma znaczenie w przypadku prostych gier. Bo jak mam gre z 5cioma spritami ktora zajmuje 20+mb to ja kasuje jak niemam miejsca. W przypadku srednich/aaa to nie ma znaczenia. Po drugie taka apka zainstalowana na telefonie staje sie 40mb… Wedlug mnie unity jest super do sredniej wielkosci gier. Do malych jest poporstu za duze a do AAA za wolne i ograniczone (chociaz powoli sie to zmienia jak dodaj wiecej rzeczy)


#17

Proguard jest włączony dla release. Ale pytanie czy jest skonfigurowany. Załóżmy, że kodzisz grę 2D. Kod odpowiedzialny za 3D można spokojnie wywalić. Pytanie czy Unity zadba o to za ciebie?

Ja niestety z Unity nie miałem styczności to nie wiem jak to działa. W przypadku LibGdx sporo trzeba robić ręcznie. Rozmiar apk spadał o ok 4mb. Tyle, że tam pusty projekt jest dużo mniejszy :slight_smile:


#18

Jak znajde dzisiaj chwile to przegladne neta na temat konfiguracji.
Zalozylem ze unity zrobilo auto tak jak wszystko :smiley:
No w libgdx mam narazie 5mb (scene2d, box2d i freetype)… kiedy unity robilo 20+… a to jest roznica w mini gierce.