Recent posts

Android Q SurfaceFlinger合成(二)

18 minute read

继上篇《Android Q SurfaceFlinger合成(一)》中SF对INVALIDATE信息处理,针对Layer属性变化、显示设备变化等情况处理,将mCurrentState提交到mDrawingState。然后遍历mDrawingState的Layer,将新的Buffer内容更新绑定到Layer纹...

Android Q SurfaceFlinger合成(一)

12 minute read

在HWUI渲染完成后,Buffer会在frameworks/native/libs/gui/BufferQueueProducer.cpp中通过queueBuffer放入BufferQueue,在该函数中调用frameAvailableListener->onFrameAvailable(item)通...

Android protobuf(.proto文件)

2 minute read

最近碰到一个关于frameworks/base/core/proto/android/providers/settings/secure.proto文件中修改某个属性的问题,所以针对protobuf(.proto文件)进行一个学习了解。 Google Protocol Buffers,(简称Protobuf...

Android ANR基本Log分析

3 minute read

ANR(Application Not Responding),字面意思是应用无响应,即用户的一些操作无法从应用中获取反馈。关于发生ANR的trace.txt文件的请参考Android ANR traces.txt文件分析

Android 图形显示框架

3 minute read

本篇对Android图形显示框架做一个概述,内容主要包含:SurfaceSession创建和销毁(添加/删除窗口),Surface创建和销毁,BufferQueue创建,以及BufferQueue的dequeueBuffer和queueBuffer、acquire和release大致流程梳理。

Android NE分析(二)

less than 1 minute read

了解gcc将*.c/cpp编译成*.o,再将其链接为可执行程序或/lib库的过程,有助于我们将native从编译/加载/执行到崩溃一条路贯通起来。Android的Makefile只需要将source file填入LOCAL_SRC_FILES,然后include $(BUILD_SHARED_LIBRARY...

Android NE分析(一)

1 minute read

任何软件都可能存在BUG,调试和修复BUG伴随着整个开发流程,因此异常分析非常重要。如果是native层发生异常,我们一般称之为叫NE(native exception)

C++ 对象和类(案例代码)

2 minute read

C++类的声明、实现和使用,以及构造函数和析构函数。包含案例代码,可编译运行。

Android HWUI绘制流程

18 minute read

Android中绘图的API有很多,比如2D的绘图skia;3D的绘图OpenGLES,Vulkan等。Android在后来完善3D API支持的同时,也在更新View Widget渲染机制,提出了硬件加速机制。