linux系统|谈谈刚刚发布的Android 11不为人知的剧变( 二 )


Project Treble大大简化了安卓系统的升级流程 , 但这还不够 。在安卓10当中 , Google推行了Project Mainline , 将系统进一步细分模块化 。在安卓10中 , 14个系统组件被Mainline化 , 媒体解码器、权限控制器、网络组件等系统组件 , 都可以像普通App一样 , 通过应用商店来更新——很多朋友发现 , 今年安卓机的GPU驱动竟然能够独立更新 , 就得益于此 。
linux系统|谈谈刚刚发布的Android 11不为人知的剧变
文章图片

文章图片

高通宣布GPU驱动可以单独更新
在安卓11中 , Google又进一步对安卓组件进行细分 , 安卓的组件模块达到了20个之多 , 安卓的系统维护将会变得前所未有地灵活 。不仅如此 , Google还将改制推行到了系统内核当中 , 安卓的Linux系统内核升级将会变得更加灵活 。
在当前的安卓系统中 , Linux系统内核升级大体需要经历三个步骤 。首先 , Google选定一个Linux LTS版本作为安卓内核 , 打上安卓运行所需要的Patch;接着 , Google将这个内核提交给高通等SoC供应商 , 供应商再次将其打造成为适配SoC的内核;最后 , 三星等设备商再让内核适配不同的元器件 , 再次为内核打上各种Patch , 让内核成为真正可以在安卓机上运行的版本 。
linux系统|谈谈刚刚发布的Android 11不为人知的剧变
文章图片

文章图片

传统的Android系统Linux内核升级流程 , 需要经由重重环节 , 非常麻烦
由于步骤繁琐 , 因此当前的安卓机一旦出厂 , Linux内核就很少变动 , 即使是Google旗下的Pixel设备 , 内核也依然只是较为老旧的Linux 4.14 。
而在安卓11中 , 情况有所变化 , Google将系统内核进行了模块化修改 , 内核被分成了Generic Kernel Image(GKI)和其他GKI模块 。如果想要升级Linux版本 , Google可以直接面向安卓机推送GKI , 手机直接升级GKI即可 , 再也不需要经历从SoC厂商到手机设备厂商的繁琐步骤 。
linux系统|谈谈刚刚发布的Android 11不为人知的剧变
文章图片

文章图片

Android 11开始 , 内核进行了模块化 , 一个GKI内核可以通用于市面上的大量安卓机
据了解 , 安卓11的这一特性 , 在内核版本高于Linux 5.4以上的设备上 , 是要求强制执行的 。可以说 , 如果安卓11的设备出厂内核版本就是Linux 5.4以上 , 那它有可能会是史上最容易升级的安卓 。
安卓存储目录文件夹乱象彻底解决?
相信不少人发现 , 安卓机用久了以后 , 存储目录下就会多出很多奇奇怪怪的文件夹 , 这些文件夹是由各种App生成的 , 这其实是一个历史遗留问题 。
linux系统|谈谈刚刚发布的Android 11不为人知的剧变
文章图片

文章图片

安卓存储目录各种杂乱的文件夹哪来的呢?
安卓机的内部存储目录一度非常小 , 例如经典的Milestone的ROM只有512M , 需要用SD卡扩展存储空间 , 因此安卓App往往会将文件保存在外部存储目录下(也就是sdcard目录) 。而安卓在4.3版本前并没有提供外部存储目录的规范 , App习惯在sdcard目录中随意建立自己的文件夹 , 这个习惯一直保留到如今 。
现在 , 尽管安卓建立了sdcard目录的存储规范 , 例如安卓系统规定App如果要在内部存储空间建立文件夹 , 需要建立到/data/data/目录下 , 在外部存储空间则需要建立在/sdcard/Android/data/目录下 。然而这一规范并非是强制性的 , 很多App由于使用第三方SDK等各种各样的原因 , 视安卓的存储目录规范不见 , 依然在sdcard目录下自建文件夹 , 安卓存储目录的混乱由此而来 。


推荐阅读