JNI:NDK

java層和native層交互

Native層:一些本地服務和鏈接庫,通過C和C++語言實現(加密/加速)
JNI(java native interface),Java代碼和其它語言寫的代碼進行交互

jni實現流程

1. 編寫Java類代碼
2. 編譯成字節碼.class (javac)
3. 產生頭文件.h (javah)
4. 編寫JNI代碼.cpp
5. 編譯成鏈接庫文字.so (ndk-build)

NDK

native develop kit,開發C++代碼的工具
下載: http://developer.android.com/tools/sdk/ndk/index.html
文件:
1. samples:demo
2. platforms:平臺
3. toolchains:交叉編譯工具
4. docs:文檔

配置NDK環境

ndk目錄配置:SDK Location —> Android NDK location
在gradle.properties中添加android.useDeprecatedNdk=true

動態庫

Android支持的CPU架構:armv5/armv7(2010)/x86(2011)/mips(2012)/armv8,mips64,x86_64,arm64-v8a(2014)
只編譯指定平臺的so:在gradle中添加:abiFilters “x86”,否則默認生成所有平臺的so
so存放目錄:在build/intermediates/ndk/debug/lib
Android.mk目錄:在build/intermediates/ndk/debug/obj/Android.mk

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章