自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 资源 (7)
  • 收藏
  • 关注

原创 HAL层保存Layer数据

HAL层增加每个layer的dump数据保存在文件中//dump layer but need selinux permission: surfaceflinger default no permission to writestatic void dump_layer_list( malidp_hwc_device_t* dev, hwc_display_contents_1_t * H

2016-10-31 09:14:48 1793 1

原创 Android6.0 开机动画(二) AMS通知系统启动&WMS通知SurfaceFlinger关闭开机动画

在http://blog.csdn.net/kc58236582/article/details/52794846博客中我们已经讲了开机动画的大致流程,这里我们就Launcher启动后,Launcher的线程闲的时候在ActivityThread调用AMS的activityIdle方法。在分析消息机制 空闲消息处理器中http://blog.csdn.net/kc58236582/ar

2016-10-25 14:53:13 3716

原创 Android消息机制 空闲消息处理器

之前我们分析过Android的消息机制,但是有一个空闲消息处理器我们没有分析过,这篇博客我们来看下。一、MessageQueue空闲处理器之前在分析MessageQueue的next函数,这个函数就是获取队列的下个Message,我们再来看下。 Message next() { // Return here if the message loop has

2016-10-25 11:41:34 2222

原创 Android6.0 VSync信号如何到用户进程

在http://blog.csdn.net/kc58236582/article/details/52763534博客的VSync信号的分发过程那节中我们已经详细分析了VSync信号的分发过程,其中EventThread主要就是发送VSync信号。一、DisplayEventReceiver.java这里我们先从DisplayEventReceiver这个java类来分析:我们

2016-10-22 15:36:49 4752

转载 OpenGL ES入门

转载地址:http://blog.csdn.net/mkhgg/article/details/6738912一、前言OpenGL ES是Khronos Group创建的一系列API中的一种(官方组织是:http://www.khronos.org/)。在桌面计算机上有两套标准的3DAPI:Direct3D和OpenGL。Direct3D实际上是运行在windows操作系统上的标准

2016-10-21 15:40:42 1065

原创 Android 用户进程软件绘制过程

之前在这篇博客中http://blog.csdn.net/kc58236582/article/details/52437855我们分析过应用在ViewRootImpl的drawSoftware函数中完成绘制下面我们来看下这个函数,它先调用了Surface的lockCanvas获取一个Canvas,然后再调用surface.unlockCanvasAndPost来表示绘制结束。 pr

2016-10-21 11:07:33 3915 1

原创 Android6.0 图像合成过程详解(二) doComposition函数

上篇博客分析到setUpHWComposer函数,这里我们继续分析图像合成的过程从doComposition函数开始,以及在这过程中解答一些上篇博客提出的疑问。一、doComposition合成图层doComposition这个函数就是合成所有层的图像void SurfaceFlinger::doComposition() { ATRACE_CALL(); co

2016-10-20 11:17:07 7467 1

原创 Android6.0 图像合成过程详解(一) setUpHWComposer函数

上一篇博客分析了,用户进程如何申请一个GraphicBuffer的过程。这篇博客我们进一步分析图像合成过程,其中也解答之前的一些疑惑:1. 之前碰到的不支持硬件模块2. DisplayDevice类3. 消费者的onFrameAvailable函数我们直接分析合成的过程,具体的流程我们http://blog.csdn.net/kc58236582/article/details/5

2016-10-19 18:35:36 9544 1

原创 Android6.0 显示系统GraphicBuffer分配内存

之前分析了显示系统的大致流程,其中有几个地方不是很清楚,这里我专门写几篇专题。这篇先来看GraphicBuffer分配内存,我们在之前的博客中分析到用户进程创建一个Surface,最后返回的参数gbp是sp类型的,过程之前都分析过了,我们就不分析了,这个gbp是在Layer的onFirstRef中创建的。在BufferQueue的createBufferQueue中创建了producer和

2016-10-17 16:18:52 5760

原创 Android HAL层分析 (gralloc显示模块 举例)

Android的HAL是为了保护一些硬件提供商的知识产权而提出的,是为了避开linux的GPL束缚。思路是把控制硬件的动作都放到了Android HAL中,而linux driver仅仅完成一些简单的数据交互作用,甚至把硬件寄存器空间直接映射到user space。而Android是基于Aparch的license,因此硬件厂商可以只提供二进制代码,所以说Android只是一个开放的平台,

2016-10-12 17:12:44 5425 1

原创 Android6.0 开机动画(一) bootanim启动

开机动画是在进程bootanim,我们来看下init.rc中文件,service bootanim /system/bin/bootanimation boot class core user graphics group graphics audio disabled oneshot 应用程序bootanimation的用户和用户组名称分别被设置为

2016-10-12 11:02:48 7121 3

原创 Android6.0 显示系统(六) 图像的输出过程

上篇博客分析到SurfaceFlinger收到了VSync信号后,调用了handleMessageRefresh函数,这篇博客主要就是分析这个函数,我们先看看它的代码:void SurfaceFlinger::handleMessageRefresh() { ATRACE_CALL(); static nsecs_t previousExpectedPresent = 0;

2016-10-11 16:23:19 12854 7

原创 Android6.0 显示系统(五) SurfaceFlinger服务

SurfaceFlinger是一个独立的进程,我们来看下init.rc关于SurfaceFlinger的代码,我们可以看到SurfaceFlinger是属于core服务的。service surfaceflinger /system/bin/surfaceflinger class core user system group graphics drmrpc o

2016-10-10 10:57:06 19392

android ART原理介绍

android ART原理介绍

2017-01-05

android关机时间慢

android关机时间慢

2017-01-05

selinux问题

selinux问题

2017-01-05

Android AlarmManager

Android AlarmManager

2017-01-05

跟我一起写makefile

跟我一起写makefile

2016-07-15

opencv 保存录像

opencv中用来保存摄像头录的录像,c++语言摄像头播放录像

2011-09-24

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除