![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
android-----hal
文章平均质量分 69
安卓应用程序访问驱动
深海带鲤鱼
巩固知识
展开
-
Android Camera(二)Camera Provider的启动-转载
当CameraProvider注册为服务之后,CameraService运行时,将会与之进行通信进而操作camera HAL,这样,HAL与Service进行了一道隔离。下图为在跟踪代码过程中,记录的UML图。参考文章服务启动流程简析Android P之CameraHAL3流程分析Android Camera原理之cameraprovider启动原文链接:https://blog.csdn.net/weixin_41944449/article/details/99453461。转载 2023-02-12 20:12:55 · 657 阅读 · 0 评论 -
Android Camera(三)Camera Service的初始化代码分析
CameraManager初始化代码较少,放在这里进行讲解,CameraManager是一个用来管理相机的系统服务,可以通过此服务获取到相机设备和相机信息,在frameworks/base/core/java/android/app/SystemServiceRegistry.java 注册应用层可以通过下面方法获取一个CameraManager实例代码实现:/frameworks/base/core/java/android/hardware/camera2/原创 2023-02-09 23:38:35 · 1398 阅读 · 0 评论 -
查看文件MD5/二进制信息
通过查看MD5/二进制信息来判断板子上的文件与服务器下的文件是否相同1.服务器下:md5sum ts.ko2.板子下md5sum ts.ko3.查看文件二进制信息服务器下:hexdump -C ts.ko |tail原创 2021-10-28 22:38:02 · 360 阅读 · 0 评论 -
安卓驱动开发 m mm mmm命令
1. 说明通过查看android源码目录下的build/envsetup.sh文件,可知:m: Makes from the top of the tree.mm: Builds all of the modules in the current directory.mmm: Builds all of the modules in the supplied directories.m: 编译所有的模块mm: 编译当前目录下的模块,当前目录下要有A原创 2020-09-03 11:15:22 · 317 阅读 · 0 评论 -
安卓系统怎么确定Linux内核使用哪个deconfig
在内核中经常会使能某一个变量或者禁止某一个变量,这些变量会定义在deconfig中,位置一般在arch/arm64/configs下,deconfig会定义某个config变量是y还是n,系统编译是如何选择的呢?编译的命令如下:./build/envsetup.shlunch 29先看envsetup.shcommand make --no-print-directory -f build/core/config.mk dumpvar-abs-$1) //这里也是线索functio转载 2021-10-10 23:11:06 · 906 阅读 · 0 评论 -
HIDL中的数据类型-小计
HIDL中与实现的C++对应的类型比如我在.hal文件中,定义init(string name,int32_t [256]buf,Icallback callback)callback定义在其他hal文件,在cpp文件中会变成init(const hidl_string &name,const hidl<int32_t,256>& buf,const sp<::android::hardware::I::V1_0::Icallback>& call原创 2021-10-06 01:40:09 · 706 阅读 · 0 评论 -
3.安卓访问驱动-service层
文章目录一.前言二.实现过程2.1 编写.hal文件2.2 实现cpp.h文件三. 实现server端的共享库四.实现server端的进程五.HIDL-Client端代码测试5.1 创建测试文件hello.cpp5.2 Android.mk5.3 修改manifest5.4 将生成物推进机器里面5.5 手动执行sevice一.前言HIDL 读作 hide-l,全称是 Hardware Interface Definition Language,是一种接口定义语言,它在 Android Project原创 2021-07-17 23:46:11 · 1100 阅读 · 0 评论 -
1.安卓访问驱动-实现简单驱动
1.驱动程序frist_driver.c#include <linux/init.h>#include <linux/module.h> static int __init first_drv_init(void){ printk("first_drv_init\n"); return 0;}static void __exit first_drv_exit(void){ printk("first_drv_exit\n");} m原创 2020-08-11 16:10:45 · 621 阅读 · 0 评论 -
2.安卓访问驱动-hal层实现
文章目录1.hardware层概述1.1 主要数据结构1.2 上层访问驱动流程1.3 伪代码在android系统中会提供hal层,即hardware层来封装对Linux的驱动访问,同时会为上层提供一个统一的硬件接口1.hardware层概述1.1 主要数据结构在hal层,会有以下三个结构体struct hw_module_tstruct hw_module_methods_tstruct hw_device_t1.2 上层访问驱动流程原文:参考Android应用程序访问linux驱动第原创 2021-06-07 23:53:50 · 1353 阅读 · 0 评论