![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Android
文章平均质量分 89
var.zhou
毕业于某985院校,现任职于某个比较坑员工的手机厂商做Android 驱动。
展开
-
高通Android camera驱动框架
1、camera kernel驱动高通的kernel中,将camera分为两部分:video和camera两部分1.1、camera video部分video部分与userspace进行交互,sensor是有camera厂商定义的寄存器配置部分,主要完成相关寄存器参数的配置。主要文件路径:kernel\msm-4.4\arch\arm\boot\dts\qcom\sdm660-camera.dtsikernel\msm-4.4\drivers\media\platform\msm\camera_v原创 2022-03-20 23:58:52 · 3559 阅读 · 0 评论 -
【qcom Android camera调试纪要】
qcom Android camera调试纪要1、平台适配1.1、kernel端1.2、vendor端1.2.1、cameraService lib代码注意:需要在vendor\qcom\proprietary\common\config\device-vendor.mk中添加需要将当前的camera service lib加入到系统的编译路径中。1.2.2、camera Chromatix效果参数注意:该chromatix效果参数需要在vendor\qcom\proprietary\common\conf原创 2022-03-20 22:42:11 · 3345 阅读 · 0 评论 -
Android之binder详解
一、层次设计如上图所示,binder的层次关系图可分为三个部分,最上层为framework的各种binder服务类和接口类。最底层的为binder驱动,主要提供了open,ioctl和close这三个接口。中间两层分别为binder核心类和IPCThreadState,binder核心类提供Ibinder和Bbinder和Bpbinder,IPCThreadState提供了与Bnbinder和Bpbinder的在驱动层的交互接口。二、binder服务的使用sp<IServiceManager&原创 2020-11-27 12:07:44 · 466 阅读 · 0 评论 -
Android build子系统详解
概论Android的build系统是基于GNU Make和shell构建的一套编译环境,Android的编译比较庞大,所以为了统一管理,Android退出了build来统一管理Android的编译。build处理完成对目标系统的二进制文件,APK运用编译,链接,打包等工作外,还需要生成目标系统的镜像和各种配置文件,同时还维护各个模块间的依赖关系。build系统可分为三大块,一:位于build/core下的文件,这是build系统的框架和和兴,二:位于device目录下,存放产品的配置参数,三:是各个模原创 2020-11-25 12:17:00 · 341 阅读 · 0 评论 -
Android 音频系统之驱动篇(一)
马上录入原创 2020-11-24 19:52:37 · 1122 阅读 · 0 评论 -
小坑记录
前言最近在调试Android的驱动,遇见一些小坑,记录一下1、Android的input驱动IO的irq可以正常触发,但是没有input事件只会上报第一次答:因为input的evbit参数设置错误和keybit参数设置错误正常的方式set_bit(EV_KEY,vr_input->evbit); //set_bit(EV_REP,vr_input->evbit);不需要重复上报input_set_capability(vr_input, EV_KEY, KEY_F2);//KEY原创 2020-10-22 18:32:15 · 117 阅读 · 0 评论 -
Android sensor框架(native篇)
一、前言sensor在实际的产品中占据很大的作用,他是外界环境与系统交互行为入口,比如重力传感器,加速度传感器,磁力计,摄像头等这些都属于sensor(说明:camera在Android上不走sensor框架),总而言之:sensor在整个Android设备上占据很重要的角色。二、sensor软件框架如上图所示:sensor的native层由inputManager,inputHub和inputInterface三部分构成。inputManager负责整个sensor的管理。inputHub附件原创 2020-09-23 15:45:00 · 645 阅读 · 0 评论 -
Android sensor框架(驱动篇)
前言软件结构总结一:前言二:软件结构2.1、input子系统上报数据2.2、hal层向driver发送校准参数的misc设备驱动三:总结原创 2020-09-22 11:13:46 · 573 阅读 · 0 评论 -
Android9 rk3399开关机充电详解(uboot篇)
前言Android开关机流程分析rk3399 开发机充电uboot适配一、前言二、Android开关机流程分析三、rk3399 开发机充电uboot适配原创 2020-09-17 16:41:49 · 2081 阅读 · 0 评论 -
Android系统的裁剪与定制
前言Android系统的启动过程分析Android系统的裁剪Android系统的定制原创 2020-09-14 11:35:18 · 808 阅读 · 0 评论 -
Android的native与apk之间的通信之local socket篇
前言local socket原理讲解实战一:前言二:Binder原理讲解三:实战原创 2020-09-10 14:16:47 · 391 阅读 · 0 评论 -
Android的native与apk之间的通信之binder篇
前言native与apk之间常用的通信方式Binder原理讲解实战一:前言二:native与apk之间常用的通信方式三:Binder原理讲解四:实战原创 2020-09-10 14:14:17 · 615 阅读 · 0 评论 -
Android9的selinux机制
待写原创 2020-09-08 10:05:40 · 611 阅读 · 0 评论 -
ubuntu环境下安装两个版本的jdk版本(记录)
前提:如果我们的ubuntu已经安装了jdk1.8,那么也同时需要jdk1.7的环境安装jdk1.7请参考https://openbravotutorial.wordpress.com/2019/05/11/install-openjdk-7-on-linuxmint-19-1-or-ubuntu-18-04/然后使用sudo update-alternatives --install “/usr/bin/java” “java” “/opt/jdk/jdk1.7.0_80/bin/java” 1原创 2020-06-05 15:26:01 · 1119 阅读 · 0 评论 -
如何获取android源码
前言由于墙的原因,从境外谷歌下载android是一件非常不容易的事,所以我们需要使用清华等境内源进行android的源码下载一:以imx8mm下载android9为例1.1、从nxp官网下载imx-p9.0.0_2.2.0-ga.tar.gz1.2、解压后打开imx_android_setup.sh 可获取urlrepo init -u https://source.codeaurora.org/external/imx/imx-manifest.git -b imx-android-pie -m原创 2020-05-26 19:25:07 · 647 阅读 · 0 评论 -
Android如何为kernel添加一个驱动
一、概述Android的kernel也就是linux,所以在添加驱动也和linux的添加方式一致,但是不同的是kernel中添加驱动以make menuconfig比较直观,但是Android已经不适用这个UI界面了,而使用原始的conf文件方式。为什么我要写这篇博客勒?实话说:我被Android的编译log给欺骗了,Android的编译log提升我Android使用的kernel配置是an...原创 2020-04-16 11:27:24 · 1064 阅读 · 1 评论 -
ubuntu 16.04以及后续高级版本 安装 openjdk 1.7
由于编译Android源码需要openjdk1.7.X版本。ubuntu 16.04自带openjdk为1.8.X版本。sudo apt-get install openjdk-7-jre 或者sudo apt-get install openjdk-7-jdk如果出现没有可用的软件包 openjdk-7-jdk,但是它被其它的软件包引用了。这可能意味着这个缺失的软件包可能已被废弃, 或者...原创 2020-04-12 23:49:17 · 437 阅读 · 0 评论 -
解决:scripts/kconfig/zconf.tab.c:199:24: fatal error: zconf.hash.c: No such file or directory
rm -rf out //删除out文件make mrproper //完全清空上一次中间文件重新编译吧你source build/envsetup.shlunch 5make -j32原创 2020-04-03 17:37:12 · 1931 阅读 · 1 评论 -
Android 电池管理系统解析
一、概述二、电池管理系统框架图概述:PowerManagerServer是在SystemServer中创建并且加入到ServiceManager中,如下图所示代码路径:frameworks\base\services\java\com\android\server\SystemServer.kava2.1、power的初始化代码路径:frameworks\base\services\...原创 2020-03-30 18:18:20 · 911 阅读 · 0 评论 -
Android添加模块的配置文件
前言最近在研究Android的触摸屏框架,已经理清楚了driver->inputHub->inputDevice->inputManager->input_Module之间的关系,但是其中,需要引入触摸屏的配置参数问题,Android需要一个配置文件来声明当前的触摸屏类型,所以需要在文件系统中声明一个.idc的配置文件,但是关于该配置文件如果在Android编译阶段就进入...原创 2020-03-28 10:56:06 · 429 阅读 · 0 评论 -
Android9电源键驱动分析
一、概述在现在的Android手机中,物理按键虽然逐渐被取代,但是对于电源键这种命脉型的功能键不可能会取消的,但是对于各家单板,硬件的IO连接都是不相同的,所以需要定制电源键的功能。二、power-key驱动分析2.1、dts配置power-keysnvs_pwrkey: snvs-powerkey { compatible = "fsl,sec-v4.0-pwrkey"; regmap...原创 2020-03-26 18:56:16 · 1028 阅读 · 0 评论 -
Android lcd hal层分析
一、概述二、架构分析2.1、GRALLOC部分分析2.1.1、FbDisplay文件分析2.1.2、DispManager.cpp文件分析2.1.3、framebuffer.cpp 文件分析2.1.4、gralloc.cpp 文件分析2.2、hwcomposer部分分析...原创 2020-03-26 15:04:38 · 353 阅读 · 0 评论 -
android 9.0从driver到APP -- HIDL
一、 接口描述文件创建1.1 创建HIDL目录mkdir -p hardware/interfaces/sample/1.01.2 创建接口描述文件sample.halpackage android.hardware.sample@1.0;interface ISample { init(); close(); Read(vec<int32_t&...原创 2020-03-19 19:49:24 · 878 阅读 · 0 评论 -
编译Android7.1源码出现OOM错误解决方法
具体err信息为:Try increasing heap size with java option '-Xmx表面意思就算你的内存太小了,需要我们手动指定一下本机的最大内存,解决办法:export JACK_SERVER_VM_ARGUMENTS="-Dfile.encoding=UTF-8 -XX:+TieredCompilation -Xmx4096m"out/host/linux...原创 2020-02-27 17:19:49 · 382 阅读 · 1 评论 -
android7.1编译错误flex-2.5.39: loadlocale.c:130:_nl_intern_locale_data:
报错如下flex-2.5.39: loadlocale.c:130:_nl_intern_locale_data: ?? ‘cnt < (sizeof (_nl_value_type_LC_TIME) / sizeof (_nl_value_type_LC_TIME[0]))’ ???Aborted (core dumped)[ 4% 4832/99272] target C++: l...原创 2020-02-27 16:41:09 · 3908 阅读 · 1 评论 -
蓝牙协议栈一系列灵魂拷问
1:对比EDR与BLE两种设备,从协议栈方式去考虑,为什么BLE的功耗远低于EDR?答:BLE使用的是只有数据发送才连接,其他时候处于断开状态的方式而EDR使用长连接方式。2、低功耗蓝牙协议栈可分为几层?答:由下到上依次为:L2CAP,ATT,GAP,GATT四层3、BLE的L2CAP完成了那些基本功能?答:L2CAP主要完成了1、数据的完整性交互,比如数据多包接收/发送检查,2、...原创 2019-11-13 17:33:55 · 269 阅读 · 0 评论 -
蓝牙协议栈之HFP(chapter 2)
待写原创 2019-10-31 17:02:21 · 152 阅读 · 0 评论 -
蓝牙协议栈之rfcomm(chapter 8)
待写原创 2019-10-31 16:58:38 · 104 阅读 · 0 评论 -
蓝牙协议栈之a2dp(chapter 7)
待写原创 2019-10-31 16:57:22 · 271 阅读 · 0 评论 -
蓝牙协议栈之SE(chapter 6)
待写原创 2019-10-31 16:56:51 · 102 阅读 · 0 评论 -
蓝牙协议栈之gatt(chapter 5)
待写原创 2019-10-31 16:56:20 · 241 阅读 · 0 评论 -
蓝牙协议栈之att(chapter 4)
待写原创 2019-10-31 16:55:47 · 296 阅读 · 0 评论 -
蓝牙协议栈之gap(chapter 3)
待写原创 2019-10-31 16:55:14 · 385 阅读 · 0 评论 -
蓝牙协议栈之L2CAP(chapter 2)
L2CAP协议概述L2CAP中文为逻辑链路适配层,主要提供信息数据的分割/重组等传输方式。在bluedroid中,很多的上层会向l2cap注册相关服务,比如rfcomm(虚拟串口,最多可虚拟64路),sdp,gatt等。1、L2CA_Register (SDP_PSM, &sdp_cb.reg_info)2、L2CA_Register (BT_PSM_ATT, (tL2CAP_APP...原创 2019-10-25 17:59:53 · 1300 阅读 · 0 评论 -
蓝牙协议栈之HCI层(chapter 1)
HCI简介HCI(host communication interface)主机通讯端口,它主要为上层提供了一个统一的通讯端口,其主要用于传输命令和时间。大概关系图如下、host(用户app)对蓝牙的控制都是发送通讯协议中定义的命令来控制蓝牙进入到响应的工作模式,蓝牙处理之后会以事件的方式返回通知主机。一、协议数据格式HCI传输的数据格式有4种类型,分别为命令,acl,sco和事件,在协...原创 2019-10-25 11:21:46 · 1346 阅读 · 0 评论 -
蓝牙学习笔记之RFCOMM协议
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...转载 2019-10-25 10:26:45 · 2461 阅读 · 0 评论 -
Bluedroid框架
1、分类bluedroid主要分为5个部分:BTE,BTA,BTIF,HCI与BT Stack1、btif作为bluedroid与上层的framework提供interface。所以它处于bluedroid的顶层。2、BTA提供各种profile,我们可以将APP的打开当做一个服务,一起服务至少由一个profile构成,而APP与这个profile之间的调用又要通过interface,所以一...原创 2019-10-22 16:04:15 · 1410 阅读 · 0 评论 -
bluedroid层次结构图
一、bluedroid层次结构图如下描述层次资源相关framework1com_android_bluetooth_gatt.cppbt interface层2btif sub directorygatt && gap,a2dp层3stack sub directoryatt层4stack/git sub directory...原创 2019-10-18 16:12:21 · 349 阅读 · 0 评论 -
android之sensor框架详解
待写原创 2019-10-18 14:52:56 · 572 阅读 · 3 评论 -
A2DP理论分析
一、概述A2DP(advance audio distribution profile),它是负责蓝牙的音频传输的profile,定义在ACL信道上,用于实现高质量单声道或者立体声音频协议,数据的过程。A2DP通常与AVRCP一起搭配使用。二、A2DP2.1、角色2.1.1、SRC(source)src表示数字音频流的源端2.1.2、SNK(sink)sink表示数字音频流的接收端...原创 2019-10-18 11:51:01 · 804 阅读 · 1 评论