Android
文章平均质量分 90
哇小明
这个作者很懒,什么都没留下…
展开
-
android 中Bn 和Bp的区别
最近在研究surfaceflinger,真心被里面的类名折腾惨了。 Bn原创 2014-07-23 11:29:12 · 16323 阅读 · 4 评论 -
Android4.4 鼠标光标切换具体整改
鼠标客制化目的:在应用层,进入特定的应用显示自己的指定的鼠标icon,或者随时切换鼠标icon。实现方案:开机预加载鼠标icon,app发送广播方式通过不同的index,show出不同的icon。Android系统鼠标流程原理:系统开机底层会调用java的一个方法getPointerIcon去加载java层的icon资源,然后画到最顶层的surfac原创 2016-09-10 12:27:18 · 4841 阅读 · 5 评论 -
Android4.4 Camera 数据流分析
开门见山: 这里给出rk 在cameraHAL层的camera数据结构:typedef struct FramInfo{ int phy_addr; int vir_addr; int frame_width; int frame_height; int frame_index; int frame_fmt; int zoom_value;原创 2016-10-12 10:06:09 · 3720 阅读 · 0 评论 -
Android4.4 Camera callback注册和回调过程分析
一、注册过程camera的callback是在cameraclient中的initialize接口中注册的,而这个接口是由上层初始化调用的。status_t CameraClient::initialize(camera_module_t *module) { int callingPid = getCallingPid(); status_t res; LOG1("Camer原创 2016-10-12 09:54:38 · 5084 阅读 · 0 评论 -
Android4.4 Camera client连接到CameraService的过程分析
先抛出一张类图关系,纯手工制作,比较乱,不过看完文章后再来看这张图会很清晰: 1.cameraservice在mediaservice中启动:CameraService::instantiate();先分析一下CameraService的继承类:class CameraService : public BinderService<CameraService>, public BnC原创 2016-10-13 17:26:57 · 6059 阅读 · 0 评论 -
Android4.4 Camera HAL startpreview的具体过程
先抛图修改过的: 从前面几篇文章,可以知道camerahal是在initialize的时候open操作被声明初始化的,现在先分析一下CameraHal初始化的内容:CameraHal::CameraHal(int cameraId) :commandThreadCommandQ("commandCmdQ"){ LOG_FUNCTION_NAME {原创 2016-10-12 11:17:42 · 4485 阅读 · 0 评论 -
Android4.4系统 camera 模块学习计划启动
因工作关系,需要涉及到android系统的深入分析。大概的学习方向是android几个关键进程的启动分析,比如zygote,system server,package server,java dalvik还有android runtime的相关知识学习。此过程中会把所学习的知识整理成博客发出来,记录自己学习的过程。芝麻西瓜都不能丢,业余时间一直在积累机器学习的知识,两条学习路线一起前进。在看a原创 2016-09-27 00:28:48 · 981 阅读 · 0 评论 -
android4.4 Camera 框架纵横方向分析
一、Android系统的一般性框架一、android 系统的启动流程一张自做草图先大概了解下: 第一个android进程,或许说是第一个dalvik进程zygote进程,是在init.rc中用命令启动的,init.rc在device/方案商/产品型号 中,各个厂商可能会有不同的命名,比如rk init.rk30board.rc。里面会有启动zyg原创 2016-10-02 19:53:23 · 2918 阅读 · 10 评论 -
Android4.4 fence机制分析
Android4.4 fence机制分析 在任何一个系统中,无可避免的都会跟各种buffers打交道,最经典的模式就是消费-生产者模式,一个独立的buffer在它们之间的交换等操作都需要一个机制来控制每个buffer的“生命周期”,即ALLOCATION和 RELEASE ,此外还要考虑到同步性问题,什么时候可以read buffer和write buffer都需要听从调遣。 在an原创 2014-09-12 13:27:43 · 14824 阅读 · 5 评论 -
Android4.4深入浅出之SurfaceFlinger(一)
同样还是surfaceflinger,最近有点进展,tedifenxiang原创 2014-07-27 01:57:16 · 5355 阅读 · 0 评论 -
Android4.4深入浅出之SurfaceFlinger框架-渲染一个surface(二)
SurfaceFlinger自启动之后,主要有三种类型线程参与工作:1.binder线程,负责监控binder设备完成与客户端的交接2.控制台事件监控线程,负责监控硬件帧缓冲区的睡眠/唤醒状态切换事件。3.UI渲染线程,负责渲染UI。一 UI渲染线程 UI渲染线程平时是处于休眠状态,一旦binder线程监测到有其他进程发过来的请求渲染UI的消息就会唤醒UI渲染线程,另一原创 2014-08-01 11:52:12 · 10870 阅读 · 1 评论 -
Android4.4深入浅出之SurfaceFlinger (二)
接上篇文章,我们来看一下init()都做了什么事。原创 2014-07-28 14:36:02 · 8216 阅读 · 0 评论 -
初学opencv(一)
最近开始学习opencv,原创 2014-06-21 21:50:36 · 1526 阅读 · 0 评论 -
Android4.4深入浅出之SurfaceFlinger与Client通信框架(一)
SurfaceFlinger服务运行在System进程中,用来统一管理系统的帧缓冲区设备。由于SurfaceFlinger服务运行在System进程中,因此,Android应用程序就需要通过Binder进程间通信机制来请求它来渲染自己的UI。Android应用程序请求SurfaceFlinger服务渲染自己的UI可以分为三步曲:首先是创建一个到SurfaceFlinger服务的连接,接着再通过这个原创 2014-07-31 15:42:15 · 9656 阅读 · 0 评论 -
Android4.4深入浅出之SurfaceFlinger总体结构
Android4.4 GUI系统框架之SurfaceFlinger一. Android GUI框架:SurfaceFlinger:每当用户程序刷新UI的时候,会中介BufferQueue申请一个buffer(dequeueBuffer),然后把UI的信息填入,丢给SurfaceFlinger,SurfaceFlinger通过计算多重计算合成visibleRegi原创 2014-08-07 16:08:45 · 28019 阅读 · 26 评论 -
Android 4.4 Fence在SurfaceFlinger中的应用
网上关于android,fence的资料好少啊,几乎没有,但是这个机制又在GUI系统中起着重要的作用,于是自己通读源码和注释,与大家分享下Fence到底是怎么回事? Fence即栅栏,栅栏的角色与它的名字非常类似.一组线程可以使用栅栏来集体进行相互同步;在本质上,每个线程在到达某种周知的状态时调用栅栏的wait()方法,阻塞起来,以等待其它所有参与线程调用wait()方法表明它原创 2014-08-12 17:14:41 · 4969 阅读 · 2 评论 -
Android Studio Cmake & OpenCV3.2环境
前言:Cmake是跨平台的一个编译配置工具,android studio 2.2之后就开始支持这个cmake工具了,之前Android studio开发c++都是利用NDK的方式,也就是Android.mk + Application.mk + soucre.cpp的构建方式,然后在gradle构建工具下执行一条命令生成c++ so库并打包进去。而cmake则是 CMakeLists.txt +原创 2017-07-23 01:45:15 · 5806 阅读 · 0 评论