android ROM ---(1)高通平台 Android O 升级学习

Project Treble与Android系统升级
为解决Android系统升级缓慢的问题,谷歌推出Project Treble,采用模块化设计将供应商组件与系统框架分离,使得OEM厂商能更快地推送系统更新。此方案减少了OEM商在每次系统更新时对大量安卓代码的依赖。

1. Android Project Treble

 与iOS相比,安卓系统有一个致命弱点,那就是新版本系统升级太慢,除了谷歌Nexus和Pixel等亲儿子机型,其他OEM商的机型更新新系统需要用户漫长的等待,这也造成了安卓平台的碎片化问题。谷歌一直在努力解决这一问题,但却一直见不到成效。在2017年Google I/O大会前,搜索巨人又出手了,它们推出了Project Treble,试图从Android O开始让系统升级变的更简单、更迅速,同时为OEM商节省更多资金。

Project Treble的点子来源于安卓兼容性测试(CTS),在CTS的框架下,开发者无需针对特定机型进行调整就能写出安卓设备通用的应用。

在Project Treble的全新模块化体系下,谷歌直接将由芯片制造商用于控制底层程序的“Vendor Implementation(VI)”接口和整体的安卓框架分离。

这样一来,新的供应商接口就可以通过供应商测试套件进行验证了,该套件与前面提到的CTS类似,可以确保VI接口的前向兼容性。而在Project Treble之前,每次有新系统,厂商就必须升级大量安卓代码,现在OEM商则可以直接跳过芯片供应商这一关了。

在新的框架下,OEM商可以选择直接将新版系统推送给用户,整个过程只是升级安卓架构那么简单。

2.  Android N和Android O image 组成

 


      1)模块化,谷歌、SoC供应商、OEM 各自的负责的内容分开。

      2)供应商模块被移动到独立的映像中,从而加快软件升级及发布的过程。

      3) 供应商和OEM模块从系统映像中分离出来,HAL 层进行了重构,kerenl 4.9 后kernel 模块化(SDM485 支持新的kernel)

 3 支持Android O 的平台 


4 Android O兼容性 变化



5. OTA 编译方式推荐

打上禁用系统/供应商 image 分开的补丁

6 Image 分离

在Project Terble 中,原 系统Image 分成 系统Image 和 Vendor Iamge.


配置好编译的 Android makefiles 变量,确保Vendor编译成独立的Image:

模块属性变量

LOCAL_MODULE_OWNER:= <vendor name> 

LOCAL_PROPRIETARY_MODULE := true 

LOCAL_MODULE_PATH:= $(TARGET_OUT_VENDOR) # for /vendor/<file> 

LOCAL_MODULE_PATH:= $(TARGET_OUT_VENDOR_APPS) 

LOCAL_MODULE_PATH:= $(TARGET_OUT_VENDOR_ETC) 

LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_EXECUTABLES)  

LOCAL_MODULE_PATH_32 := $(TARGET_OUT_VENDOR)/lib 

LOCAL_MODULE_PATH_64:= $(TARGET_OUT_VENDOR)/lib64 


所有供应商二进制文件必须写到 /data/vendor 下(非/vendor下

包括 vendor HALs, proprietary daemons 和command

Vendor Image 执行时不允许直接调用System image 的函数。

 7 HAL 重构

 O 以前HAL接口声明在C和C++头文件定义。在O中,这些声明在HAL中用HIDL重写

8 Binderized vs. Non-Binderized HIDL HAL




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值