Basics Android NDK munka c
Natív kódot írt C vagy C ++ - ez egy olyan téma, hogy sok fejlesztő nem befolyásolja egyáltalán. De néha a használata C ++ alkalmazások sokkal könnyebb / gyorsabb fejlődését. Ez a cikk meg fogja vitatni a fő elveit dolgozó natív kód.
Előre
Ha nem létre Eclipse, olvassa el, hogyan kell beállítani Eclipse dolgozni Android. Csak azon kívül, amit állítólag a cikk, ha telepíti több kell kiválasztani és telepíteni a NDK plugin.
Csak telepíteni kell CDT Eclipse. Windows alatt úgy tűnik, hogy még mindig szeretné telepíteni Cygwin.
Most kell, hogy hozzon létre egy projektet, és regisztrálja módon.
- Készítsen Android Application.
- Eclipse -> Window -> Beállítások -> Android -> set path SDK
JNI a projektben mappa jön létre, ahol van, hogy helyezze a fájlokat a C ++ kódot. A korábbi verziókban volt egy hiba, ha Eclipse nem tudta megfelelően beállítani az utat néhány fejléc fájlokat a NDK. A legújabb verzió minden normális. Csak tiszta a projekt (Clean projekt), majd újraépíteni (Build projekt).
Miért van szükség a NDK?
Azt hiszem, először meg kell magyarázni, ha az összes költséget (és megéri?) Használata ndk. Sokan azt tanácsolják, hogy a C ++, ha szükséges néhány nagy / bonyolult számításokat. Mit jelent nehéz? = / Általában akkor hívja a különleges esetekben, amikor a használata NDK indokolt:
- Munka OpenGL ES. Azt hiszem, a legtöbb, akik használják a NDK, yuzayut csak írásra játékokat.
- Használata cross-platform motorok, mint a kókusz.
- A legnyilvánvalóbb eset - ez az, amikor meg kell használni egy már megírt C ++ kódot. Az évtizedek során a C ++ már írt egy csomó. Miért átírni dolgokat Java, ha lehet csak használni a nyílt forráskódú fejlesztéseket. És nem minden átírható, azt hiszem, ugyanaz OpenCV értelmetlen lenne átírni, az az idő, amikor egyszerűen dugja kész forrásokból.
A lehetőségek óriásiak NDK. Akkor hivatkozhat a Java, a C ++ módszerekkel. Ugyanakkor, nem tesz semmit, hullámzó hívás Java módszereket C ++. Még akkor létrehozhat egy alkalmazás szinte nincs használata Java segítségével NativeActivity (API 9 felett).
Java. Utazás a Native (vagy vissza).
Isten bocsássa meg, megemlítve a tanár munkája (És igen, úgy mindent egy cikkben nem lehetséges tehát, hogy végrehajtásának megkezdése hívást natív módszerek Java ..
Felsorolni röviden kiemeli, ha foglalkoznak natív:
- Fájlok létrehozása a C ++ kódot.
- Meghatározása C ++ módszerek exportra.
- Létrehozása .mk fájlokat.
- Generation Könyvtár.
- Csatlakozás Könyvtár Java és C ++ eljárás hívást.
Létrehozása C ++ forrás fájl
A natív határozza meg az összes 3 módszer: távvezetékek, a változás vonalak letölteni egy sorban.
Hozzon létre egy fájlt a start def.h. Csatlakozás egy pár a szükséges fájlokat, és meghatározza a módszereket kimenet a konzolra.
MyNative.h létre egy fájlt, és határozza meg a leírásban a kiviteli eljárást hívni őket Java kódból utána.
Most mind a három módszer lehet hivatkozni Java kódból. Írtam ezt a kódot kezeli. De akkor zayuzat javah. amely maga generit fejlécek. extern „C” szükséges, hogy a C ++ fordító nem változott a nevét a bejelentett funkciókat.
Így létre MyNative.cpp a végrehajtási módszereket.
Munka Application.mk
Ez a fájl írja a globális beállításokat az építmények lib.
Munka Android.mk
Itt adja meg a / beállítások összekapcsolásával stb gyűjteni libu.
Miután létrehozott egy C ++ fájlokat és .mk kész, akkor zabildit projekt, akkor a obj mappa látható könyvtár libAndroidNDK.so.
Csatlakozás Könyvtár Java és C ++ eljárás hívást.
Most már csak azt kell írni Java kódot. Tedd szerény alkalmazás. Helyezzük a beviteli mezőbe három gomb (átutalás natív szöveges, változtassa meg a szöveget a natív és visszaadja a módosított karakterláncot a natív) és egy területen az új szöveget, amely származik natív kód.
A natív módszereket hozzon létre egy osztályt AndroidNDK.
Ez a kód a letölthető könyvtár, amely végrehajtja a módszereket. Figyeljünk ismét az osztály és módszerek, és emlékszik a nevére módszerek export natív kód: Java_ru_suvitruf_androidndk_AndroidNDK_ChangeString.
Java kód feldolgozásra karakternél nem fog írni a legfontosabb, mert ez egy triviális feladat. Mindenesetre, ha szükséges, akkor a forráskód ezt a cikket. A log fájl lesz ez:
Egy bevezetés natív elég írva. Tudod letölt a forrás AndroidNDK.rar.