自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

lyf's blog

知乎,https://www.zhihu.com/people/liuyf5231

  • 博客(12)
  • 资源 (1)
  • 收藏
  • 关注

原创 Parcel相关

java中的serialization Parcel的使用 AIDL中的inoutinout 学习android源代码,首先需要打好基础。binder是android的基础,而Parcel又是binder的基础。 java中的serialization java provides a mechanism, called object serialization where an object

2016-01-26 21:48:00 2126

原创 android graphic(6)—surfaceflinger和MessageQueue

MessageQueue等待消息 epoll监听fd pipe fd导致epoll_wait返回 BitTube fd导致epoll_wait返回MessageQueue(简称为MQ)是surfaceflinger(简称为SF)主线程中消息处理的“管家”,所有子线程要和主线程打交道都需要通过MQ,例如发送消息,发送Vsync信号等,这里主要分析MQ具体的实现流程。 下面这幅图是MQ处理消

2016-01-26 12:48:23 2825

原创 android graphic(5)—surfaceflinger和Vsync (简化)

surfaceflinger中类的关系 HWC驱动DispSync 上一节分析了Vsync的多个类之间的关系,感觉非常不清晰,特地画了一张图,感觉清晰了很多。(黄色的方框是类名,绿色方框为field,联系用虚线箭头表示,如果不同线条之间有重叠,用了不同的颜色) surfaceflinger中类的关系 下面照着这张图,梳理下android 4.4 SF中Vsync相关类之间的联系,surfacefl

2016-01-25 17:12:10 2911 2

原创 android graphic(4)—surfaceflinger和Vsync

android44中的实现 整体流程 HWComposer对象的建立 EventControlThread闸刀的建立 DispSync和DispSyncThread DispSyncSource和EventThread 完整走一遍 android 4.1一个很大的更新是Project Butter,黄油计划,为了解决用户交互体验差的问题(Jelly Bean is crazy

2016-01-24 17:40:15 4807 1

原创 android graphic(3)—surfaceflinger的启动流程

如何启动 执行流程 new SurfaceFlinger init函数 run函数 给SF发消息 SF处理消息 这篇文章只分析SF消息驱动流程的建立,不涉及具体的功能实现,关于SF和HWC如何交互后续分析,基于android 4.4,以下将surfaceflinger简称为SF。 如何启动 android 4.4中SF在init.rc中启动,如下所示:service sur

2016-01-22 10:44:25 3550

原创 android中的sp和wp

C中指针存在的问题 最近在读深入理解android内核设计思想这本书,感觉作者写作思路清晰,从设计者的角度解释了很多问题,分析问题知其然又知其所以然,把看到的一些重要思路记录下来。 C++中指针存在的问题 我们知道,java中是没有指针这个概念的,而C/C++中在使用指针的时候,如果编程不规范,会造成很多不必要的麻烦,而android的sp和wp正是为了解决这些问题而设计的

2016-01-18 22:46:40 4994

原创 android graphic(2)—EGL和OpenGL ES

Android的本地窗口 FramebufferNativeWindow Surface 前面提到android EGL库的主要作用就是将OpenGL ES和本地窗口系统结合起来。OpenGL ES就像是一个打印机,各个厂商打印机的内部实现不同(不同的OpenGL ES的实现,软件、硬件等,实现的库由EGL加载),但是只要打印的文档内容相同,按下打印键,其输出的结果都是相同的。当然打印机可以

2016-01-17 15:32:46 7588

原创 android graphic(1)—轮廓

典型图形显示过程 如何去render Canvas OpenGL ES hardware-accelerated Canvas android的封装 如何去合成 Hardware Composer android中的graphic系统是个相当庞大复杂的系统,在学习前首先心中对整个系统得有一个大概的轮廓,然后再阅读代码时就能对应轮廓的各个方面。 典型图形显示过程

2016-01-15 23:54:02 8431 3

原创 为何使用java反射机制

反射机制如何使用 android实例 android中一些代码都使用了java的反射机制,那么为什么要去使用反射机制? 反射机制如何使用 反射一般使用的方式如下,对于类A来说,假设其类名为classNameStringA,则 A a = (A)Class.forName(“classNameStringA”).newInstance(); 这和A a = new A(); 是一样的效果,那么

2016-01-07 09:57:10 2664

原创 android looper和handler

android中很多地方都能看到消息处理的代码,其实现主要借助looper和handler来完成。 在类looper的注释中,有最基础的消息处理使用方法: class LooperThread extends Thread { public Handler mHandler; public void run() { Looper.prepare

2016-01-06 16:12:44 569

原创 android常用同步类

原子操作android中原子操作的函数Mutex锁Autolock锁Condition variable原子操作对于CPU,最小执行单元为一条指令,单条指令在执行过程中是肯定不会打断的。 但是在两条指令之间是可以被打断的,比如中断。而原子操作就类似于单条指令,在原子操作执行期间,不会被其他外部事情打断。 例如对于++运算符, ++i; 执行这条指令大概包括三个步骤:

2016-01-06 15:02:02 892

原创 firefox火狐书签windows和ubuntu无法同步问题

装了ubuntu后发现firefox的书签没法同步,最终发现问题的原因:firefox有个全球服务和本地服务,ubuntu下的firefox默认是全球服务的,而windows下的firefox默认是本地服务的。 这样相当于两个系统下默认的存储服务器不是一个,那当然无法同步,所以可以将windows下的本地服务切换为全球服务,这样保证两者服务器相同。windows下切换全球服务的方法: 同步—>断开—

2016-01-05 22:37:49 5519 3

达芬奇图像处理平台算法标准的实现

达芬奇图像处理平台算法标准 达芬奇平台简介 达芬奇算法标准的实现

2009-04-08

空空如也

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

TA关注的人

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