2024. április 26., péntek

Gyorskeresés

Android NDK gyorsteszt

Írta: | Kulcsszavak: android ndk eclipse sdk

[ ÚJ BEJEGYZÉS ]

A tegnapi napon végre elérhetővé vált az Android platformhoz készült NDK (Native Development Kit) amely segítségével natív betéteket készíthetünk C/C++ nyelven programjainkhoz, ezzel felgyorsítva a lomha kódrészletek működését. Kicsit sajnálom hogy nem saját magam akadtam rá a hírre hanem csak a Mobilarenán olvastam először a mai napon az újdonságról.

Gondoltam gyorsan ki is próbálom a dolgot. Nézzük mi is kell ahhoz hogy natív modulokat tudjunk készíteni és beágyazni a programjainkba. Először is kell egy feltelepített SDK amellyel majd a tényleges alkalmazásokat lefordíthatjuk és apk -ba csomagolhatjuk. Nálam e-mellé még párosult egy Eclipse Ganymede a hozzávaló Android plugin -el. Eddig semmi újdonság azoknak akik már legalább kipróbálás szintjén próbálkoztak a platformmal. A natív fordításhoz linux -os eszközökre van szükség, amely valószínűleg nem meglepő senkinek aki tudja hogy az operációs rendszer a linux kernelre épül. A készítők szerencsére gondoltak a Windows -on tevékenykedőkre így a Cygwin futtató környezettel is megoldhatjuk a fordítást. A friss Cygwin -ben én a default telepítést választottam majd némely kísérletezés után kiderült hogy a make és a gcc csomagokat is telepítenem kell, mivel ezek nem része a rendszernek alapból. A Cygwin -el való gyors ismerkedésem során rájöttem hogy a Windows -os meghajtóim a

/cygdrive/<meghajtó_betűjel>

elérési útvonalon találhatóak meg. Gyorsan bele is lépkedtem az ndk mappájába ahol a make parancsot lefuttatva azt az utasítást kaptam hogy gyorsan húzzak el a build mappába és futtassam le az host-setup.sh scriptet hogy az alap beállítások meglegyenek. Így is tettem. (Mod: ez így helytelen. Az alap NDK mappában kell kiadni az

sh build/host-setup.sh

-t hogy megfelelő helyre kerüljön a beállítás fájl) Miután a neki kellő

export ANDROID_NDK_ROOT=<NDK_Cygwin_elérési_útvonala>

paranccsal megadtam amire vágyott, a script szépen lefutott és jelezte hogy a fordító környezet készen áll.

Nézzük mivel is játszhatunk. Az docs/overview.txt -t tanulmányozva gyorsan rájöhetünk hogy a sources és apps mappa az amelyben a natív forrásokat illetve a cél projekteket elhelyezhetjük. Szerencsére példa programokat is kaptunk, én a hello-jni -vel próbálkoztam amely egy egyszerű string visszaadást prezentál natív kódból (a hívásokat egyébként JNI interface -en keresztül lehet megoldani). Ezt az NDK root -ban lefuttatott

make APP=hello-jni

paranccsal tudtam megépítettni. Ha ezzel megvagyunk az

apps/hello-jni/project/libs

helyre be is másolódik a lefordított .so modull fájl.

Jöhetett az Eclipse, gyorsan-frissen be is importáltam a projektet majd jobb klikkelve a projektre a Run as ► Android application menüpontot választva be is röffent az emulátor, az eredményt pedig alant láthatjátok. Fizikai hardver híján konkrét eszközön még sajnos nem tudtam tesztelni. :(

Meglehetősen biztatónak tűnik első blikkre az NDK, habár a fordítás folyamatát lenne hová egyszerűsíteni (ezt az overview.txt be is ismerik a készítők). A későbbi verziókban valószínűleg integrálódni fog az egész az SDK -ba és lesz Eclipse plugin is. Habár az NDK nagyon hasznosnak tűnik, vannak árnyoldalai is, leginkább hogy a kész alkalmazás kevésbé lesz hordozható, az Android platform új verzióinak megjelenésével valószínűleg további binárisokat kell közzétennünk hogy azok kövessék a megjelenő toolchain -eket. Így ahol lehet inkább hordozható java kódot használjunk és csak a teljesítmény kritikus részeket írjuk natív kódban.

Hozzászólások

(#1) vtechun


vtechun
veterán

Fejlessz progikat ezerrel! :)

További hozzászólások megtekintése...
Copyright © 2000-2024 PROHARDVER Informatikai Kft.