Android studio 3.6 NDK开发 基本流程入门了解

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 JNICALL
Java_com_example_jnidemo1_jni_Device_devOpen(JNIEnv *env, jobject thiz) {
    // TODO: implement devOpen()
}
extern "C"
JNIEXPORT void JNICALL
Java_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的,这点需要注意。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

苏克贝塔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值