本文转载自:https://blog.csdn.net/yangwen123/article/details/79835965

从AndroidO开始,google引入了Treble架构,目的是为了方便系统升级,将oem定制的东西和Framework分离。

AndroidO之前的版本:
在此之前的Android系统架构当中,Android Framework与Android HAL是打包成一个system.img的,而且Framework与HAL之间是紧耦合的,通过链接的方式使用相应的硬件相关so库。老版本的android 的系统框架当中framework与HAL之间的一般架构框架是:

所以每次Android framework的升级需要对应的Android HAL升级。

AndroidO以及以后的版本
在Android O以及以后的版本当中,Android 更新了新的框架设计在新的框架设计当中,引入了一套叫HIDL的语言来定义Freamework与HAL之间的接口,新的架构如下图:

跟以往的Android 版本相比较,Android O里使用HIDL来解耦Android Framework 与Vendor HAL Implemetation之间的关系,从而简化降低Android系统升级的影响与难度。

Android Framework会在system分区当中,而Vendor HAL Implemetation会在一个新定义的分区(Vendor.img)当中,这样刷新的system.img 才不会影响到Vendor HAL Implemetation,所以在Android O中的升级方式变成以下方式:

google的目的很理想,但现实很残酷,大部分oem厂商是没有google的研发实力的,无法跟上google的节奏,因此很多厂商还停留在android老版本,为了给oem厂商学习时间,同时保持Android向前兼容,google为HAL定义了3种类型:

1,BinderizedHALs,从名字上应该是指Binder化的HAL,也就是说HAL都被写成了binder service了,Android FW都是binder client。
2,PassthroughHALs,从google的官方介绍来说,这个是对原先HAL的包装,但是最终的binder service 跟binder client都是活在同一个进程当中。这个应该是对老版本HAL的兼容。

3,Same-ProcessHALs,由于某些性能的因素,这些HALs必须运行在Android Framework 所在的进程当中,比如surfaceflinger中的gralloc hal,如果进行进程分离,那么对系统性能影响较大。

AndroidO Treble架构分析【转】的更多相关文章

  1. AndroidO Treble架构下Hal进程启动及HIDL服务注册过程【转】

    本文转载自:https://blog.csdn.net/yangwen123/article/details/79854267 通过前面对Treble架构的介绍,我们知道,Android Framew ...

  2. tomcat架构分析 (Session管理)

    Session管理是JavaEE容器比较重要的一部分,在app中也经常会用到.在开发app时,我们只是获取一个session,然后向session中存取数据,然后再销毁session.那么如何产生se ...

  3. Magento架构分析,Magento MVC 设计分析

    Magento架构分析,Magento MVC 设计分析 分类:Magento 标签:Magento MVC.Magento架构 669人浏览 Magento 采用类似 JAVA的架构,其扩展与稳定性 ...

  4. Flickr 网站架构分析

    Flickr 网站架构分析 Flickr.com 是网上最受欢迎的照片共享网站之一,还记得那位给Windows Vista拍摄壁纸的Hamad Darwish吗?他就是将照片上传到Flickr,后而被 ...

  5. Android架构分析之Android消息处理机制(二)

    作者:刘昊昱 博客:http://blog.csdn.net/liuhaoyutz Android版本号:4.4.2 在上一篇文章中我们看了一个使用Handler处理Message消息的样例,本文我们 ...

  6. NopCommerce架构分析(转载)

    原文 一,NopCommerce架构分析之开篇 NopCommerce是.net开源项目中比较成熟的一款业务应用框架,也是电子商务系统中的典范.所以很想多学习一下里面的设计和实现方式. 二,NopCo ...

  7. Qualcomm Android display架构分析

    Android display架构分析(一) http://blog.csdn.net/BonderWu/archive/2010/08/12/5805961.aspx http://hi.baidu ...

  8. tomcat架构分析-索引

    出处:http://gearever.iteye.com tomcat架构分析 (概览) tomcat架构分析 (容器类) tomcat架构分析 (valve机制) tomcat架构分析 (valve ...

  9. [转载] 关于“淘宝应对"双11"的技术架构分析”

    微博上一篇最新的关于“淘宝应对"双11"的技术架构分析”.数据产品的一个最大特点是数据的非实时写入.

随机推荐

  1. 4.GDscript(2)关键字,运算符,字面量

    (来源godot官方文档) 关键词 下面是该语言支持的关键字列表.由于关键字是保留字(令牌),它们不能用作标识符.操作符(如 in , not , and 或 or )以及下面列出的内置类型的名称也是 ...

  2. QtCreator 调试源码

    [1]安装源码 声明:要想调试进入Qt源码,必须首先保证我们安装了Qt源码.下面说明安装Qt源码注意事项. 一般安装过程(默认不安装源码): 安装源码过程(需要自己设置,点击“全选”): 综上所述:Q ...

  3. 理解本真的 REST 架构风格

    1. http://kb.cnblogs.com/page/186516/ 2. http://www.infoq.com/cn/articles/rest-introduction 3. http: ...

  4. npm 包下载的各种姿势

    最近在写Node程序的时候,突然对 npm install 的-save和-save-dev 这两个参数的使用比较混乱.其实博主在这之前对这两个参数的理解也是模糊的,各种查资料和实践后对它们之间的异同 ...

  5. JS-向数组指定位置添加元素

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  6. 使用commons-compress解压GBK格式winzip文件到UTF8,以及错误使用ZipArchiveInputStream读出来数据全是空的解决办法

    先上正确方法: 正确方式应该为,先创建一个ZipFile,然后对其entries做遍历,每一个entry其实就是一个文件或者文件夹,检测到文件夹的时候创建文件夹,其他情况创建文件,其中使用zipFil ...

  7. Linux基础命令---ifconfig

    ifconfig ifconfig指令用来配置网络接口参数,同时还可以显示当前内核网络接口的工作状态.如果没有提供参数,则ifconfig将显示当前活动接口的状态.如果给定单个接口参数,则只显示给定接 ...

  8. 在CentOS 6.3中安装与配置cmake

    安装说明安装环境:CentOS-6.3安装方式:源码编译安装软件:cmake-2.8.10.2.tar.gz下载地址:http://www.cmake.org/cmake/resources/soft ...

  9. Oracle 数据库实现数据合并:merge

    1.使用update进行数据更新 1)最简单的更新 update tablea a set a.price=1.00 2)带条件的数据更新 update tablea a set a.price = ...

  10. 大数据学习路线之linux系统基础搭建

    学习大数据是必须掌握一定Linux知识的,工欲善其事,必先利其器.在学习之前,首先需要搭建Linux系统,本节将讲解VMware Workstation的安装和CentOS 7系统的安装. 1.2.1 ...