so格式文件是什么文件

so格式文件是什么文件,第1张

SO文件格式即ELF文件格式,它是Linux下可执行文件,共享库颂改文件和目标文件的统一格式。

根据看待ELF文件的不同方式,ELF文件可以分为链接视指樱仔图和装载视图。链接视图是链接器从链接的角度看待静态的ELF文件。

从链接视图看ELF文件,ELF文件由多个section组成,不同的section拥有不同的名称,权限。而装载视图是 *** 作系统从加载ELF文件到内存的角度看待动态的ELF文件。

从装载视图看ELF文件,ELF文件由多个segment,每一个segment都拥有不同的权限,名称。实际上,一个segment是对多个具有相同权限的section的集合。

扩展资料

由于Android *** 作系统的底层基于Linux系统,所以SO文件可以唯汪运行在Android平台上。Android系统也同样开放了C/C++接口供开发者开发Native程序。

由于基于虚拟机的编程语言JAVA更容易被人反编译,因此越来越多的应用将其中的核心代码以C/C++为编程语言,并且以SO文件的形式供上层JAVA代码调用,以保证安全性。

而ELF头表记录了ELF文件的基本信息,包括魔数,目标文件类型(可执行文件,共享库文件或者目标文件),文件的目标体系结构,程序入口地址(共享库文件为此值为0),然后是section表大小和数目,程序头表的大小和数目,分别对应的是链接视图和装载视图。

SO文件是Linux下共享库文件,它的文件格式被称为ELF文件格式。由于Android *** 作系统的底层基于Linux系统,所以SO文件可以运行在Android平台上。

Android系统也同样开放了C/C++接口供开发者开发Native程序。由于基于虚拟机的编程语言JAVA更容易被人反编译,因此越来越多的应用将其中的核心代码以C/C++为编程语言,并且以SO文件的形式供上层JAVA代码调用,以保证昌贺安全性。

扩展资料:

so文件使用方法:

(1)动态库的编译。这耐拆派里有一个头文件:so_test.h,三个.c文件:test_a.c、test_b.c、test_c.c,我御薯们将这几个文件编译成一个动态库:libtest.so。

命令:$ gcc test_a.c test_b.c test_c.c -fPIC -shared -o libtest.so 不用该标志外部程序无法连接。相当于一个可执行文件。

(2)动态库的链接这里有个程序源文件 test.c 与动态库 libtest.so 链接生成执行文件 test:命令:$ gcc test.c -L. -ltest -o test命令:$ ldd test执行test,可以看到它是如何调用动态库中的函数的。

参考资料来源:百度百科—SO(软件编程)

     01

      安卓手机打开.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。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12233125.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-22
下一篇 2023-05-22

发表评论

登录后才能评论

评论列表(0条)

保存