APK安装后,里面的自编写的so文件被散列到安卓系统哪个路径下?

lr2131 2018-12-07 10:31:45
问题是这样的,安卓app里面有个NDK是我写的,以so方式提供给了java层的同事,最后java那边打包生成APK。
我本人几乎不会java语言。

我想知道这个APK在安卓系统上安装好了之后,我的so文件放在安卓系统的哪个地方。
这样的话,我是否可以自由的替换我自己的so,来快速测试和调试我自己的NDK,而不用每次都麻烦别人打包,也不需要拿到别人的源码?

如果可以,谁能告诉我这个路径在哪里。如果不是固定的,那应该是由什么样的规则来决定呢?谢谢!
...全文
1099 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
lr2131 2018-12-07
  • 打赏
  • 举报
回复
so是armeabi-v7a的CPU体系结构的
lr2131 2018-12-07
  • 打赏
  • 举报
回复
引用 1 楼 jklwan 的回复:
app目录的lib下,/data/data/<package-name>/lib,但是5.0以上有了多用户,每个用户的目录又不一样,默认用户的目录/data/user/0/<package-name>/lib,其他用户应该是1,2,以此类推。
而so解压的逻辑也不同,如果你们只有一个armeabi的话是直接解压的,如果还有其他的areabi-v7a,v8a之类的会根据cpu来解压相应的目录的文件。
可以root后用adb命令进行so的替换,替换后杀掉进程重新打开应该就能看到效果,前提是so的方法和文件名都没有改变,只改变了方法的内容。


谢谢回复!

我忘了给全信息了,安卓系统是5.1的版本。
你提供的路径,我试试看。
so是armeabi-v7a。
因为接口定义的比较好,我基本都不会再修改接口了(也就是so的方法和文件名),只会动NDK内部的代码。

谢谢!
jklwan 2018-12-07
  • 打赏
  • 举报
回复
app目录的lib下,/data/data/<package-name>/lib,但是5.0以上有了多用户,每个用户的目录又不一样,默认用户的目录/data/user/0/<package-name>/lib,其他用户应该是1,2,以此类推。 而so解压的逻辑也不同,如果你们只有一个armeabi的话是直接解压的,如果还有其他的areabi-v7a,v8a之类的会根据cpu来解压相应的目录的文件。 可以root后用adb命令进行so的替换,替换后杀掉进程重新打开应该就能看到效果,前提是so的方法和文件名都没有改变,只改变了方法的内容。
王能 2018-12-07
  • 打赏
  • 举报
回复
如果有root权限就简单多了,直接adb命令查找你的so文件不就行了
lr2131 2018-12-07
  • 打赏
  • 举报
回复
root权限,这个倒不用担心,开发阶段我是有root权限,adb下可以用root的权限
王能 2018-12-07
  • 打赏
  • 举报
回复
上面答的不对,安卓的apk内容是私有的,没有root权限是改不了的。如果不涉及手机功能还是在pc端模拟吧

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧