Android Studio已有项目集成C++(Jni);

开发环境:Android Studio 3.5.2;
写作背景:随着IOT的物联网的发展,以及5G的到来,万物互联已经是未来的趋势。所以作为Android开发者来说,Jni编程必须要学会了,兄弟们,灼哥来带你们上车。(灼哥为什么会,是因为灼哥IOT行业干了几年,设计开发产品消费类监控摄像头,传感器等)

前期准备:NDK开发包下载,Cmake下载;(Android studio可以下载)
此文章主讲已有项目集成Jni的操作;后期讲新建工程怎么操作(很简单);
流程步骤:
静态注册方式(我目前在用的方式)

**1.**创建一个java类,声明native方法,加载后面创造的so库,(库的名字可以提前取号,比如可以叫JZSDK,jni-lib等)
**2.**创建Jni目录,在jni目录下然后创建.cpp文件; (project:显示jni app:显示 cpp)
**3.**编译项目(make ,或者Rebuild)生成.clss;
**4.**利用javah -jni 的命令生成 对应类的.h头文件;
**5.**在刚刚创建cpp文件里去具体头文件里的方法(c/c++实现);
**6.**配置CmakeLists.txt 然后配置Gradle;
**7.**编译项目和 Refresh Linked c++ Projects;
**8.**可以实现上层调用本地方法了。
end。

实际操作以及配图:
**1.**创建java native方法(建议新建一个文件夹,单独放native相关的代码,便于维护查看); 提前把so名字想好。 加载库:static{ System.loadLibrary(“jni-lib”)};
**2.**创建Jni目录,在jni目录下然后创建.cpp文件; (project:显示jni app:显示 cpp)
创建jni目录
**3.**编译项目(.class)
在这里插入图片描述
**4.**javah -jni 命令形式编译 .h头文件(可以单独新建个文件夹存头文件,也是为了便于查看和维护)。怎么编译看下面介绍;
eg;D:\Taichi\MyApp\app\src\main\java>javah jzsdk.JzJni 方面简单。
or D:\Taichi\MyApp\app\src\main\java>javah -classpath . -d . -jni jzsdk.JzJni
*补充:*生成的头文件中函数的命名规则:Java_包名_类名_方法名,由于要用到包名,所以要在包括全包名的目录下执行javah命令。
在这里插入图片描述

**5.**编写实际c++代码,写在cpp代码里(位置创建:as app->new->Folder->Jni Folder pro:jni app:cpp)。
在这里插入图片描述
**6.**配置CMakeLists.txt 与gradle;
一)创建CMakeLists.txt
app->New->File->CMakeLists.txt;

#STATIC:表示静态的.a的库、 SHARED:表示.so的库。 SHARED #文件路径 src/main/jni/jni-lib.cpp )

二)
配置到Gradle里面
(创建:app->右击->Link C++ Project with Gradle->cmake ,选中刚在CMakeLists.txt 路径,完成即可);
针对不同的cpu也可以做一些过滤等操作。看具体需求。
在这里插入图片描述

编译,reFresh即可,上层调用即可;over;
在这里插入图片描述

在这里插入图片描述在这里插入图片描述
不懂的同学可以评论下,我看到会解答。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值