前言
Android 是一个适用于移动设备的开源操作系统,也是由 Google 主导的对应开源项目。
最初,Android只在移动设备中流行与IOS二分天下。后来,随着时代的发展、芯片性能的逐步提升以及汽车对敏捷快速迭代的要求,Android在车载娱乐系统独霸天下。
一、安卓架构
随着国内程序员的增多及迫切要求,谷歌推出了CN官网的镜像:安卓开源项目及开发者API两个网站。
其中,安卓开源项目主要面向OEM设备厂商的开发人员;开发者API主要面向应用开发人员。
并且,随着信息的爆发,安卓架构、安卓信息安全及兼容性测试作为安卓开源项目首要内容展现给读者。而开发者API网站主要目的是带领读者入门
1.1 安卓架构
安卓最初的架构设计主要是为厂商考虑、避免版权泄露,因此设计成了四层模式:
后来随着安卓碎片化越来越严重,Google为了能够让用户更好的体验最新版本的安卓系统同时减轻厂商的开发工作负荷,在Android 10左右提出了如下架构
这种开源的良好的架构设计,给了各个厂商更高的自由度。各个厂商可以自由的对Andorid进行剪裁,有只保留android一部分组件的(比如AVB、adb),有填充额外功能的(比如移植第三方库)。
1.2 信息安全
信息安全主要是由于各国的相关信息安全的立法,当然立法的原因是用户的关注。由于立法而产生的一种迫切的信息安全的需求,Google顺应潮流在系统设计上就体现了信息安全的概念,并将其与架构和兼容性测试并列为三大核心功能之一。
在信息安全方面,Google做了两类事情,一是出具信息安全白皮书;二是发布每月Bulletins
1.3 兼容性测试
安卓作为一个开源的操作系统,它的硬件千差万别。为例对开发者友好,让 Android 用户在使用生态系统中的安卓设备获享一致的体验,Google提出了兼容性计划,主要分为CTS、ATS、GTS、VTS四组测试组件。
二、使用WSL编译安卓低版本(10)
WSL这个东西编译不了高版本的安卓,主要是系统资源的限制,在10以后的版本安卓编译对系统的要求越来越高。网站有很多资源介绍安卓编译,也因此本文仅介绍一些核心的知识点。体验安卓的编译流程,我们只需要使用Windows自带的Linux子系统就可以了。
2.1 WSL2
从wsl到wsl2明显是退步,为什么还有人鼓吹wsl2?
WSL2对比WSL,WSL2是一个完整的Linux内核,在本文撰写的时间上,使用WSL编译安卓会出现奇奇怪怪的笔者解决不了的问题。同样的,笔者也只是用了WSL2成功编译了Android 10。比如说初学者,也没有必要使用WSL来编译最新的镜像,如果需要的话还是需要自己搞一台纯净的Ubuntu环境。
2.2 安卓源
由于无法直接访问source.android.com,因此我们需要选择替代源。笔者使用过的镜像源有两个,一个是清华镜像,一个是中科大镜像。
2.3 下载及编译。
清华镜像和中科大镜像的首页就培训用户如何下载镜像。
这里,它实际上使用了repo和git工具的核心原理。先搞个本地仓备份,然后再同步。
正常开发过程中,也不会看安卓的历史提交记录。基于这个原因我们再repo init引入–depth=1,即仅同步最新的文件不带历史记录。
同时使用repo sync -c来仅仅同步当前repo init -u指定的分支。
repo init -u git://mirrors.ustc.edu.cn/aosp/brillo/manifest -b master --depth=1
repo sync -c
-b 的分支和版本见国内镜像
安卓源码以百G计
2.3.1 查看编译时全部命令
m showcommands
2.3.2 C编译加速
ccache
export USE_CCACHE=1
2.4 购买Pixel
Google亲儿子pixel总是最新支持自己的最新系统。
我们可以在分支和支持手机页面查询当前最新的分支和支持的Pixel手机型号。文章来源:https://www.toymoban.com/news/detail-492458.html
- Pixel手机驱动国内镜像地址获取手机对应驱动
- 根据分支和支持手机页面下载指定分支源码
- 选择自己手机对应的选项编译安卓镜像,比如piex5对应redfin
- 刷机参考《Pixel 4 AOSP源码编译及刷机》
总结
本文简介了安卓的两大技术网站,并简单介绍了使用WSL体验安卓的流程。由于官方技术网站的内容更优秀,这里也不会对相关内容做更详细的介绍,具体请参考官方网站。文章来源地址https://www.toymoban.com/news/detail-492458.html
到了这里,关于Android初体验的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!