Android(安卓)studio 3.6 NDK开发 基本流程入门了解
16lz
2021-01-26
0.NDK
要了解NDK,首先需知道Jni,那么Jni是什么呢?Jni是Java和C沟通的入口,啥意思呢?我们使用Java语言进行Android开发,众所周知Android的安全性一直是一个热议的话题,为了防止被反编译,我们需要用C/C++编写重要核心的内容增大系统的安全。另一方面Android的底层一些驱动,硬件,音视频,图片处理,等都是用C实现的,而且使用C可以极大的提高程序效率,所以在开发中可能就需要Java和C进行交互,Jni就是干这个的。NDK提供了一系列的工具,可以帮助我们生成C/C++的库,NDK+Jni就实现了Java和C沟通的桥梁。
Native Development Kit(NDK)是一系列工具的集合。它提供了一系列的工具,帮助开发者快速开发C/C++的动态库,并能自动将so和java一起打包成apk。
1.开始,新建native c++项目
2.报错 NDK not configured.
2.1打开local.properties,根据实际配置ndk目录
2.2可以在"File"->"Project Structure"设置
3.在java下新建包jni,在包里新建java类Device,如下
添加java方法:
public class Device { public native boolean devOpen(); public native void devClose();}
4.根据java方法自动生成cpp函数
鼠标放到java方法上面,根据智能提示或者Alt+Enter健,会自动在native-lib.cpp中生成c++函数,当然实现需要自己完成
extern "C"JNIEXPORT jboolean JNICALLJava_com_example_jnidemo1_jni_Device_devOpen(JNIEnv *env, jobject thiz) { // TODO: implement devOpen()}extern "C"JNIEXPORT void JNICALLJava_com_example_jnidemo1_jni_Device_devClose(JNIEnv *env, jobject thiz) { // TODO: implement devClose()}
5.make project
代码没有错误的话,会生成相应的.so动态库
6.tips
6.1修改makelist,可以更改so动态库的名称,可以添加其他需要编译的cpp文件
6.2javah,ndk build扩展工具
网上有的说配置这两个扩展工具,javah我试了,不好用不建议新手使用。
ndk build是比较老的方法了,android studio里面建议使用默认的cmake方法进行ndk开发。
所以这两个扩展工具都不建议使用。
6.3Android.mk,Application.mk
ndk方式,但不一定要ndk build,ndk build是一种比较老的方式了,不推荐使用
6.4报找不到library "***.so" not found
检查下build.gradle中有没有设置abiFilters,因为android模拟器对应的abi为x86,目前市面上的手机多数都是v8的,这点需要注意。
更多相关文章
- Android几种Service常驻内存的小思路
- 【Android游戏开发二十五】在Android上的使用《贝赛尔曲线》!
- Android开发实践:WIFI连接功能的封装
- android第一周总结——但愿这次可以发出来,不要再被自己的手机阻
- android设计的网页工具+灵感
- Android(安卓)集成微信支付和支付宝支付工具类
- android 4.0以上WebView不能全屏播放视频的解决办法
- Android菜鸟App开发,第一个App(第一天)
- MonoDroid学习笔记(一)—— 搭建MonoDroid开发环境及Hello World