1 Android Treble

Android 8.0 版本的一项新元素是 Project Treble。这是 Android 操作系统框架在架构方面的一项重大改变,旨在让制造商以更低的成本更轻松、更快速地将设备更新到新版 Android 系统。Project Treble 适用于搭载 Android 8.0 及后续版本的所有新设备(这种新的架构已经在 Pixel 手机的开发者预览版中投入使用)。

2 关于 Android8.0 更新

利用新的供应商接口,Project Treble 将供应商实现(由芯片制造商编写的设备专属底层软件)与 Android 操作系统框架分离开来。

Android 7.x 及更早版本中没有正式的供应商接口,因此设备制造商必须更新大量 Android 代码才能将设备更新到新版 Android 系统:

图 1. Treble 推出前的 Android 更新环境

Treble 提供了一个稳定的新供应商接口,供设备制造商访问 Android 代码中特定于硬件的部分,这样一来,设备制造商只需更新 Android 操作系统框架,即可跳过芯片制造商直接提供新的 Android 版本:

图 2. Treble 推出后的 Android 更新环境

3 对Android Treble 进行测试

为了确保供应商实现的前向兼容性,新的供应商接口会由供应商测试套件 (VTS) 进行验证,该套件类似于兼容性测试套件 (CTS)。您可以使用 VTS 在推出 Treble 前的环境和 Treble 环境中自动执行 HAL 和操作系统内核测试。

4 Android Treble 资源

要详细了解新的 Treble 架构,请参阅以下部分:

HAL 类型:提供了关于绑定式 HAL、直通 HAL、Same-Process (SP) HAL 和旧版 HAL 的说明。

HIDL(一般信息):包含关于 HAL 接口定义语言(简称 HIDL,发音为“hide-l”)的一般信息;HIDL 是用于指定 HAL 和其用户之间接口的接口描述语言 (IDL)。

HIDL (C++):包含关于为 HIDL 接口创建 C++ 实现的详情。

HIDL (Java):包含关于 HIDL 接口的 Java 前端的详情。

ConfigStore HAL:提供了关于 ConfigStore HAL 的说明;该 HAL 提供了一组 API,可供访问用于配置 Android 框架的只读配置项。

设备树叠加层:提供了关于在 Android 中使用设备树叠加层 (DTO) 的详情。

供应商原生开发套件 (VNDK):提供了关于 VNDK(专门用来让供应商实现其 HAL 的一组库)的说明。

供应商接口对象 (VINTF):VINTF 对象整合了关于设备的相关信息,并让这类信息可通过可查询 API 提供。

SELinux for Android 8.0:提供了关于 SELinux 变更和自定义的详情。

5 Treble 架构

为了能够让Android O之前的版本升级到Android O,Android设计了Passthrough模式,经过转换,可以方便的使用已经存在代码,不需要重新编写相关的HAL。HIDL分为两种模式:Passthrough和Binderized。

Binderized: Google官方翻译成绑定试HAL。

Passthrough:Google官方翻译成直通式HAL。

大致框架图如下,对于Android O之前的设备,对应图1,对于从之前的设备升级到O的版本,对应图2、图3. 对于直接基于Android O开发的设备,对应图4。

新的架构之下,framework和hal运行于不同的进程,所有的HAL采用新的HIDL技术来完成。

android8.0学习(1)---Android Treble 概述相关推荐

  1. Android8.0 学习 (17)Android国际化(多语言)实现,支持8.0

    Android国际化(多语言)实现,支持8.0 前言 最近因为项目中使用了国际化,所以正好研究了下实现方法: 首先说下项目需求: 可以随着系统切换语言而切换语言,不支持的语言显示默认 用户可以选择语言 ...

  2. Android 8.0学习 (2)---Android HAL

    硬件抽象层 (HAL) HAL 可定义一个标准接口以供硬件供应商实现,这可让 Android 忽略较低级别的驱动程序实现.借助 HAL,您可以顺利实现相关功能,而不会影响或更改更高级别的系统.HAL ...

  3. Android8.0 学习(15)---适配Android 8.0

    Android O 迁移(适配Android 8.0) 现在我们介绍下 Android O新的改动: 通知 在 Android 8.0 中,我们已重新设计通知,以便为管理通知行为和设置提供更轻松和更统 ...

  4. Android8.0学习(1)---Android 架构

    Android 架构(8.0以前) Android 系统架构包含以下组件: 图 1. Android 系统架构 应用框架 应用框架最常被应用开发者使用.如果您是硬件开发者,则应该了解开发者 API,因 ...

  5. Android8. 0 学习(33)--- msensor移植

    android 8.0 msensor移植 1.驱动移植 A      update/alps/kernel-4.4/drivers/misc/mediatek/sensors-1.0/magneto ...

  6. Android 8.0学习 (36)---Android 8.0 WebView 拍照、简易预览、二维码扫描 各种问题解决

    Android 8.0 WebView 拍照.简易预览.二维码扫描 各种问题解决 项目用到了WebView包装HTML5做成app使用,其中有页面用到了二维码和拍照上传功能.本人从未做过android ...

  7. android8.0电脑壁纸,Android用原生分享多张图片适配7.0、8.0

    常规操作只能适配6.0及以下 直接上分享的代码: Intent share_intent = new Intent(); ArrayList imageUris = new ArrayList(); ...

  8. android8.0桌面快捷方式,Android 8.0 快捷方式Shortcut

    Oreo创建app快捷方式两种方式: v7包:appcompat-v7:26.0.2 ShortcutManager requestPinShortcut() LauncherActivity:点击快 ...

  9. android7虚拟定位,Android8.0还早 EMUI助推Android7.0普及

    5月17日至19日,谷歌2017年开发者大会在加州谷歌总部所在地举办.本次会议当中,最重要产品之一即新一代Android O操作系统(也就是我们所说Android 8.0)成为最大的亮点.最新发布的A ...

最新文章

  1. Sql Server 字符串操作总结
  2. 王吉伟:厉害了王坚的《在线》 未来世界还有什么不能被计算?
  3. 深入浅出parallelStream
  4. Bailian3195 最大公约数【数论】
  5. R语言中的read.table()
  6. java文件处理(3)——实现文件复制和文件移动
  7. chrome被hao123主页绑架的解决
  8. 状态输出导航栏html,网页导航条代码
  9. AntD Pro Footer自定义
  10. 是什么引发了我对知识的渴望
  11. Nginx - 静态网站;负载均衡;静态代理;动静分离;虚拟主机
  12. L1正则化和L2正则化的直观解释
  13. 《小时代2青木时代》 短评 与郭敬明的中立评价
  14. 痞子衡嵌入式:MCUBootUtility v4.0发布,开始支持MCX啦
  15. 用python玩转数据第一周答案_用Python玩转数据_答案
  16. 物联网(IOT)之常见物联网通信技术概览-无线篇②
  17. JAVA根据模板导出PPTX
  18. 火焰图FlameGraphs部署使用
  19. print()函数的使用
  20. python免费对接快递鸟api单号识别查询接口

热门文章

  1. 网关gateway解决跨域问题
  2. 写几个函数 输入10个职工的姓名和职工号_Excel函数速查一览表-函数应用案例-信息统计(2)...
  3. 图书管理系统C语言程序设计课程,vs c语言图书管理平台课程设计_图书管理平台c语言程序设计_c语言课程设计 图书管理系统...
  4. json解析数组 nlohmann_json解析数组 nlohmann_Nlohmann json学习
  5. php乱码解决方案,PHP中文乱码解决方案
  6. 23种设计模式之简单工厂模式,工厂方法模式,抽象工厂模式详解
  7. 【Gamma】 Phylab 发布说明
  8. CURL 模拟post和get请求
  9. 关于Tomcat配置虚拟路径保存、访问图片
  10. Tensorflow笔记(基础):批处理(batch_normalization)