android8.0学习(1)---Android Treble 概述
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 概述相关推荐
- Android8.0 学习 (17)Android国际化(多语言)实现,支持8.0
Android国际化(多语言)实现,支持8.0 前言 最近因为项目中使用了国际化,所以正好研究了下实现方法: 首先说下项目需求: 可以随着系统切换语言而切换语言,不支持的语言显示默认 用户可以选择语言 ...
- Android 8.0学习 (2)---Android HAL
硬件抽象层 (HAL) HAL 可定义一个标准接口以供硬件供应商实现,这可让 Android 忽略较低级别的驱动程序实现.借助 HAL,您可以顺利实现相关功能,而不会影响或更改更高级别的系统.HAL ...
- Android8.0 学习(15)---适配Android 8.0
Android O 迁移(适配Android 8.0) 现在我们介绍下 Android O新的改动: 通知 在 Android 8.0 中,我们已重新设计通知,以便为管理通知行为和设置提供更轻松和更统 ...
- Android8.0学习(1)---Android 架构
Android 架构(8.0以前) Android 系统架构包含以下组件: 图 1. Android 系统架构 应用框架 应用框架最常被应用开发者使用.如果您是硬件开发者,则应该了解开发者 API,因 ...
- Android8. 0 学习(33)--- msensor移植
android 8.0 msensor移植 1.驱动移植 A update/alps/kernel-4.4/drivers/misc/mediatek/sensors-1.0/magneto ...
- Android 8.0学习 (36)---Android 8.0 WebView 拍照、简易预览、二维码扫描 各种问题解决
Android 8.0 WebView 拍照.简易预览.二维码扫描 各种问题解决 项目用到了WebView包装HTML5做成app使用,其中有页面用到了二维码和拍照上传功能.本人从未做过android ...
- android8.0电脑壁纸,Android用原生分享多张图片适配7.0、8.0
常规操作只能适配6.0及以下 直接上分享的代码: Intent share_intent = new Intent(); ArrayList imageUris = new ArrayList(); ...
- android8.0桌面快捷方式,Android 8.0 快捷方式Shortcut
Oreo创建app快捷方式两种方式: v7包:appcompat-v7:26.0.2 ShortcutManager requestPinShortcut() LauncherActivity:点击快 ...
- android7虚拟定位,Android8.0还早 EMUI助推Android7.0普及
5月17日至19日,谷歌2017年开发者大会在加州谷歌总部所在地举办.本次会议当中,最重要产品之一即新一代Android O操作系统(也就是我们所说Android 8.0)成为最大的亮点.最新发布的A ...
最新文章
- Sql Server 字符串操作总结
- 王吉伟:厉害了王坚的《在线》 未来世界还有什么不能被计算?
- 深入浅出parallelStream
- Bailian3195 最大公约数【数论】
- R语言中的read.table()
- java文件处理(3)——实现文件复制和文件移动
- chrome被hao123主页绑架的解决
- 状态输出导航栏html,网页导航条代码
- AntD Pro Footer自定义
- 是什么引发了我对知识的渴望
- Nginx - 静态网站;负载均衡;静态代理;动静分离;虚拟主机
- L1正则化和L2正则化的直观解释
- 《小时代2青木时代》 短评 与郭敬明的中立评价
- 痞子衡嵌入式:MCUBootUtility v4.0发布,开始支持MCX啦
- 用python玩转数据第一周答案_用Python玩转数据_答案
- 物联网(IOT)之常见物联网通信技术概览-无线篇②
- JAVA根据模板导出PPTX
- 火焰图FlameGraphs部署使用
- print()函数的使用
- python免费对接快递鸟api单号识别查询接口
热门文章
- 网关gateway解决跨域问题
- 写几个函数 输入10个职工的姓名和职工号_Excel函数速查一览表-函数应用案例-信息统计(2)...
- 图书管理系统C语言程序设计课程,vs c语言图书管理平台课程设计_图书管理平台c语言程序设计_c语言课程设计 图书管理系统...
- json解析数组 nlohmann_json解析数组 nlohmann_Nlohmann json学习
- php乱码解决方案,PHP中文乱码解决方案
- 23种设计模式之简单工厂模式,工厂方法模式,抽象工厂模式详解
- 【Gamma】 Phylab 发布说明
- CURL 模拟post和get请求
- 关于Tomcat配置虚拟路径保存、访问图片
- Tensorflow笔记(基础):批处理(batch_normalization)