自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(10)
  • 资源 (1)
  • 收藏
  • 关注

转载 AndroidO Treble架构下HIDL服务Java框架实现

前面介绍了HIDL服务在native层的实现过程,包括HIDL服务加载创建、服务注册、服务查询过程等,那么Java层是否也实现了相关的服务框架呢? 通常情况下,所有的Hal都实现在native层面,每个hal进程都是一个native进程,由init进程启动,在hal进程启动时会完成HIDL服务注册,Framework Server进程不一定完全是native进程,比如system_server进程...

2019-01-30 15:15:47 405

转载 AndroidO Treble架构下HIDL服务查询过程

通过前面的分析我们知道,Hal进程启动时,会向hwservicemanager进程注册hidl服务,那么当Framework Server需要通过hal访问硬件设备时,首先需要查询对应的hidl服务,那么Client进程是如何查询hidl服务的呢?这篇文章将展开分析,这里再次以IComposer为例进行展开。frameworks\native\services\surfaceflinger...

2019-01-30 15:10:42 1073

转载 AndroidO Treble架构下Tranport类型查询过程

通过前面文章的分析,我们知道,Client进程在查询hidl服务接口对象时,会根据该hidl服务的Tranport类型选择加载方式,如果是HWBINDER,那么就从hwservicemanager中查询,如果是PASSTHROUGH,那么就通过PassthroughServiceManager将hal实现库dlopen到当前进程地址空间。那么hidl服务的Tranport类型是如何得到的呢?[...

2019-01-30 15:06:21 563

转载 AndroidO Treble架构下hwservicemanager启动过程

hwservicemanager是hidl服务管理中心,负责管理系统中的所有hidl服务,由init进程启动。service hwservicemanager /system/bin/hwservicemanager user system disabled group system readproc critical onrest...

2019-01-30 15:04:10 832

转载 AndroidO Treble架构下Binder对象的转换过程

上文中详细分析了Hal的整个启动过程,这里将补充上文中没有详细分析的Binder对象转换过程,下图为hidl服务的完整注册过程: 1.  HwcHal继承于IBase类,是对hw_module_t的封装,该对象位于Hal进程空间; 2.  通过hwservicemanager的binder代理将HwcHal对象注册到hwservicemanager进程空间; 3. 在IPC调用过程中,Hwc...

2019-01-30 15:00:57 369

转载 AndroidO Treble架构下Hal进程启动及HIDL服务注册过程

通过前面对Treble架构的介绍,我们知道,Android Framework进程和Hal分离,每个Hal独立运行在自己的进程地址空间,那么这些Hal进程是如何启动的呢?本文以composer hal为例展开分析。 在以下路径有composer hal的rc启动脚本: hardware/interfaces/graphics/composer/2.1/default/android.hardw...

2019-01-30 14:55:08 394

转载 AndroidO Treble架构下的变化

AndroidO引入Treble架构后,有那些变化呢?  1. 增加了多个服务管家,AndroidO之前版本有且只有一个servicemanager,现在增加到3个,他们分管不同的服务。 2. 增加了binder通信库,这是为了适配binder域的扩展。 3. 增加了binder域,系统定义了3个binder设备节点,binder驱动分别处理这3个binder设备节点上的binder通信事件...

2019-01-30 14:54:42 189

转载 AndroidO Treble架构下的接口文件编译

HIDL是一种接口定义语言,描述了HAL和它的用户之间的接口。同aidi类似,我们只需要为hal定义相关接口,然后通过hidl-gen工具即可自动编译生成对应的C++或者java源文件,定义hal接口的文件命名为xxx.hal,为了编译这些.hal文件,需要编写相应的Android.bp或者Android.mk文件: 1. Android.bp文件用于编译C++; 2. Android.mk文...

2019-01-29 11:01:00 246

转载 AndroidO Treble架构分析

 从AndroidO开始,google引入了Treble架构,目的是为了方便系统升级,将oem定制的东西和Framework分离。1、AndroidO之前的版本在此之前的Android系统架构当中,Android Framework与Android HAL是打包成一个system.img的,而且Framework与HAL之间是紧耦合的,通过链接的方式使用相应的硬件相关so库。老版本的a...

2019-01-29 10:57:37 219

转载 达内看软件工程师的职业规划

写这篇文章源于某条微博评论,原内容大概是一个快40岁的人还在当程序员写代码,评论内容大概是:有些人就喜欢当程序员写代码,无可厚非。但是,现实情况中是否真的能做到“无可厚非”呢?我思考了一阵子以后,就有了这篇文章,希望与所有职场人共勉。  首先我要申明一点,我不是砖家,也不是牛人,我只是一名普通的IT从业者,本文只是我对我们IT人的职业生涯规划的一些观点和意见,如果大家有不同意见,或者觉得我的观念...

2014-06-29 11:47:39 791

MindShare-PCIe3 pice3.0

MindShare-PCIe3 pice3.0

2022-10-21

汽车电气与电子BOSH

汽车电气与电子BOSH.pdf

2019-01-08

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除