自定义博客皮肤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)
  • 收藏
  • 关注

原创 vc几个小技巧

1. 查看宏展开代码。     写一些复杂的宏,经常出现一些莫名其妙的错误,如何查看展开的代码呢。   cpp/c文件上右键属性   【c/c++   \  Preprocessor \ Generate Preporcessed File】 选择/p参数, 再右键编译这个文件,则会在工程目录下生成 .i文件2. 找不到pch文件的    这个基本都是用了预编译头文件,但是

2016-09-02 15:48:30 363

原创 adb分析

基于4.4主要分析adb通讯adb准备篇一.socketpair (双向通讯的管道)   1. Linux环境下使用socketpair函数创造一对未命名的、相互连接的UNIX域套接字。   2. window平台模拟了一套socketpair。主要用到的结构如下struct SocketPairRec{    BipBufferRec  a2b

2016-08-02 16:24:14 624

原创 SurfaceFlinger中图像合成流程

android中图像的显示是通过HWComposer合成的,(不支持硬件composer的不考虑,现在基本都支持)。 硬件支持合成就是你输入多路视频,图像信号,出来一路合成好的数据。硬件合成只支持有限的记录信号,所有如何存在太多的信号,需要先通过软件进行合成,surfaceflinger是通过gpu合成的。SurfaceFlinger::init(){   //包装了硬件合成的

2016-05-09 17:20:59 3946

原创 VSYNC信号传递流向

vsync信号源产生地1.硬件支持2.软件模拟SurfaceFlinger创建的init会初始创建HWComposervoid SurfaceFlinger::init() {    mHwc = new HWComposer(this,*static_cast(this));}HWComposer::HWComposer(        const

2016-05-06 12:31:54 2523

原创 GraphicBuffer和Gralloc模块

Gralloc硬件抽象层:申请释放渲染图像缓冲,驱动屏幕的显示open函数,打开设备,通过name区分了不同的设备   int gralloc_device_open(const hw_module_t* module, const char* name,        hw_device_t** device){         if(name=="gpu0"){

2016-04-28 17:58:14 4072

原创 ANativeWindow

ANativeWindow : opengl工作的绘图画布本地窗口,按标准定义好函数(下面好多代码都简化)structANativeWindow{   .....      //上层定义好函数指针,传给opengl后,opengl在必要的时候会调用相应的函数   int     (*dequeueBuffer)(structANativeWindow

2016-04-28 17:57:40 12043

原创 简单撸一下EGL

egl复杂构造opengl的工作环境void egl_demo() {   EGLDisplaydisplay=eglGetDisplay(EGL_DEFAULT_DISPLAY);   eglInitialize(display, 0, 0);  EGLConfig config;   eglChooseConfig(display,

2016-04-28 17:56:44 6924 1

原创 App端SurfaceView控件绘制流程

SurfaceView,VideoView,GlSurfaceView 中的Surface如何应用 JAVA层:SurfaceView系列控件与其他View绘制存在很大的差别。有自己的Surface,其他View是共享一个Surface1.最基本的SurfaceViewSurfaceView.javapublic class SurfaceView ex

2016-04-28 17:56:00 1534

原创 App端控件绘制流程

APP进程:所有的绘制搜需要画布,app的画布就是Surface了,我们就从Surface开始分析。1.Surface跨进程传递绘图表面,支持序列化接口,所以可以通过binder进行跨进程传递Java层:public class Surface implements Parcelable     //native层序列化,可以跨进程传递 

2016-04-28 17:53:51 813

原创 Surfaceflinger中图像绘制流程

App产生图像数据是由Surfaceflinger消费的,下面走一下图像的消费过程。activity中的surface对应到服务端就是layer,从layer创建过程开始1.创建过程SurfaceFlinger.cppSurfaceFlinger.createLayer() {     //普通类型的layer,支持多个类型      SurfaceFlin

2016-04-28 17:51:13 3477

原创 BufferQueue原理

BufferQueue.cppclass BufferQueue : public BnGraphicBufferProducer,                    public BnGraphicBufferConsumer,                    private IBinder::DeathRecipient从继承关系来看,是生产者,也是消费者,还

2016-04-28 17:49:11 8613

原创 零碎

零零碎碎的看android快2周了,东西太庞大了 ,linux,framework,

2014-04-08 18:25:40 421

原创 新的征程

1. 本人,从小语文没学好,语言组织能力,表达能力都比较差,想提高一下语言能力(很难,是不是人的性格决定的呢)         2. 做能n多年的window编程也感觉有点没意思了,想换换口味,增加点兴趣,挣扎了很长时间也没定下搞什么,想来想去还是先android底层吧(第一感觉,要不也不知挣扎到什么时候)。             2013-03-28 第一次开通了博客,留下点痕迹做个标

2014-03-28 11:21:36 355

空空如也

空空如也

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

TA关注的人

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