Android11 HAL层开发
最近在搞Android11,拉起hal服务的时候报错了,一直崩。
首先,Android11不能使用直通式HAL的写法了,会报以下的错误:
LegacySupport: Could not get passthrough implementation for android.hardware.fingerprint@1.0::IFingerprint/default
改成Binderized HAL的写法就可以了。
另外还遇到一个指针报错,如下:
sp : sp<> constructed with stack pointer argument
为什么会报这个错误呢??是因为Android11增加了一个针对sp的检查,具体看谷歌的一个patch:
Add check to sp<> raw pointer constructor
不能按照 Android8.1HAL层开发 这样写service.cpp文件了,要改成指针的写法,如下:
//service.cpp
#define LOG_TAG "android.hardware.fingerprint@1.0-service"#include <android-base/logging.h>
#include <hidl/HidlTransportSupport.h>
#include <android/hardware/fingerprint/1.0/IFingerprint.h>
#include <hidl/LegacySupport.h>#include "Fingerprint.h"using android::hardware::configureRpcThreadpool;
using android::hardware::joinRpcThreadpool;
using android::hardware::fingerprint::V1_0::implementation::Fingerprint;int main() {configureRpcThreadpool(4, true);//Fingerprint fingerprint;//auto status = fingerprint.registerAsService();// 不能像上面的注释这样写了,要按照如下写法,使用指针auto service = std::make_unique<Fingerprint>();auto status = service->registerAsService();CHECK_EQ(status, android::OK) << "Failed to register fingerprint HAL implementation";joinRpcThreadpool();return 0; // joinRpcThreadpool shouldn't exit
}
以上。
Android11 HAL层开发相关推荐
- android系统开发(六)-HAL层开发基础
Android HAL层,即硬件抽象层,是Google响应厂家"希望不公开源码"的要求推出的新概念 1,源代码和目标位置 源代码: /hardware/libhardware目录, ...
- s5p4418 Android 4.4.2 驱动层 HAL层 服务层 应用层 开发流程记录(二 硬件抽象层HAL)
欢迎转载,务必注明出处:http://blog.csdn.net/wang_shuai_ww/article/details/44305599 本篇文章记录硬件抽象层. 还是跟之前一样,主要参考< ...
- s5p4418 Android 4.4.2 驱动层 HAL层 服务层 应用层 开发流程记录(一 硬件驱动层)
欢迎转载,务必注明出处:http://blog.csdn.net/wang_shuai_ww/article/details/44303069 本文章是记录Android开发中驱动层.HAL层.应用层 ...
- Android 系统(4)---Android HAL层与Linux Kernel层驱动开发简介
Android HAL层与Linux Kernel层驱动开发简介 近日稍微对Android中的驱动开发做了一些简要的了解,稍稍理清了一下Android驱动开发的套路,总结一下笔记. HAL:Hardw ...
- Android HAL层与Linux Kernel层驱动开发简介
Android HAL层与Linux Kernel层驱动开发简介 阅读数:5070 近日稍微对Android中的驱动开发做了一些简要的了解,稍稍理清了一下Android驱动开发的套路,总结一下笔记. ...
- Android 底层驱动开发步骤——linux内核层、HAL层、JNI层
1.Linux驱动实现 2.Linux内核驱动测试 3.Android HAL层实现 4.Aidl实现 5.Service java实现 6.Service jni 实现 7.注册service和jn ...
- s5p4418 Android 4.4.2 驱动层 HAL层 服务层 应用层 开发流程记录(二 硬件抽象层HAL 第二种 ioctl操作方法)
欢迎转载,务必注明出处:http://blog.csdn.net/wang_shuai_ww/article/details/44407641 本篇与http://blog.csdn.net/wang ...
- Android Hal层简要分析
Android Hal层简要分析 Android Hal层(即 Hardware Abstraction Layer)是Google开发的Android系统里上层应用对底层硬件操作屏蔽的一个软件层次, ...
- android l camera no panorama,Android Camera从App层到framework层到HAL层的初始化过程
Android camera 从上到下能够分为四个部分: Application层. framework层. HAL(hardware abstract layer)层. Kernel层 通常面向开发 ...
最新文章
- 【P2766】 最长不下降子序列问题
- 最常见的读入数据方法集锦
- python os rename用法_Python os.rename() 方法
- __init、__initdata和__exit、__exitdata
- Atitit 基于dom的游戏引擎
- win10怎么去掉计算机里百度云,主编教你win10系统清除百度云盘盘符的修复方法...
- Go基础-Go中的Println和Print和Printf之间的区别
- 如果想成为数据科学家,请学习这3种语言
- ssh日志审计_linux查看ssh用户登录日志与操作日志
- 家庭网关斐讯 K3 基础环境篇
- InputStream的available()方法(读文件)
- u盘文件删除如何恢复呢?
- 互联网人求职向传统行业倾斜;全国有两成开发者月薪超1.7万 | 美通企业日报...
- 1.大量数据导出Excel 之 多重影分身之术
- 读博后降维打击数学建模!
- 软件安全期末考试试题21SZ回忆版
- Java-MQTT客户端监控连接状态事件
- Drools7中的万能函数accumulate
- 笔记——setInterval()设置停止和循环
- 如何查看网页上的图片体积大小或容量大小?
热门文章
- Win32 Disk Imager Error 5: Access is Denied 解决方案
- 【转】编写高质量代码改善C#程序的157个建议——建议64:为循环增加Tester-Doer模式而不是将try-catch置于循环内...
- 目前梦幻山东区人最多的服务器,梦幻西游山东区各个服务器开的时间!
- log+android+bp,第二章:Android.bp语法
- 《自然语言处理入门》笔记
- urv中保研碰撞测试结果_经撞=安全?中保研碰撞测试结果告诉我们:不一定!|乜都知...
- 因该如何搭建自己的网校系统呢?
- 初试傲游浏览器/Maxthon3,4大惊喜,1点遗憾
- MySQL: 垂直分片
- Android 数据库知识回顾