A może tak prze­nie­ść liby?

Smart­fon ma wie­le zasto­so­wań. Dla przy­kła­du wie­le osób, gra na tele­fo­nie, gdy jest w kolej­ce do leka­rza.
Mam pomy­sł, jak moż­na by oszczę­dzić miej­sce na dys­ku w smart­fo­nie z andro­idem. Jak na linu­xie pobie­ra­my grę przez Synap­se, wyświe­tla nam się lista pakie­tów, któ­re musi­my dodat­ko­wo pobrać, żeby odpa­lić grę. Jest to mię­dzy inny­mi sil­nik gra­ficz­ny, na któ­rym dzia­ła dana pro­duk­cja. Na andro­idzie spra­wa ta roz­wią­za­na jest w inny spo­sób. Według mnie jest on gor­szy. Jeśli pobie­ra­my plik apk gry, w tym pli­ku są od razu liby sil­ni­ka gra­ficz­ne­go. Pół bie­dy . Ale w wie­lu apli­ka­cja­ch są nawet 2 wer­sje (zda­ża­ją się przy­pad­ki, gdzie nawet 3) sil­ni­ka gra­ficz­ne­go, do archi­tek­tu­ry arme­abi-v7a oraz x86. Jeże­li pobie­rze­my np 100 gier opar­ty­ch na sil­ni­ku uni­ty – będzie­my mie­li 100 kopii bar­dzo podob­ny­ch biblio­tek, oraz 100 inny­ch kopii, któ­re nawet nie zadzia­ła­ją na naszym smart­fi­nie. War­to wie­dzieć, ile zaj­mu­ją takie biblio­te­ki. Zwy­kle jest to 40%-80% wagi całej apki (mowię o gra­ch bez pli­ków obb lub dany­ch w /sdcard/android/data ) . Więc na par­ty­cji /sdcard mamy peł­no libów, a w /system jest pare­set wol­ny­ch mega­baj­tów miej­sca.

Mój pomy­sł jest taki.
W andro­idzie domyśl­nie były­by zain­sta­lo­wa­ne biblio­te­ki paru naj­po­pu­lar­niej­szy­ch sil­ni­ków, np. uni­ty­3d, cocos 2d, unre­al engi­ne 3. Gry, zamia­st odwo­łań do pli­ków w pli­ku apk (tro­chę dziw­nie to brzmi 😉 ), odwo­ły­wa­ły­by się do biblio­tek sil­ni­ków gra­ficz­ny­ch w /system.

Te roz­wią­za­nie mia­ło­by swo­je minu­sy.
Google wska­za­ło­by jed­no­znacz­nie, że to z tych sil­ni­ków nale­ży korzy­stać. Kon­ku­ren­cja by zde­chła. Dewe­lo­pe­rzy nie się­ga­li­by po inne sil­ni­ki, bo mie­li­by świa­do­mo­ść, że przez to gra zaj­mo­wa­ła­by dużo wię­cej miej­sca na dys­ku.

Nara­dza się jesz­cze pyta­nie – co z oso­ba­mi, któ­re mają za mało miej­sca w /system na zmiesz­cze­nie peł­ny­ch biblio­tek?
Nie­trud­no było­by stwo­rzyć narzę­dzie bin­du­ją­ce z odwo­łań do biblio­tek w /system do fol­de­ru na /sdcard, o ile tam mamy wystar­cza­ją­co miej­sca. Inne roz­wią­za­nie, było­by takie, że dewe­lo­pe­rzy pod­sy­ła­ją do Skle­pu Play wer­sję z liba­mi w pli­ku apk, a Google zmie­nia tro­chę kod i pro­gram zamia­st odwo­ły­wać się do libów w pli­ku apk odwo­łu­je się do tych w par­ty­cji sys­te­mo­wej. Na ser­we­ra­ch Google były­by dwie wer­sje. W klien­cie skle­pu play była­by opcja, czy pobie­ra­ne gry mia­ły­by zawie­rać liby, czy nie.

Jest jesz­cze jeden pro­blem.
Nie wszy­scy gra­ją na andro­idzie, a gdy­by liby były pre­in­sta­lo­wa­ne, nie­któ­rzy narze­ka­li­by, że to im zabie­ra miej­sce.
Ale na to też moż­na zna­leźć roz­wią­za­nie.
Liby wca­le nie były­by pre­in­sta­lo­wa­ne, a opcja ich insta­la­cji była­by w usta­wie­nia­ch tele­fo­nu. Po klik­nię­ciu w odpo­wied­nią opcję zosta­li­by­śmy prze­nie­sie­ni do spe­cjal­nej apli­ka­cji insta­lu­ją­cej liby. Mogli­by­śmy wybrać pod­sta­wo­wy pakiet libów, lub wła­sny. Takie coś po czę­ści roz­wią­za­ło­by pro­blem z wyróż­nie­niem nie­któ­ry­ch sil­ni­ków gra­ficz­ny­ch, pro­blem z miej­scem insta­la­cji biblio­tek (było­by okno wybo­ru:” zain­sta­lo­wać na par­ty­cji /sdcard czy /system?”. Po wybra­niu jed­ne­go z tych, zmie­nia­ła­by się war­to­ść atry­bu­tu w build.prop, np. 0= brak libów w pamię­ci, 1= liby na /system, 2= liby na /sdcard), oraz pro­blem osób nie­gra­ją­cy­ch na tele­fo­nie. A cała resz­ta mogła­by mieć dwa razy wię­cej gier na tele­fo­nie. W komen­ta­rza­ch daj­cie znać, co o tym sądzi­cie 😉

  • Qli­max

    Ma to sens. Sil­ni­ki gra­ficz­ne cięż­ki­ch gier 3D ważą dużo, a trzy­ma­nie kopii tego same­go sil­ni­ka nie jest niczym dobrym przy mały­ch pojem­no­ścia­ch pamię­ci smart­fo­nów.
    I zna­la­złeś roz­wią­za­nie dla każ­de­go urzyt­kow­ni­ka. 😉

    Co do pro­du­cen­tów gier, to nie wiem czy oni zwra­ca­ją jakoś szcze­gól­nie uwa­gę na to ile gra waży sko­ro wrzu­ca­ją nam do apk po kil­ka bez­u­ży­tecz­ny­ch biblio­tek. Nie ubi­ło by to pew­nie inny­ch sil­ni­ków.

    • mire­k191

      Trzy­ma­nie jed­ne wwr­sji sil­ni­ka nie jest zdnym roz­wia­za­nim.

      Taka sytu­acje mamy zwy­kle w linu­xie i to powo­du­je pro­blem zale­zno­sci.

      Roz­ne gry kozy­sta­ja z roz­ny­ch wer­sji nawet tego same­go sil­ni­ka.

      • Qli­max

        Ale ścią­ga­nie dodat­ko­wy­ch pli­ków do biblio­tek jed­ne­go sil­ni­ka będzie zawsze lżej­sze niż ścią­ga­nie 20 razy tego same­go sil­ni­ka nawet w róż­ny­ch wer­sja­ch.

        • mire­k191

          Tak zga­dza sie – wie­cej takie roz­wia­za­nie zaj­mu­je miej­sca ale powo­du­je znacz­nie mniej pro­ble­mow.

          Pamie­ta­sz jesz­cze win 95 czy 98 i ter­min dll hell ?
          Tam bylo podob­ne roz­wia­za­nie – uzy­wa­lo sie jed­nej wer­sji biblo­te­ki co powo­do­wa­lo mno­stwo pro­ble­mow – nie­sta­bil­no­sc sys­te­mu lub apki sie nie uru­cha­mia­ly.
          Od win­dow­sa 2000 zacze­to uzy­wac dla kaz­dej apki wla­ny­ch biblo­tek co roz­wia­za­lo pro­blem.
          Mnie kon­cep­cja uzy­wa­nia jed­nej wer­sji biblo­te­ki nie podo­ba sie – biblo­te­ki star­sze cze­sto nie sa kom­pa­ty­bi­ne z nowy­ni i odwrot­nie.

  • Dawid Polesz­czuk

    mysle ze wiek­szym pro­ble­mem jest brak dobry­ch gier po pro­stu. a od libow wiek­szym pro­ble­mem sa np rekla­my zapi­su­ja­ce sie w fol­de­ra­ch sys­te­mo­wy­ch, poza tym bar­dzo cze­sto co gra to ma swoj custo­mo­wy engi­ne napi­sa­ny jedy­nie na potrze­be danej gry

    • ada­mo­1139

      Oko­ło 10% gier ma custo­mo­wy sil­nik. I to zwy­kle bar­dzo pro­ste i popu­lar­ne gry 2d. Na rekla­ma­ch się zara­bia – wiec tego nikt nie zli­kwi­du­je. Gier jest masa i tych bar­dzo dobry­ch też, ale te naj­lep­sze (wg mnie) są płat­ne, co odstra­sza wie­lu poten­cjal­ny­ch nabyw­ców.

      • star­k2991

        Mam pomy­sł na jeden wpis dla Cie­bie – bac­kup przez ADB. Szy­ku­ję się do odblo­ko­wa­nia bootlo­ade­ra i zna­la­złem to wła­śnie, i oka­zu­je się że moż­na bez roota sko­pio­wać a potem przy­wró­cić apli­ka­cje i ich dane. Dla mnie bom­bo­wa spra­wa 🙂 Mógł­byś o tym co nie­co napi­sać moim zda­niem 🙂 I link na KM

        • ada­mo­1139

          Faj­ny pomy­sł, jak będę miał czas, to zro­bię taki wpis. Nie spo­dzie­waj się go za szyb­ko, nie­ste­ty mam teraz bar­dzo mało cza­su