- 博客(9)
- 资源 (1)
- 收藏
- 关注
原创 android graphic(10)—activity申请surface流程
create new ActivitynewActivitysetContentViewhandleResumeActivityandroid中启动一个Activity的函数为handleLaunchActivity(), private void handleLaunchActivity(ActivityClientRecord r, Intent customIntent) { /
2016-02-26 17:07:51 3482
原创 android—调试命令service
在android中,可以利用service命令去做很多调试工作,例如service list命令显示系统当前所有在service manager注册的service,其命令具体使用如下,# serviceserviceUsage: service [-h|-?] service list service check SERVICE service cal
2016-02-23 15:21:57 3420
原创 android graphic(9)—开发者选项关闭HW overlays
setting相关代码 surface flinger处理1008 code 在开发者选项中,有许多关于图形的debug选项,今天研究之下,加深了对binder的使用。下面以关闭HW oveylays为例,也就是强制使用GLES去对图层进行合成,而不使用oveylays。 setting相关代码 首先分析上层setting中的代码,在packages\apps\Settings\src\com\
2016-02-22 17:18:07 6455
原创 android graphic(8)—surface申请GraphicBuffer过程
surface的dequeueBuffer函数 向BufferQueue申请内存 Surface去requestBuffer 本节分析surface向Buffer Queue申请GraphicBuffer的过程(这里的surface是native的surface,不是java中的),在此过程中还会涉及Flattenable对对象序列化,binder传递文件描述符等概念。surface的deque
2016-02-22 12:31:01 11082 1
原创 android graphic(7)—gralloc分配图形缓冲区
android中,HAL层的gralloc库负责了申请图形缓冲区的所有工作,HAL层之上的Surface、BufferQueue最终都是调用gralloc库去申请图形缓冲区,然后返回给上层一个buffer_handle_t的handle,这个handle的结构大致如下所示,typedef struct native_handle{ int version; /* sizeof
2016-02-20 11:02:48 4878 2
原创 android—匿名binder
前面的一篇文章《android—binder进程间通讯流程分析》 分析过,service一般都是需要先去service manager注册后,然后才能去使用。而匿名binder就是没有去service manager注册的service,既然没去注册,那么内核中就没有相应的binder_node和binder_ref结构,那么如何使用?下面以BufferQueue的mGraphicBufferAll
2016-02-19 12:38:27 6441
原创 android—如何添加一个系统服务
c中添加service java添加service前面分析过binder的实现流程,binder的实现包含了java和c++两部分,那么应该如何去添加一个service? c++中添加service下面以SurfaceComposer这个service为例, ① 首先提供接口文件ISurfaceComposer.h//frameworks\native\include\gui\ISurfaceC
2016-02-18 17:33:36 5929
原创 android—binder进程间通讯流程分析
进程 binder的c实现 service manager 注册service client 使用service binder是android的基础,是学习android的重中之重,理解binder的运行机制,对阅读和理解android framework源代码非常有帮助,关于如何学习binder,建议首先不要去关注binder内核驱动的实现,先学会上层如何去使用,在熟悉后再进一步结
2016-02-18 15:11:41 2378
原创 android进程间传递文件描述符原理
linux打开文件过程android binder传递文件描述符在linux中,进程打开一个文件,返回一个整数的文件描述符,然后就可以在这个文件描述符上对该文件进行操作。那么文件描述符和文件到底是什么关系?进程使用的是虚拟地址,不同进程间是地址隔离的,如何在两个进程中传递文件描述符,然后指向同一文件(binder传递文件描述符)?linux打开文件过程下图是linux内核中打开文件的结构体之间的关
2016-02-15 16:44:30 3791 1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人