Android Display/Graphics自绘UML图[置顶]
Android Display/Graphics相关模块绘制的自绘UML图整合(部分流程图参考非最新AOSP) 阅读全文
developer | android display/graphics
Android Display/Graphics相关模块绘制的自绘UML图整合(部分流程图参考非最新AOSP) 阅读全文
C++11/14/17/20部分新的特性语法 阅读全文
android display/graphics相关的调试方法和优化工作效率技巧整理 阅读全文
《数据结构(C++语言版)》书,关于数据结构再读记录。主要包含数据结构的基本概念、算法概念、时间复杂度、线性表(顺序表&链表) 阅读全文
参考Android R源码,对背光手动调节、自动调节的流程作简单梳理。 阅读全文
为了理解systrace中HW Vsync, sf vsync, app vsync的含义和作用。这里主要参照Android R AOSP源码对这几种VSYNC的关系和调用流程进行大致的梳理。 阅读全文
systrace的一些tag标签的含义和作用。 阅读全文
继上篇《Android Q SurfaceFlinger合成(一)》中SF对INVALIDATE信息处理,针对Layer属性变化、显示设备变化等情况处理,将mCurrentState提交到mDrawingState。然后遍历mDrawingState的Layer,将新的Buffer内容更新绑定到Layer纹理对象。经过这些流程,决定是否需要SF进行合成刷新,如果需要则调用handleMessageRefresh开始合成处理。 阅读全文
在HWUI渲染完成后,Buffer会在frameworks/native/libs/gui/BufferQueueProducer.cpp中通过queueBuffer放入BufferQueue,在该函数中调用frameAvailableListener->onFrameAvailable(item)通知consumer消费者,从而触发SurfaceFlinger合成。 阅读全文
最近碰到一个关于frameworks/base/core/proto/android/providers/settings/secure.proto文件中修改某个属性的问题,所以针对protobuf(.proto文件)进行一个学习了解。Google Protocol Buffers,(简称Protobuf,协议缓冲区),类似json或XML,Google开源的支持多语言、跨平台的结构化数据序列化项目,但是比它们更小、更快、更简单。Protobuf通过编写proto文件来定义消息格式或RPC服务定义。 阅读全文
ANR(Application Not Responding),字面意思是应用无响应,即用户的一些操作无法从应用中获取反馈。关于发生ANR的trace.txt文件的请参考Android ANR traces.txt文件分析 阅读全文
本篇对Android图形显示框架做一个概述,内容主要包含:SurfaceSession创建和销毁(添加/删除窗口),Surface创建和销毁,BufferQueue创建,以及BufferQueue的dequeueBuffer和queueBuffer、acquire和release大致流程梳理。 阅读全文
了解gcc将*.c/cpp编译成*.o,再将其链接为可执行程序或/lib库的过程,有助于我们将native从编译/加载/执行到崩溃一条路贯通起来。Android的Makefile只需要将source file填入LOCAL_SRC_FILES,然后include $(BUILD_SHARED_LIBRARY)或$(BUILD_EXECUTABLE)就可以将*.c/cpp/s编译为动态库或可执行程序。 阅读全文
任何软件都可能存在BUG,调试和修复BUG伴随着整个开发流程,因此异常分析非常重要。如果是native层发生异常,我们一般称之为叫NE(native exception) 阅读全文
C++类的声明、实现和使用,以及构造函数和析构函数。包含案例代码,可编译运行。 阅读全文
Android中绘图的API有很多,比如2D的绘图skia;3D的绘图OpenGLES,Vulkan等。Android在后来完善3D API支持的同时,也在更新View Widget渲染机制,提出了硬件加速机制。 阅读全文
trace.txt生成:当APP(包括系统APP和用户APP)进程出现ANR、应用响应慢或WatchDog的监视没有得到回馈时,系统会dump此时的top进程,进程中Thread的运行状态就都dump到这个Trace文件中了。 阅读全文