android jni 读写sd卡,Android NDK的使用实例——增量更新实战

image1、概述Android很多应用没有使用到NDK开发,但想要开发更高级的应用,NDK的学习是必然之路。NDK的好处不多说,这里也应该说是JNI的好处,其中之一就是可以方便使用到C/C++世界里面的优秀开源库,这里要实战的是增量更新,其中用到的是bsdiff开源代码,而bsdiff又依赖bzip2开源代码。一开始自己做过一些硬件开发,也使用过一些so库,使用的话按照文档指示一般没什么问题,但...
摘要由CSDN通过智能技术生成

6cefed735a95

image

1、概述

Android很多应用没有使用到NDK开发,但想要开发更高级的应用,NDK的学习是必然之路。NDK的好处不多说,这里也应该说是JNI的好处,其中之一就是可以方便使用到C/C++世界里面的优秀开源库,这里要实战的是增量更新,其中用到的是bsdiff开源代码,而bsdiff又依赖bzip2开源代码。

一开始自己做过一些硬件开发,也使用过一些so库,使用的话按照文档指示一般没什么问题,但实际上对NDK开发流程总有一些疑问。比如说

如何创建so库,so库是怎么生成的?

假如我生成了so库,如何给其他应用调用这个so库?

jni目录、cpp目录又是什么?为什么有些项目使用的不一样

Android.mk、Application.mk是什么?

NDK开发一定要使用到javah、ndk-build命令吗?

CMake、CMakeLists.txt又是什么?

产生这些问题的原因在于平时只看书、博客是会忽略掉很多细节,从而产生这样的疑问,所以NDK的学习之路,必然需要动手操作。

增量更新不同于热更新,增量更新可以应用于app市场,避免用户用过多的流量去升级app,只需要下载差分部分的patch补丁就可以,更快速、节省流量的实现了app的更新。

2、在mac上实现增量更新

我用的是mac系统,win应该也差不多,先下载文件

2.1、使用make命令生成bsdiff、bspatch可执行文件

lexdeMacBook-Pro:bsdiff-4.3 lex$ make

遇到问题

Mac下xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun

解决方法

xcode-select --install

重新安装xcode-select就可以

执行make命令后还是出现以下问题

Makefile:13: *** missing separator. Stop.

参考网上说对Makefile文件中 if/endif 做了缩进,没效果。这里是一个坑,我用AndroidStudio去编辑无效,后来使用vim来编辑就可以了。

6cefed735a95

image

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值