安卓中如何把普通文件打包进apk并且JNI中能自己读取文件内容

6 篇文章 0 订阅

最近遇到这样的需求,安卓的JNI中需要读某些二进制文件,文件名通过java层传给JNI。之前是把这些文件放在sd卡下,但是最后要给别人安装肯定是要把这些文件都打包再apk中才行。开始尝试把它们放在accest目录,但是这个目录的文件没有一个再c++中能读到的文件名。


解决办法:

1、libs目录里的共享库是会烤到/data/data/<your package name>/lib/下的,于是我们可以把需要再c++中读取的文件名改成lib<文件名>.so,放在安卓工程的libs目录下,然后绝对路径就是/data/data/<your package name>/lib/lib<文件名>.so,这样c++就能读到文件。这是利用了共享库是会单独拷贝出来的,apk中的其他资源文件都会被打包压缩。


2、把文件名后缀改成不被压缩的格式,然后放在res目录。在java层中获得该文件的file pointer,和这个文件的offset和length,传给c++。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

陆业聪

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

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

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

打赏作者

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

抵扣说明:

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

余额充值