是的,Android NDK有案例。以下是一个使用Android NDK的简单案例:
- 在Android Studio中创建一个新的Android项目,选择“Empty Activity”模板。
- 在项目的
app
目录下,找到并打开build.gradle
文件。在文件中添加以下内容:
android { ... defaultConfig { ... ndk { abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64' } } ... }
这段代码的作用是配置NDK支持的所有ABI(Application Binary Interface)。
- 在项目的
app
目录下,找到并打开src
目录下的main
目录。然后创建一个新的文件夹,命名为jniLibs
。 - 在
jniLibs
文件夹下,为每个支持的ABI创建一个文件夹,例如armeabi-v7a
、arm64-v8a
、x86
和x86_64
。 - 将对应的NDK库文件(通常是
.so
文件)复制到相应的ABI文件夹中。例如,如果你有一个名为libnative-lib.so
的库文件,你应该将它复制到jniLibs/armeabi-v7a
、jniLibs/arm64-v8a
、jniLibs/x86
和jniLibs/x86_64
这四个文件夹中。 - 在
MainActivity
类中,你可以使用System.loadLibrary()
方法来加载NDK库。例如:
public class MainActivity extends AppCompatActivity { // 加载NDK库 static { System.loadLibrary("native-lib"); } ... }
- 现在,你可以在
MainActivity
类中使用NDK库提供的功能了。例如,如果你有一个名为native-lib
的库,它提供了一个名为stringFromJNI
的本地方法,你可以这样调用它:
public class MainActivity extends AppCompatActivity { ... public String stringFromJNI() { return nativeStringFromJNI(); } // 本地方法声明 private native String nativeStringFromJNI(); ... }
- 最后,确保你已经正确配置了Android Studio以支持NDK。在
build.gradle
文件中添加以下内容:
android { ... buildTypes { ... release { ... ndk { abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64' } } } ... }
这段代码的作用是配置NDK在发布版本中的支持情况。
现在,你已经成功创建了一个使用Android NDK的简单案例。你可以根据需要修改和扩展这个案例,以充分利用NDK提供的强大功能。