Hollywood APK Compiler czyli zróbmy sobie APKę

Jedną z wielu inte­re­su­ją­cych funk­cji pakietu Hol­ly­wood jest moż­li­wość kom­pi­lo­wa­nia swo­ich skryp­tów na popu­larną plat­formę Android (poczy­na­jąc od archa­icz­nej wer­sji 2.3.3 Gin­ger­bread wzwyż), co daje moż­li­wość uru­cha­mia­nia ich na naj­po­pu­lar­niej­szych smart­fo­nach, czy table­tach. Sam pro­ces kom­pi­lo­wa­nia pliku .apk (czyli goto­wego do insta­la­cji na urzą­dze­niu pakietu) nie jest skom­pli­ko­wany, ale przy­go­to­wa­nie sobie śro­do­wi­ska do kom­pi­la­cji to nie jest — deli­kat­nie mówiąc — droga usłana różami. W tym arty­kule posta­ram się przy­bli­żyć temat z per­spek­tywy laika, któ­rym sam byłem pró­bu­jąc zro­bić to samemu.

Jeśli czy­ta­jąc powyż­szy aka­pit pomy­śle­li­ście: „Zaraz zaraz, trzeba sobie przy­go­to­wy­wać jakieś śro­do­wi­sko? To nie wystar­czy odpa­lić Hol­ly­wood w wer­sji mini­mum 6.0 i APK Com­pi­ler?” to nie­stety muszę Was roz­cza­ro­wać. Musimy zain­sta­lo­wać i pokon­fi­gu­ro­wać odpo­wied­nio cały łań­cu­szek pro­gra­mów i pro­gra­mi­ków. Ale po kolei — czego będziemy potrze­bo­wać?

Po pierw­sze – 64-bito­wego kom­pu­tera dzia­ła­ją­cego pod kon­trolą sys­temu Win­dows. Wiem, że ble, ale narzę­dzia, któ­rych uży­wamy po dro­dze, są dostępne tylko tam. Tu mała uwaga a pro­pos tychże narzę­dzi — jest to nie­zmier­nie istotne, żeby nazwa użyt­kow­nika na wspo­mnia­nej Win-maszy­nie nie zawie­rała pol­skich znacz­ków dia­kry­tycz­nych. Ina­czej pro­ces wywali się po dro­dze. Ja (ku swej zgry­zo­cie) pró­bo­wa­łem naj­pierw na kon­cie o nazwie „Użysz­kod­nik”. Zmiana nazwy nic nie dała, bo ścieżki w sys­te­mie i tak zawie­rały już to nie­szczę­sne „ż”. Pomo­gło dopiero doda­nie nowego konta użyt­kow­nika i insta­la­cja wszyst­kiego „na niego”.

Po dru­gie — trzeba zain­sta­lo­wać tak zwany „Java SE Deve­lop­ment Kit” ze strony Oracle.

Insta­la­cja "Java SE Deve­lop­ment kit"

Z tym nie powinno być żad­nych pro­ble­mów (a przy­naj­mniej nie było ich w moim przy­padku).

Trzeci krok to pobra­nie i insta­la­cja „Android Stu­dio” (w wer­sji przy­naj­mniej 2.3.1). Zain­sta­luje nam ono też od razu wyma­gane SDK. Wypada zapamiętać/wrzucić w wyci­nek ścieżkę, w jakiej owo SDK będzie zain­sta­lo­wane, co przyda nam się póź­niej w kon­fi­gu­ra­cji samego Com­pi­lera.

Po czwarte — odpa­lamy dopiero co zain­sta­lo­wane Android Stu­dio, mla­skamy w „Con­fi­gure” i naka­zu­jemy doin­sta­lo­wać narzę­dzia „Cmake” i „NDK” z zakładki „SDK Tools”.

Po tym krwa­wym tru­dzie przy­cho­dzi pora na insta­la­cję narzę­dzia „Gra­dle” ze strony gradle.org (wystar­czy plik wyko­ny­walny). Zawar­tość wypa­ko­wu­jemy do loka­li­za­cji C:\Gradle. Tu mała uwaga — kiedy będziemy budo­wać naszą pierw­szą APKę, Gra­dle połą­czy się z inter­ne­tem, żeby zain­sta­lo­wać Android Plu­gin. Z tego powodu „nasz pierw­szy raz” (i tylko ten jeden) będziemy musieli wyko­nać z włą­czoną sie­cią.

Przy­szła pora na krok szó­sty — wyge­ne­ro­wa­nie keystore/klucza do pod­pi­sy­wa­nia naszej apki. Bez tego sklep Google Play nas opluje. W tym celu uży­wamy narzę­dzia „key­tool” (wcho­dzi ono w skład JDK, które zain­sta­lo­wa­li­śmy w punk­cie 2). Otwie­ramy kon­solę (koniecz­nie w try­bie admi­ni­stra­tora) i w fol­de­rze „bin” naszego JDK wpi­su­jemy nastę­pu­jącą komendę:

keytool -genkey -v keystore <nazwakeystore>.keystore -alias <naszalias> -keyalg RSA -keysize 2048 -validity 10000

Oczy­wi­ście za <nazwa­key­store> wpi­su­jemy swoją ulu­bioną nazwę, a za <nasza­lias> swoje (swo­jej firmy) dane, na przy­kład amigarulez.inc (małymi lite­rami, bo jak uży­jemy dużych, albo spa­cji to możemy mieć pro­blemy). Docie­kliwe narzę­dzie zapyta nas jesz­cze o dane oso­bowe, nazwę firmy, adres, oraz hasło dla key­store i klu­cza a następ­nie wyge­ne­ruje co trzeba.

Kolej­nym (na szczę­ście już ostat­nim) eta­pem na naszej dro­dze do sławy i bogac­twa jest uru­cho­mie­nie Hol­ly­wood APK Com­pi­lera i usta­wie­nie pra­wi­dło­wych ście­żek dla zain­sta­lo­wa­nych kom­po­nen­tów. Po ich usta­wie­niu pro­po­nuję pro­jekt zapi­sać, bo nic tak nie stre­suje, jak koniecz­ność usta­wia­nia ich za każ­dym razem na nowo, gdy musimy wyko­nać nowy build.

Jak stwo­rzyć APK-ę nie umie­jąc kom­plet­nie nic, czyli przy uży­ciu Desi­gnera?
To pro­ste jak drut kol­cza­sty. Nasz pro­jekt .hwd zapi­su­jemy jako skrypt „Save script”, potem pod Hol­ly­wood GUI każemy z tego skryptu skom­pi­lo­wać aplet. Jego z kolei prze­no­simy na PC i pole­camy APK Com­pi­le­rowi zro­bić z niego APK, uru­cha­miamy go na swoim fonie… a potem się dzi­wimy skąd te błędy i nie­do­cią­gnię­cia.
Ale po kolei:

Użyte pliki zewnętrzne (np. obrazki) oraz czcionki wypada zlin­ko­wać z naszym aple­tem, ewen­tu­al­nie zro­bić to jako „Android assets” z poziomu APK Com­pi­lera. Bez tego apka się wywali nie mogąc zna­leźć pierw­szego lep­szego pliku/czcionki.

Kolejna sprawa to tryb wyświe­tla­nia — Desi­gner daje nam moż­li­wość usta­wie­nia „Mode” na „Full screen (Auto)”, ale lepiej zmie­nić go ręcz­nie pod edy­to­rem na Ful­l­Scre­en­Scale (”auto” w moim przy­padku zosta­wiał dookoła obrazu czarną ramkę).

Ostat­nia uwaga doty­czy pol­skich znacz­ków — póki nie ruszamy skryptu pod PC będzie dobrze. Jeśli spró­bu­jemy skrypt wczy­tać do IDE i prze­ro­bić na aplet na pece­cie, będzie trzeba popra­wić wszyst­kie pol­skie znaki dia­kry­tyczne ręcz­nie.

Pro­jekt otwarty w Desi­gne­rze
Okienko z Hol­ly­wood GUI w któ­rym kom­pi­lu­jemy applet
Rezul­tat – odpa­lona nasza „apka” na smart­fo­nie z Andro­idem

 

Teraz pozo­staje mi Wam już tylko życzyć uda­nych buil­dów i milio­nów pobrań. Do zoba­cze­nia w następ­nej szkółce!

 

rece­dent - Amiga NG (2) 1/2018

---> do spisu arty­ku­łów