Elementele de bază de lucru NDK Android cu c

Elementele de bază de lucru NDK Android cu c

Cu ajutorul unui cod nativ scrise în C sau C ++ - acesta este un subiect pe care mulți dezvoltatori nu afectează deloc. Dar, uneori, utilizarea de C ++ aplicații mult mai ușor de dezvoltare / mai rapidă. Acest articol va discuta principalele principii de lucru cu cod nativ.







Presetare

Dacă nu configurați Eclipse, ai citit cum să configurați Eclipse pentru a lucra cu Android. Numai în plus față de ceea ce se spune în articol, atunci când instalați mai este nevoie pentru a selecta și instala plugin-ul NDK.

Doar trebuie să instalați pentru Eclipse CDT. Sub Windows pare să vrea în continuare să instalați Cygwin.

Acum aveți nevoie pentru a crea un proiect și să înregistreze moduri.

  • Creați aplicații Android.
  • Eclipse -> Window -> Preferences -> Android -> set cale spre SDK

Elementele de bază de lucru NDK Android cu c

  • Eclipse -> Window -> Preferences -> Android -> NDK -> setați calea către NDK

    Elementele de bază de lucru NDK Android cu c

  • Faceți clic dreapta proiectului și selectați Instrumente Android -> Add suport nativ
  • JNI în dosarul de proiect va fi creat în cazul în care va trebui să plasați fișierele de cod C ++. În versiunile anterioare au avut un bug în cazul în care Eclipse nu a putut configura corect calea la unele fișiere antet de la NDK. Cea mai recentă versiune a tot ceea ce este normal. Doar curățați proiectul (proiect Clean), și apoi reconstrui (Build proiect).

    De ce avem nevoie de NDK?

    Cred că trebuie mai întâi să explice, atunci când toate costurile (și în valoare de ea?) Folosește NDK. Mulți sunt sfătuiți să utilizeze C ++, atunci când este necesar unele calcule mari / complexe. Ce înseamnă greu? = / În general, se va apela cazurile specifice în care utilizarea NDK este justificată:

    • Lucrul cu OpenGL ES. Cred că majoritatea celor care folosesc NDK, acesta yuzayut doar pentru a scrie jocuri.
    • Utilizarea motoarelor cross-platform, cum ar fi nuca de cocos.
    • Cel mai evident caz - acest lucru este atunci când trebuie să utilizați un deja scris în cod C ++. De-a lungul deceniilor, în C ++ deja scris un întreg buchet. De ce rescrie lucruri în Java, dacă puteți utiliza doar Open Source evoluțiile. Și nu totul poate fi rescrisă, cred că același OpenCV inutil ar fi să rescrie, în momentul în care vă puteți conecta pur și simplu surse gata.






    Posibilitățile sunt enorme NDK. Puteți invoca Java de metode C ++. În același timp, nu faci nimic fluturand metode de apel Java de la C ++. Chiar și vă puteți crea o aplicație cu aproape nici un folos de Java, folosind NativeActivity (API 9 și de mai sus).

    Java. Călătorie spre nativ (sau retur).

    Doamne iartă-mă pentru a menționa profesorul operei sale (: Și așa, ia în considerare totul într-un singur articol, nu este posibil, prin urmare, să înceapă punerea în aplicare a unui apel metode native de Java ..

    Enumerați scoate în evidență pe scurt, atunci când se ocupă cu nativ:

    • Creați fișiere cu cod C ++.
    • Determinarea metodelor C ++ pentru export.
    • Crearea .mk fișiere.
    • Generation Library.
    • Biblioteca de conectare în Java și C ++ apel metoda.

    Crearea unui fișier sursă C ++

    Nativul definesc toate cele 3 metode: linii de transport, linii de schimbare pentru a prelua un rând.

    Creați un fișier pentru def.h. de start Conectați o pereche de fișierele necesare și să definească metodele de ieșire la consolă.

    MyNative.h a crea un fișier și definiți-o în caietul de sarcini pentru metoda de export pentru a le apela la codul Java după aceea.

    Acum, toate cele trei metode pot fi invocate de cod Java. Am scris acest cod se ocupă. Dar poți zayuzat javah. care va generit el însuși aceste antete. extern „C“ este necesară pentru compilator C ++ nu a modificat numele funcțiilor declarate.

    Deci, a crea MyNative.cpp cu metodele de punere în aplicare.

    Lucrul cu Application.mk

    Acest fișier descrie setările globale pentru libs construi.

    Lucrul cu Android.mk

    Aici specificați / setările prin legarea, etc, pentru a colecta LiBu.

    După ce ați creat un C ++ fișiere și .mk făcut, puteți zabildit proiect, apoi în dosarul obj afișat libAndroidNDK.so bibliotecă.

    Biblioteca de conectare în Java și C ++ apel metoda.

    Elementele de bază de lucru NDK Android cu c

    Rămâne acum doar pentru a scrie cod Java. Face cerere nepretențioasă. Se pune câmpul de text, trei butoane (de transfer în textul nativ, modificați textul în nativ și returnează un șir de caractere modificat de la nativ) și un câmp pentru noul text, care este derivat din codul nativ.

    Pentru a utiliza metodele native a crea o AndroidNDK de clasă.

    Acest cod va descărca biblioteca noastră care implementează metodele. Acordați atenție încă o dată pe clasa și metodele, și amintiți-vă numele de metode pentru export în cod nativ: Java_ru_suvitruf_androidndk_AndroidNDK_ChangeString.

    cod Java pentru intrarile de la tastatura de prelucrare nu se va scrie la cheie, pentru că este o sarcină banală. În orice caz, dacă este necesar, puteți vizualiza codul sursă pentru acest articol. Fișierul jurnal va fi acest lucru:

    Pentru o introducere destul de nativ scris. Puteți descărca sursa AndroidNDK.rar.