AndroidHIDLAbout
文章平均质量分 80
该栏目用于介绍HIDL相关的知识。
flagstaffChen
I would like to fuck the code when I‘m confuse.
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Android R(11) 为HIDL服务添加观察者模式(Observer Pattern)的支持(十)
1.观察者模式(Observer Pattern)简介 当对象间存在一对多关系时,则使用观察者模式(Observer Pattern)。比如,当一个对象被修改时,则会自动通知依赖它的对象。观察者模式属于行为型模式。通俗的举个例子,以前没有电热水器的时候,我们需要将水壶放到炉灶上加热,并且守在旁边或者隔一段时间主动的来查看水壶中的水是否被烧开,如果烧开了就停止加热,反之则继续等待。但是现在我们有了电热水壶,此时我们可以给电热水壶设置一个指定的温度,让其达到这个温度时发出铃声来主动通知我。这里的设定温度(观原创 2022-02-15 22:51:50 · 1463 阅读 · 0 评论 -
Android R(11)为客户端添加HIDL服务的死亡通知( Death recipients)回调(九)
一般HIDL服务的调用者(client)和其是不在同一个进程中(process)中的,HIDL service一般提供的是硬件功能,而调用者(client)则是基于此硬件功能来实现特色功能的。此处假设HIDL-light service只提供控制具体led的开和关的硬件功能,client 则是实现led每1秒进行闪烁的特色功能。从上面的假设可知client需要连续调用HIDL-light service所提供的led控制接口,并且其间隔为1秒。如果HIDL-light service意外退出了,那么cl原创 2022-02-05 18:15:40 · 4673 阅读 · 7 评论 -
Android R(11)跨进程调用自定义HIDL服务接口(八)
幸苦添加的HIDL service是为了服务各个client请求的。在实际场景中,HIDL service一般对应某个硬件模块,其中的接口则对应硬件所具备的功能。各个client则是对该模块有具体需求的。例如 HIDL-Light中则会提供控制具体led的接口,那么client则可以通过HIDL-Light所提供的接口来控制led,来实现各种联动功能。1.Android.bp 说明 HIDL的服务是支持cpp/ndk/java方式调用的,这里选用cpp的方式进行调用。那么编译的模块则是cc_bin原创 2022-01-22 20:42:59 · 3149 阅读 · 0 评论 -
Android R(11)[How to download the full code.]完整代码下载
giteegiteehttps://gitee.com/solo-king/android-rhidl-about?_from=gitee_search原创 2022-01-19 21:20:33 · 1240 阅读 · 0 评论 -
Android R(11)将HIDL服务添加到系统镜像(七)
1.添加自定义makefile文件到产品 前面几章介绍的方法一般用于开发阶段,在功能开发完成后,则需要集成到系统镜像中去。我们使用的产品则是aosp_x86_64TARGET_PRODUCT=aosp_x86_64 所以需要将自定义的makefile文件添加到产品的配置makefile中去,--- a/target/product/aosp_x86_64.mk+++ b/target/product/aosp_x86_64.mk@@ -63,6 +63,7 @@ $(call inheri原创 2022-01-19 20:59:19 · 3027 阅读 · 0 评论 -
Android R(11)为自定义HIDL接口添加DM&&FCM(六)
为自定义HIDL接口添加DM&&FCM(六)1.概览 引入HIDL的一个重要原因是Android团队想要将Android Framework和Android vendor之间的代码进行解耦,即franmework不依赖于vendor的代码,如此Android团队在开发franework的时候就可以屏蔽底层的硬件差异了。在面向对象编程中提倡基于接口编程其实也是这个思想,调用者并不直接调用实现类提供的接口,而是通过事先定义好的接口进行调用/实现。为了实现framework和vendor解耦原创 2022-01-13 22:43:07 · 3823 阅读 · 0 评论 -
Android R(11)HIDL服务的sepolicy(五)
在Android安全组件中,除了使用传统DAC(Discretionary Access Control)的方式来保护系统文件。但在版本4.4及以后还引入并开启了MAC(Mandatory Access Control)安全框架,使用DAC+MAC组合的方式来保护系统文件及可执行程序的安全。其中被Android所采用的MAC保护框架为SELinux(Security-Enhanced Linux)。1.Security-Enhanced Linux in Android 开启了MAC框架后,即使是原创 2022-01-03 22:08:22 · 2647 阅读 · 0 评论 -
Android R(11)为HIDL服务添加rc配置文件(四)
rc配置实际上也就是安卓初始化语言(android init language),其中的内容最终被init进程解析并执行。1.AIL(Android Init Language) AIL的内容主要由五部分组成,其分别是动作(Actions)、命令(Commands)、服务(Services)、选项(Options)、导入(Imports),这AIL中的五个成分的中文翻译是非官方的哦,大家还是记英文版较好^_^。其编写风格大致如下 1.上面提到的五个大类,在init进程中都是以行首开始分析的。原创 2022-01-02 21:39:25 · 3396 阅读 · 0 评论 -
Android R(11)实现HIDL接口--ICustomHardware(三)
实现HIDL接口–ICustomHardware1.实现接口 ICustomHardware1.1使用hidl-gen自动生成实现类 使用hidl-gen直接生成ICustomHardware接口的实现类CustomHardware.cpp,命令如下flagstaff@flagstaff-pc:~/aosp_r.lns$ hidl-gen -L c++-impl -o test/flagstaffTest/hardware/interfaces/custom_hardware/1.0/defaul原创 2021-12-30 21:10:47 · 5270 阅读 · 0 评论 -
Android R(11)创建自定义HIDL接口--ICustomHardware(二)
创建自定义HIDL接口–ICustomHardware1.定义包名package flagstaff.hardware.custom_hardware@1.0; HIDL的定义风格总体和cpp是相似的,此处的package也就对应cpp的命名空间,如果是使用cpp来实现后端,那么接口对应的命名空间如下using flagstaff::hardware::custom_hardware::V1_0::ICustomHardware; 在HIDL接口中,包名的定义规则如下<packag原创 2021-12-27 17:14:23 · 2763 阅读 · 3 评论 -
Android R(11)添加测试目录环境说明(一)
Android开发环境说明(一)1.AOSP版本信息flagstaff@flagstaff-pc:~/aosp_r.lns/.repo/manifests$ git branch -a* default remotes/m/android-11.0.0_r37 -> origin/android-11.0.0_r37 remotes/m/android-11.0.0_r38 -> origin/android-11.0.0_r38flagstaff@flagstaff-pc:~原创 2021-12-27 17:09:20 · 1656 阅读 · 0 评论
分享