啥是so文件

这个是linux系统下的文件,
你的手机应该是安卓平台,
安卓平台是从linux内核的基础上发展过来的,
所以会有后缀为.so(shared object)的文件,
当然这样解释不够精确、详细,
肯定会被吐槽,
具体如下:
准确地、详细地来说,
手机里面有硬件,
也就是弱电学中的电路,
电路组成了CPU和协助CPU的外围电路,
CPU上面移植了Linux内核,
好,接下来就开始百花齐放了:

1、有的手机跑的是安卓的系统
2、有的时候跑的是linux系统

他们都基于Linux内核,
对于Linux内核有不同的扩充,
有的扩充成A系统,叫安卓,
有的扩充成B系统,叫Linux,
但是手机上,安卓相对linux,更加流行。
而Linux内核,并不是唯一的,
有正统的,也有非正统的(不太常见而已),
而Linux内核对应的CPU结构,也有很多种,
因此不同的智能手机可能有不同的CPU、不同的Linux内核和不同的安卓系统
(这个系统里包含了Linux内核)
当然还有跑windows的,扯远了,
windows的手机,里面应该可以找dll文件
,这个对应安卓系统的.so文件。
还没讲so文件是干嘛的~

那为什么起个名字叫share object?
这个so文件,
有时候是直接被调用的,
有时候是会参与到编译中的,
也就是说,
一个.so文件可能会被多个应用程序用到,
因此取名叫share object。
这个就和windows里面一样,
如果有时候百度下载了几个调用dll文件的软件,
恰好电脑里面缺这几个dll,
那么此时,
这几个软件将不能运行,
也就是说,
这几个dll会被这几个软件在运行时都用到,
有share的味道,
所以在windows里面叫链接库,
在Linux内核的系统上
(可以是ubuntu啊、redhat啊,android等等)叫
.so(shared object),
作用类似,windows中起名字更严肃点,
linux对它的起名更形象些,
意思差不多。
当然区别肯定会有,
这里只是回答得让读者大致理解,
具体差别请另外百度。
.so文件怎么运作的?(下面两个步骤摘自百度)

#

①编译阶段。
链接编辑器(link editor)拿它和其他Relocatable object file
以及其他shared object file作为输入,
经链接处理后,
生存另外的 shared object file
或者 executable file。
②运行阶段。
动态链接器(dynamic linker)拿它和一个executable file
以及另外一些 shared object file 来一起处理,
在Linux系统里面创建一个进程映像。

#

所以大家爱吐槽啊,
这个C牌子的智能手机,
怎么刷不了那个D牌手机 官方系统包啊?
出来各种问题,有些问题是可以解决的,
有些是解决不了的,
甚至会有烧机的情况。
这类问题和底层的CPU种类、Linux内核种类及版本、so文件版本等都是相关的。
所以有些牌子的智能机有通吃现象,
可以刷其他牌子的各种官方系统,
有的智能机则不行。
总结:
CPU和PCB外围电路
=>Linux内核+应用组件组成的安卓系统
=>对.so文件和其他文件一起编译
=>对.so文件和其他文件一起运行
=>创立进程、线程(也就是手机上的各种app和系统自带功能)
=>然后我们就可以使用手机上的各种功能了。

最后,以上回答只是为了让读者有初步的、粗略的、大致的理解。
任何专业名词和术语只要打了比方,
就肯定是不绝对精确的。
更详细的,请参考专业文献。
手机里面的so文件,
如果是应用软件的,删除后,应用软件请重装,
如果是系统自带的,请尽量不要删除。
抛砖引玉,答得不好,请别骂,谢谢!

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值