androidso文件是什么文件
‘壹’ so格式文件是什么文件
这个是linux系统下的文件,你的手机应该是安卓平台,安卓平台是从linux内核的基础上发展过来的,所以会有后缀为.so(sharedobject)的文件,当然这样解释不够精确、详细,肯定会被吐槽,具体如下:
准确地、详细地来说,
手机里面有硬件,也就是弱电学中的电路,电路组成了CPU和协助CPU的外围电路,
CPU上面移植了Linux内核,好,接下来就开始百花齐放了:
1、有的手机跑的是安卓的系统
2、有的时候跑的是linux系统
他们都基于Linux内核,对于Linux内核有不同的扩充,有的扩充成A系统,叫安卓,有的扩充成B系统,叫Linux,但是手机上,安卓相对linux,更加流行。
而Linux内核,并不是唯一的,有正统的,也有非正统的(不太常见而已),而Linux内核对应的CPU结构,也有很多种,因此不同的智能手机可能有不同的CPU、不同的Linux内核和不同的安卓系统(这个系统里包含了Linux内核)
当然还有跑windows的,扯远了,windows的手机,里面应该可以找dll文件,这个对应安卓系统的.so文件。
还没讲so文件是干嘛的~
那为什么起个名字叫shareobject?
这个so文件,有时候是直接被调用的,有时候是会参与到编译中的,也就是说,一个.so文件可能会被多个应用程序用到,因此取名叫shareobject(share:大家一起来分享使用的意思)。
这个就和windows里面一样,如果有时候网络下载了几个调用dll文件的软件,恰好电脑里面缺这几个dll,那么此时,这几个软件将不能运行,也就是说,这几个dll会被这几个软件在运行时都用到,有share的味道,所以在windows里面叫链接库,在Linux内核的系统上(可以是ubuntu啊、redhat啊,android等等)叫.so(sharedobject),作用类似,windows中起名字更严肃点(链接文件,编译带上它,像一条链条一样),linux对它的起名更形象些(大家分享一起来用),意思差不多。当然区别肯定会有,这里只是回答得让读者大致理解,具体细节上的差别请另外网络。
.so文件怎么运作的?(下面两个步骤摘自网络)
###########################################
①编译阶段。链接编辑器(linkeditor)拿它和其他Relocatableobjectfile以及其他sharedobjectfile作为输入,经链接处理后,生存另外的sharedobjectfile或者executablefile。
②运行阶段。动态链接器(dynamiclinker)拿它和一个executablefile以及另外一些sharedobjectfile来一起处理,在Linux系统里面创建一个进程映像。
这段话看起来比较抽象,如果想迅速理解它,建议读者网络找一个gcc/g++运行helloworld的例子就理解了.
###########################################
所以大家爱吐槽啊,这个C牌子的智能手机,怎么刷不了那个D牌手机官方系统包啊?出来各种问题,有些问题是可以解决的,有些是解决不了的,甚至会有烧机的情况。
这类问题和底层的CPU种类、Linux内核种类及版本、so文件版本等都是相关的。
所以有些牌子的智能机有通吃现象,可以刷其他牌子的各种官方系统,有的智能机则不行。
总结:
CPU和PCB外围电路=>Linux内核+应用组件组成的安卓系统(用户层)=>对.so文件和其他文件一起编译=>对.so文件和其他文件一起运行=>创立进程、线程(也就是手机上的各种app和系统自带功能)=>然后我们就可以使用手机上的各种功能了。
最后,以上回答只是为了让读者有初步的、粗略的、大致的理解。任何专业名词和术语只要打了比方,就肯定是不绝对精确的。更详细的细节,请参考专业文献。
手机里面的so文件,如果是应用软件的,删除后,应用软件请重装,如果是系统自带的,请尽量不要删除。
抛砖引玉,答得不好,请别骂,谢谢!
-----------------------------------
补充:
评论中提到了FreeBSD,我来说下怎么回事:
操作系统=userland(用户层)+Linux内核
Android使用的是FreeBSD内核(其实是用户层,当然你也可以说他是内核)+Linux内核
Ubuntu使用的是GNU(用户层)+Linux内核
用户层啥意思:
我花了钱你不至于还让我看底层电路底层的010101吧?买来当然是为了王者农药对不?
通俗地讲:就是屏蔽底层细节,让客户买来直接用.
计算机里面为啥会有0和1?
本质是电路中的高电平和低电平,举例:
0.5V->bit 1
0.1V->bit 0
才疏学浅,抛砖引玉,答得不好,请别骂,谢谢!
-----------------------------------
‘贰’ 安卓11中*.so.toc是什么文件
SO文件格式即ELF文件格式,它是Linux下可执行文件,共享库文件和目标文件的统一格式。TOC这个词其实是从出版界借用过来的,指的就是每一本书正文前面的“目录”,它的作用地球人都知道:如果想快速找到书中某一内容,可以先查TOC,然后按照TOC指明的页码直接翻即可。
由于Android操作系统的底层基于Linux系统,所以SO文件可以运行在Android平台上。Android系统也同样开放了C/C++接口供开发者开发Native程序。由于基于虚拟机的编程语言java更容易被人反编译,因此越来越多的应用将其中的核心代码以C/C++为编程语言,并且以SO文件的形式供上层JAVA代码调用,以保证安全性。
‘叁’ 关于android软件中的so文件!
*.so文件是linux平台下的动态链接库,反编译动态链接库参见windows下*.dll文件的反编译,类似的
Linux:是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。
Linux操作系统诞生于1991 年10 月5 日(这是第一次正式向外公布时间)。Linux存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。严格来讲,Linux这个词本身只表示Linux内核,但实际上人们已经习惯了用Linux来形容整个基于Linux内核,并且使用GNU 工程各种工具和数据库的操作系统。
动态链接库:英文为DLL,是Dynamic Link Library 的缩写形式,DLL是一个包含可由多个程序同时使用的代码和数据的库,DLL不是可执行文件。动态链接提供了一种方法,使进程可以调用不属于其可执行代码的函数。函数的可执行代码位于一个 DLL 中,该 DLL 包含一个或多个已被编译、链接并与使用它们的进程分开存储的函数。DLL 还有助于共享数据和资源。多个应用程序可同时访问内存中单个DLL 副本的内容。DLL 是一个包含可由多个程序同时使用的代码和数据的库。
DLL文件又称“应用程序拓展”,是软件文件类型。在Windows中,许多应用程序并不是一个完整的可执行文件,它们被分割成一些相对独立的动态链接库,即DLL文件,放置于系统中。当我们执行某一个程序时,相应的DLL文件就会被调用。一个应用程序可使用多个DLL文件,一个DLL文件也可能被不同的应用程序使用,这样的DLL文件被称为共享DLL文件。[1]
‘肆’ so格式文件是什么文件
SO文件格式即ELF文件格式,它是Linux下可执行文件,共享库文件和目标文件的统一格式。
根据看待ELF文件的不同方式,ELF文件可以分为链接视图和装载视图。链接视图是链接器从链接的角度看待静态的ELF文件。
从链接视图看ELF文件,ELF文件由多个section组成,不同的section拥有不同的名称,权限。而装载视图是操作系统从加载ELF文件到内存的角度看待动态的ELF文件。
从装载视图看ELF文件,ELF文件由多个segment,每一个segment都拥有不同的权限,名称。实际上,一个segment是对多个具有相同权限的section的集合。
(4)androidso文件是什么文件扩展阅读:
由于Android操作系统的底层基于Linux系统,所以SO文件可以运行在Android平台上。Android系统也同样开放了C/C++接口供开发者开发Native程序。
由于基于虚拟机的编程语言JAVA更容易被人反编译,因此越来越多的应用将其中的核心代码以C/C++为编程语言,并且以SO文件的形式供上层JAVA代码调用,以保证安全性。
而ELF头表记录了ELF文件的基本信息,包括魔数,目标文件类型(可执行文件,共享库文件或者目标文件),文件的目标体系结构,程序入口地址(共享库文件为此值为0),然后是section表大小和数目,程序头表的大小和数目,分别对应的是链接视图和装载视图。
‘伍’ Android SO什么意思
您好,您可能指的是Android OS。
Android OS其实就是安卓操作系统的名字。Android是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发。尚未有统一中文名称,中国大陆地区较多人使用“安卓”或“安致”。Android操作系统最初由Andy Rubin开发,主要支持手机。2005年8月由Google收购注资。2007年11月,Google与84家硬件制造商、软件开发商及电信营运商组建开放手机联盟共同研发改良Android系统。随后Google以Apache开源许可证的授权方式,发布了Android的源代码。第一部Android智能手机发布于2008年10月。Android逐渐扩展到平板电脑及其他领域上,如电视、数码相机、游戏机等。2011年第一季度,Android在全球的市场份额首次超过塞班系统,跃居全球第一。 2013年的第四季度,Android平台手机的全球市场份额已经达到78.1%。2013年09月24日谷歌开发的操作系统Android在迎来了5岁生日,全世界采用这款系统的设备数量已经达到10亿台。
如果您确定您问的是Android SO的话,下面给出解释。
Android SO是Android编程中用到的so类型的文件,是一个c++的函数库,在android的JNI中,是先将相应的C语言打包成so库导入到lib文件夹中调用的。
参考:网络。
‘陆’ android rom /system/lib/ 中好多的.so库,每个.so具体是干什么用
.so文件是Linux so文件,是一种动态链接库文件,即一种可执行文件,它允许程序共享执行特殊任务所必需的代码和其他资源,相当于Windows系统中的.dll,如果删除某.so文件,则会导致手机某程序无法运行,.so文件一一对应一个应用程序,电脑里也是这样,如果删除某.dll文件,所对应的应用程序也将无法运行
‘柒’ 安卓手机如何打开.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。
‘捌’ android so文件是什么
so文件是unix的动态连接库,是二进制文件,作用相当于windows下的.dll文件。
补充:
在Android中调用动态库文件(*.so)都是通过jni的方式。
Android中加载so文件的提供的API:
void System.load(String pathName);
说明:pathName:文件名+文件路径;
‘玖’ android so文件有什么用
android中用到的so文件是一个c++的函数库,在android的JNI中,是先将相应的C语言打包成so库导入到lib文件夹中调用的。