网友潇潇

2017.03.03

采纳率:62%    等级:25

已帮助:27442人

这个是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文件,如果是应用软件的,删除后,应用软件请重装,如果是系统自带的,请尽量不要删除。

10分享举报

android 如花调用so库,SO文件是什么文件相关推荐

  1. android jni调用so库

    今天,讲讲android studio 使用jni调用其他so库的使用. 首先说一下在网上查找资料时,对于调用第三方so库,有人说有两种方法: 1.    对于so库的API符合JNI格式(即使用ja ...

  2. 在Android中调用KSOAP2库访问webservice服务出现的服务端传入参数为null的问题解决

    在Android中调用KSOAP2库访问webservice服务出现的服务端传入参数为null的问题解决 参考文章: (1)在Android中调用KSOAP2库访问webservice服务出现的服务端 ...

  3. aardio - 调用Python库下载蓝奏盘文件

    Python库确实广泛,各种功能无处不在无孔不入无所不能,从蓝奏盘下载文件,利用Python的蓝奏云api库(lanzou),一句代码即可实现,方便的不要不要的: lzy.down_file_by_u ...

  4. Android中调用.so库操作步骤

    参考:http://www.cnblogs.com/anyanran/archive/2010/11/22/ndk1.html http://www.cnblogs.com/sevenyuan/p/4 ...

  5. Android so库开发——Android Studio调用so库(二)

    一.JNI规范so库调用 在 Android Studio生成自己的so库 中已经创建了自己的so库,这是一个JNI规范的so库,可以直接将so库放到libs中,并按照上面文章中MainActivit ...

  6. Android studio项目调用SO库

    Android studio项目调用SO库 Android studio创建Native C++工程 下载Native C++工程编译工具 新建native c++工程 native C++工程目录结 ...

  7. C++库文件和头文件编写教程

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 「本文介绍了在Linux系统下生成库文件,以及编写头文件来使用该库 ...

  8. Python下载文件到指定文件夹

    Python下载文件到指定文件夹 import os # 导入os库 import urllib.request # 导入urllib库 import requests as rb # 导入reque ...

  9. android调用 qt so文件路径,Android Java调用Qt写的so库

    有时候,我们反编译apk得到一个so库,如果直接使用这个so库的话,必须使用原来so库同样的package名字,才能用.这样人家反编译你的apk,就知道你侵犯了人家的版权.为了达到混淆的目的,我们可以 ...

最新文章

  1. 【经典书】线性代数与应用(附pdf)
  2. arrays中copyof_为什么阿里巴巴开发手册明确说明 Arrays.asList() 不能使用其修改方法?...
  3. FIR和IIR的区别+差分方程的单位冲激响应(matlab图解)
  4. Redis与Zookeeper实现分布式锁的区别
  5. windows 和linux查看硬件信息,Linux下如何查看硬件信息?
  6. 计算机一级考试题组成,计算机一级考试试题汇总
  7. ubuntu更改mysql编码格式_Ubuntu修改mysql编码格式
  8. try-catch的使用以及细节
  9. amd cpu不能在cmd环境下运行java代码_Golang安装与环境搭建并在VSCode里面输出HelloWord...
  10. 单片机热敏电阻测温度c语言,单片机实现热热敏电阻测温电路
  11. 【美味蟹堡王今日营业】论文学习笔记10-02
  12. android提交sql语句,sql的提交 - 亭子happy的个人页面 - OSCHINA - 中文开源技术交流社区...
  13. iMazing怎么恢复备份?iMazing恢复备份教程分享
  14. 极速办公如何在Excel中进行条件计数
  15. 图解Fiddler如何抓手机APP数据包【超详细】
  16. 虚幻4与现代C++:转移语义和右值引用
  17. OpenGL超级宝典的例子Triangle
  18. Android 性能优化五大误区和两大疑点!
  19. STM32F767时钟树分析
  20. 数据库SDB数据缓冲层(TBL数据缓冲层)向ODB数据贴源层(QSL近源模型层)拉链算法脚本【SQL部分】

热门文章

  1. 幼儿园学数字计算机,幼儿数学电脑版
  2. esp32 cam 1.44寸TFT彩屏 ST7735S驱动 TFT_eSPI库驱动
  3. 软件测试工程师的技能树
  4. 趣味IT知识:你知道千年虫吗
  5. python简单心形代码爱情闪字_《使用Python进行自然语言处理》学习笔记四
  6. 如何选择动态域名解析工具---金万维
  7. 超实用,自带云端储存功能的八款思维导图软件
  8. EPIC换盘符后导致无效驱动器错误
  9. medoo php 教程,Medoo框架操作数据库
  10. 行政区划矢量数据还不会找?那你一定没用过ArcGIS Pro的这个功能