1. NDK是什么?
NDK,Native Development Kit, 原生開發(fā)包. 提供了一些列開發(fā)C或C++動態(tài)庫的工具,并能把so和java應(yīng)用一起自動打包為apk。它集成了交叉編譯器,并生成了對應(yīng)的mk文件隔離CPU、平臺、ABI等差異,開發(fā)者僅需修改mk文件,即可創(chuàng)建出so。
NDK包含了有限的Api:C標準庫(libc)、標準數(shù)學庫(libm),壓縮庫(libz)、Log庫(liblog)。
Google明確聲明ndk所含的API是穩(wěn)定的,在后續(xù)所有版本中都穩(wěn)定支持當前發(fā)布的API。
2. NDK的作用?
- 防止代碼被反編譯。C/C++反編譯難度比java高很多
- 便于使用開源庫?,F(xiàn)存大部分開源庫都是用C/C++編寫
- 代碼的執(zhí)行效率高。C的執(zhí)行效率很高
- 便于跨平臺使用。C/C++代碼可以便于再其他的嵌入式平臺上使用