Android NDK JNI 开发之旅02 so类库 简单使用篇

作者简介

微信公众号(高质量文章推送):走向全栈工程师

作者:陈博易

声明:本文是个人原创,未经允许请勿转载

商业合作请在微信公众号回复:联系方式


前言


  1. 为什么要学习JNI呢,我的回答是:因为我好学!哈哈哈
  2. 因为c/c++比Java效率高,所以应用运行起来速度比较快,特别是一些游戏中的算法。
  3. 为了保密,都知道apk都可以被反编译,就算有代码混淆,也只是难看懂,并不是完全看不懂,但用jni编译成.so就不同了,可以使破解的难度更加大。
  4. 一个平台(C++代码)迁移到Android平台,底层逻辑是相同的,这样就可以通过移植,利用JNI调用底层C++代码,避免相同逻辑的代码重复去写,不过这个过程一定要注意底层对象的释放问题。

环境以及工具


  1. Android项目:AndroidStudio3.0
  2. NDK
  3. CMake3.6.4
  4. LLDB3.0

整体步骤


  1. 创建so类库项目介绍
  2. 使用so类库项目介绍

核心步骤解读


1. 创建so类库项目介绍

创建一个新的包com.ndk.use 这里大家肯定有问题要问,为什么要用新的包呢? 因为声明native本地方法和jni层的实现方法的全名(包名+类名)要一致,所以我就单独创建了一个包,方便等下直接复制到新项目直接使用

测试当前类库能不能正常使用

2. 使用so类库项目介绍

创建一个新项目,为了使用自己刚写好的类库。 将类库的项目中com.ndk.use和jniLibs中的代码和类库复制到如下图的项目中。此时就可以直接使用了,并不需要创建jniLibs的目录,那种方式也是可以的

调用JniUtils.stringFromJNI()

app/build.gradle配置文件

总结


  1. 请大家多关注关注我。
  2. 这样的使用还不是很优雅的,下一篇将使用优雅的方式来使用so

Android NDK JNI 开发 环境搭建入门篇

个人相关教程

各种大佬推荐的编程视频资源分享 Android 微信 支付宝支付,2行代码实现支付 Android前端 Java后端 集成支付宝支付 postman使用 Android java后端 接口调试工具 Android抓包 Charles http接口调试 消息推送 Android java后端集成小米推送 如何导入简单的java项目-IntelliJ IDEA

请关注我(高质量文章推送)

源码地址———关注微信公众号,回复:ndk类库使用01

Android NDK JNI 开发之旅 开源项目

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值