安卓手机打开.so文件需要下载Native Libs Monitor这个app,这个应用可以帮助我们理解手机上安装的APK用到了哪些.so文件,以及.so文件来源于哪些函数库或者框架。我们也可以自己对app反编译来获取这些信息。
so文件是手机的一些运行库文件,在系统lib的文件夹下,置换移植其他系统的程序也需要修改更换相关so文件没有它系统软件不能运行,哪部分损坏就影响相对功能,电话接打,通讯录,相机等等都是要依赖so文件使用的。so文件需要资深安野弯蠢卓大师更改,一般都是现成的搬运移植,打开它没有什么意义。安卓手机想要查看.so文件就需要下载Native Libs Monitor。
so是shared object的缩写,见名思义就是共享的对象,机器可以直接运行的二进制代码。大到 *** 作系统,小到一个专用软件,都离不开so。so主要存在于Unix和Linux系统中。so是与平台相关的二进制机器码,Android应用支持的cpu架构取决于APK中位于lib或jniLib目录中的.so文件。
由于Android基于Linux Kernl的,也继承闹山了Linux中所有so相关的设计。
除了系统方面的原因,Android开发者还要知道以下几点:
so机制让开发者最大化利用已有的C和C++代码,达到重用的效果,利用软件世界积累了几十年的优秀代码。
颂陪 so是二进制,没有解释编译的开消,用so实现的功能比纯java实现的功能要快。
so内存分配不受Dalivik/ART的单个应用限制,减少OOM。
了解胡行ELF的文件格式可通过 SO(ELF)文件亩做游格式详解迅销
通过命令greadelf -a xxx.so和gobjdump -x xxx.so以及readelf这三个命令得到so的信息
我个人常用readelf命令,具体指令的使用可参考 readelf命令使用说明
运行下述命令:
brew update
brew install binutils
ELF Header:
Section Headers:
最近App在弄Arm64的升级,但是有几个so文件找不到是哪几个组件使用的,也从网上找到了一些文章,试了一下貌似也不可以,就自己想了一些其他办法,App想要编译成功,如果组件是以上传到仓库的方式引用的话,我们想要查找这个so文件就比较麻烦,
整个工程是搜运锋斗索不到的,但是想要编译成功还必须将这些组件拉倒本地缓存中,也就是说能运行的程序所有关于他的文件旁磨是都有的,
我们只需要找到他就好了
这里我借助了SearchEverything 这个软件,搜索了一下丢失64位的so库
很清楚的看到使用的组件叫 jefified-360Camera-1.0.1 的这个组件,剩下的事情就基扒是需要把补全或者升级就好了
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)