NDK优点
- 1、代码的保护。由于apk的java层代码很容易被反编译,而C/C++库反汇难度较大。
- 2、可以方便地使用现存的开源库。大部分现存的开源库都是用C/C++代码编写的。
- 3、提高程序的执行效率。将要求高性能的应用逻辑使用C开发,从而提高应用程序的执行效率。
- 4、便于移植。用C/C++写得库可以方便在其他的嵌入式平台上再次使用。
变化
从Android Studio 2.2开始,使用CMake作为构建原生库的工具,代替原来的ndk-build
- Android 原生开发工具包 (NDK):这套工具集允许您为 Android 使用 C 和 C++ 代码,并提供众多平台库,让您可以管理原生 Activity 和访问物理设备组件,例如传感器和触摸输入。
- CMake:一款外部构建工具,可与 Gradle 搭配使用来构建原生库。如果您只计划使用 ndk-build,则不需要此组件。
- LLDB:一种调试程序,Android Studio 使用它来调试原生代码。
CMake的配置
配置开关 properties文件配置
android.useDeprecatedNdk = trueCMakeLists文件的配置
android {
...
defaultConfig {...}
buildTypes {...}
// Encapsulates your external native build configurations.
externalNativeBuild {
// Encapsulates your CMake build configurations.
cmake {
// Provides a relative path to your CMake build script.
path "CMakeLists.txt"
}
}
}
- 输入平台的配置
android {
...
defaultConfig {
...
externalNativeBuild {
cmake {...}
// or ndkBuild {...}
}
ndk {
// Specifies the ABI configurations of your native
// libraries Gradle should build and package with your APK.
abiFilters 'x86', 'x86_64', 'armeabi', 'armeabi-v7a',
'arm64-v8a'
}
}
buildTypes {...}
externalNativeBuild {...}
}