简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
Linux内核中断编程为什么会有中断机制?中断产生的根本原因就是因为外设的数据处理速度远远慢于CPU,比如使用CPU读取UART接收缓冲区的数据,当使用CPU读取UART接收缓冲区的数据时,发现UART接收缓冲区的数据并没有准备就绪,一般做法是采用轮询方式等待UART接收缓冲区准备就绪,但是轮询等待的方式会导致CPU利用率降低,耗费大量的CPU资源,于是Linux内核引入了中断处理机制。CPU采用
引言 最近在捣鼓Android 9 和10的build系统,看到一篇比较好的博客,大名鼎鼎的gityuan的,奉上链接理解Android.bp,为了方便学习和更多的人看到,特意重新编辑以发扬光大使更多人看到。一.简介早期的Android系统都是采用Android.mk的配置来编译源码,从Android 7.0开始引入Android.bp。很明显Android.bp的出现就是为了替换掉Androi
一、概述HAL层是Android系统架构里介于Linux内核和系统运行库层之间的一个层,个人认为这个层存在的目的主要是为了避免GPL协议所带来的开源问题。Android系统会统一加载硬件抽象层模块,负责加载硬件抽象层模块的函数是hw_get_module函数。二、hw_get_module1、hw_get_module原型在Android硬件抽象层中,负责加载硬件抽象层模块的函数是hw_get_m
上回讲到,在 CameraService::makeClient 中,实例化了一个 CameraDeviceClient。现在我们就从它的构造函数开始,继续探索打开相机的流程。这一部分主要活动在 Runtime 层,这里分成 CameraService 与 HAL Service 两侧来分析。接前一篇文章,最后部分*client = new CameraDeviceClient(cameraSer
mtk的摄像头hal模块,跟android原生的有很大的出入,基本上是自己重写了一套,不熟悉的话,查看起来相当的复杂。特别是在8.0以后,mtk的hal,既使用了hidl接口,又没有完全按照hidl的标准来,底层仍是他们自己的一套流程。如果按google的流程来看,是别想弄明白的。前段时间,我调了下mtk的camera,大致弄清了它们的流程。随手记了点笔记,写得比较散乱,懒得整理了,大家能看明白就
cameraserver.rc路径 frameworks/av/camera/cameraserver/cameraserver.rcCameraService是由这个.rc文件启动的关于rc文件参见流程1service cameraserver /system/bin/cameraserverclass mainuser cameraservergroup audio camera input
// 使用handler.post(Runnable)更新UIpublic void updateUI_Fun1() {new Thread() {public void run() {Handler handler = new Handler();handler.post(new Runnable() {@Override.
首先,什么是左值、右值?左值是能出现在等号左边和右边的变量,右值是只能出现在等号右边的变量(或表达式)。左值引用为 & , 而右值引用为 &&。那么为什么需要右值引用呢?主要是为了处理c++临时对象的低效的问题,使用右值引用可以减少不必要的拷贝构造。举个例子:#include <iostream>using namespace std;class A {publ
android机制系列之六 Binder/AIDL回调callback机制原理