根据资料,再次对各个章节润色

This commit is contained in:
“dqzg12300” 2022-12-04 14:09:28 +00:00
parent c0f841c8fd
commit d6c571a762

View File

@ -2,6 +2,8 @@
## 1.1 AOSP是什么
Android操作系统是如今最流行使用最广的智能手机操作系统它的发展受到广大厂商和用户的全力支持而Android操作系统的开源使它可以被任何人定制化得以满足各类厂商和不同需求的用户。
AOSP的全称是“Android Open Source Project”也就是安卓开源项目。由谷歌发起的移动设备的操作系统。任何人都可以自由的获取到完整的项目源码以及提交更新完善项目同时谷歌也会不断的迭代更新版本。
由于Android的开源各大手机厂商能能够自由的定制系统的源码适配自己的硬件由此衍生出了各种产品。我们常见的国产安卓设备的系统基本厂商开发团队基于AOSP源码不断进行改造和优化的结果例如小米MIUI系统、华为Harmony的系统、一加的H2OS系统等等大多数都是基于AOSP的源码修改而来。如今的Android能够百花齐放占据手机市场的半壁江山也是主要得益于AOSP的开源。
@ -43,13 +45,13 @@ adb pull /sdcard/framework.jar ./
![jadx_framework](images/jadx_framework.png)
5. **Native Libraries**。字面意思C/C++库的原生支持库比如比较典型的libc、ssl、opengl等等
5. **Native Libraries**。字面意思C/C++的常用库的支持比如比较典型的libc、ssl、OpenGL、WebKit等等。为我们开发大大的提高了效率和性能。避免了我们每次用到都需要自己去找工具库
6. **Android Runtime**安卓的运行时库安卓中最核心的ART虚拟机就是在这个部分。虽然android开发常常使用的是java但是android开发的应用并不是运行在JVM虚拟机中而是类似的针对dex结构的Dalvik虚拟机和ART虚拟机。在android4.4之后,逐渐使用ART虚拟机全面替代了Dalvik虚拟机。
6. **Android Runtime**缩写就是ART是Android5.0中的使用的新技术替换了以前的Dalvik虚拟机运行环境。虽然android开发常常使用的是java但是android开发的应用并不是运行在JVM虚拟机中而是类似的针对dex结构的Dalvik虚拟机和ART虚拟机。在android4.4开始测试ART功能随后逐渐使用ART虚拟机全面替代了Dalvik虚拟机。ART使用了更高效的代码编译技术Ahead-of-Time简称AOT编译。大致就是在安装应用时将程序代码编译成可执行的机器码而在运行时不再需要编译。由此提高了应用的运行效率极大的提高用户体验。
7. **HAL硬件抽象层**。主要作用于系统内核与硬件之间的接口,具有提供给硬件供应商实现的标准接口。往往用来做硬件的驱动程序开发。也有个说法是因为硬件供应商不愿意自身的驱动放在内核中被一起开源。所以单独抽出了HAL层来对接硬件驱动。
7. **HAL硬件抽象层**。主要作用于系统内核与硬件之间的接口,是Android系统底层的部分具有提供给硬件供应商实现的标准接口Android系统通过接口访问硬件设备也就是硬件的驱动程序开发因此Android操作系统能够与各类硬件设备进行交互不用关心底层硬件的处理。也有个说法是因为硬件供应商不愿意自身的驱动放在内核中被一起开源。所以单独抽出了HAL层来对接硬件驱动。
8. **Linux内核**。系统的最重要的核心部分内核负责与设备底层的硬件进行交互。比如显示驱动、音频驱动、WIFI驱动、电源驱动、内存管理、进程管理等等。
8. **Linux内核**。系统的最重要的核心部分内核负责与设备底层的硬件进行交互。比如显示驱动、音频驱动、WIFI驱动、电源驱动、内存管理、进程管理,网络通信等等,内核相当于一个操作系统的灵魂
## 1.2 系统开发,定制,刷机,改机分别是什么
@ -62,10 +64,14 @@ adb pull /sdcard/framework.jar ./
非常常见的一个场景就是AOSP是谷歌开源的系统而谷歌的开发者并不一定了解其他国家的国情用户的习惯。那么国内的厂商进行系统开发扩展功能就需要考虑到国内用户体验对界面操作方式系统服务等一些功能进行开发。
### 1.2.2 系统定制
这里主要是对Android系统的底层原有的代码进行修改定制化调整系统的部分框架和核心代码来实现新的功能例如硬件的驱动支持优化系统的性能实现开发者自己的系统结构。
### 1.2.2 定制
系统定制也是属于系统开发的一种属于轻量级的改动。往往不会对系统进行太大的变动。比如下面的场景。系统就像是一个沙箱而我们开发的应用是在沙箱中运作的小盒子。而我们需要对应用进行分析和观测时可以通过修改小盒子运行流程时对系统相关的调用来分析应用执行的各种状态。只要我们对android系统有足够的了解就可以像开了上帝视角一般对普通应用进行跨维度的分析。
这里主要就是轻量级的定制比如对系统的预装应用进行修改优化桌面的结构预装系统权限app替换系统默认应用修改配置等等。
### 1.2.3 刷机
在最早先的Android版本界面非常简陋而且功能并不是那么完善随着各大第三方团队的加入非官方ROM越来越多而官方原版ROM长久使用后越来越卡善于折腾的手机用户就开始尝试使用功能相对完善界面漂亮性能更好的第三方ROM。更换ROM的过程就叫做刷机。当然我们并不是直接刷第三方提供的ROM包而是自己编译一个ROM再刷入手机。
@ -109,7 +115,7 @@ adb pull /sdcard/framework.jar ./
官网https://www.mokeedev.com/
中文名魔趣。发起于2012年12月12日是国内最大的第三方非盈利性开源ROM适配了大量国内主流机型高达近300种。主要针对的用户群体也是国内群众所以在功能和操作方面非常贴切国人的使用习惯同时简单纯净性能出众所以有些人会使用魔趣作为日常用的手机。下面是魔趣支持的手机厂商
中文名魔趣。发起于2012年12月12日是国内最大的第三方非盈利性开源ROM适配了大量国内主流机型高达近300种。魔趣是由一群热爱Android开源社区的热心志愿者维护他们致力于为用户提供最新、最安全、最稳定的定制Android系统主要针对的用户群体也是国内群众,所以在功能和操作方面非常贴切国人的使用习惯,同时简单纯净,性能出众,所以有些人会使用魔趣作为日常用的手机。下面是魔趣支持的手机厂商,
| ARK | 华硕 | Essential | 谷歌 |
| :--: | :--: | :-------: | :--: |
@ -127,7 +133,7 @@ adb pull /sdcard/framework.jar ./
官网https://download.pixelexperience.org/
这是最接近原生Android系统的第三方ROM,我们正常编译出来的AOSP刷入后是没有谷歌插件并且界面UI都是非常简陋的。如果你想要打造一个和原生Android非常相似的ROM那么完全可以选择它原生Android的界面风格以及自带谷歌套装以及适配了更多的手机厂商。下面是它所支持的各大厂商。
这是最接近原生Android系统的第三方ROM,它是在Google Pixel系列设备发布的拥有着Pixel系列设备的原生外观和功能并且添加了更多可定制的功能。它提供了Gestures、Substratum、EDXposed等特殊应用这些应用让用户可以轻松的定制自己的Android设备它还预装了谷歌插件并且还提供了大量可定制的主题以及强大的安全性功能。而我们正常编译出来的AOSP刷入后是没有谷歌插件并且界面UI都是非常简陋的。如果你想要打造一个和原生Android非常相似的ROM那么完全可以选择它原生Android的界面风格以及自带谷歌套装以及适配了更多的手机厂商。下面是它所支持的各大厂商。
| ASUS | Google | Lenovo | Motorola |
| :----: | :-----: | :------: | :------: |
@ -141,7 +147,7 @@ adb pull /sdcard/framework.jar ./
官网https://www.lineageos.org/
LineageOS的前身是大名鼎鼎的CyanogenMod简称CM这个开发团队是全球最大的Android第三方编译团队。早在Android1.6版本时就为很多手机厂商定制出稳定的ROM。2016年12月Cyanogen公司宣布停止开发并关闭项目随后复刻后更名为LineageOS由原团队继续研发。 LineageOS的风格同样是类似原生Android的但是相比起PixelExperience要更加的精简运行起来也是非常流畅同样适配各大厂商机型。下面是它所支持的各大厂商。
LineageOS的前身是大名鼎鼎的CyanogenMod简称CM这个开发团队是全球最大的Android第三方编译团队。早在Android1.6版本时就为很多手机厂商定制出稳定的ROM。2016年12月Cyanogen公司宣布停止开发并关闭项目随后复刻后更名为LineageOS由原团队继续研发。 LineageOS的风格同样是类似原生Android的但是相比起PixelExperience要更加的精简运行起来也是非常流畅同样也是非常纯净不会携带任何第三方应用,并且具有高度的安全性,可以在经过认证的设备上使用,能防止恶意软件攻击或病毒感染,也有着定制功能,允许用户自己定制操作系统,适配各大厂商机型。下面是它所支持的各大厂商。
| ASUS | BQ | Dynalink | Essential |
| :-------: | :-----: | :------: | :-------: |
@ -167,21 +173,23 @@ adb pull /sdcard/framework.jar ./
3、同时我们也可以自己打造喜欢的日常用机。为自己DIY一些提供便利的小功能或者打造自己专用的工具手机。
4、可以有效的控制操作系统的体积更好的提升产品的性能和效率。
### 1.5.2 系统定制的缺点
定制的优势有的时候同样也代表着缺点杀鸡用牛刀可以非常形象的形容我们定制ROM来干的事情。因为有很多时候一些需求并不需要修改ROM就能用其他方案轻松做到的下面简单的总结几个缺点。
1、学习难度大刚开始的阶段搭建编译ROM的环境就较为麻烦再加上庞大的源代码复杂的结构所以很容易劝退一些初学者。
2、开发成本大每次修改完代码都需要重新刷机很多时候哪怕做一个小小的功能你在测试的过程都在无限的重复编译刷机。
3、维护成本大即使是一个成型的产品后续难免会有优化和更新BUG是不可能没有的。而我们想要更新只能选择全部重新刷机。
2、开发成本大每次修改完代码都需要重新刷机很多时候哪怕做一个小小的功能你在测试的过程都在无限的重复编译刷机。并且需要熟悉源码结构必须深入理解Android系统以便于充分利用系统提供的API来制定出更加合理的定制方案
3、维护成本大即使是一个成型的产品后续难免会有优化和更新BUG是不可能没有的。而我们想要更新只能选择全部重新刷机同样每次新的系统版本发布都需要重新定制和迁移需要耗费大量的时间和精力。
4、安全系数低AOSP定制的系统安全性较低所以定制的系统可能存在安全漏洞导致定制系统比原生系统更容易受到攻击。
### 1.5.3 系统定制的发展趋势
### 1.6 初识系统刷机