- 博客(5)
- 收藏
- 关注
原创 Cocos CmakeList编译流程
上面主要就是看一下cc_android_before_target和cc_android_after_target两个函数。所以逻辑就又分发到了templates里面,其实里面的逻辑也就刚好只有这2个marco,而这2个marco也就刚好就是我们要找的marco。${COCOS_X_PATH}/CMakeLists.txt可以找到。里面有加载engine相关的逻辑,我们看下engine大概处理了哪些。在predefine.cmake中有。
2024-02-19 11:33:19
312
1
原创 Cocos Engine对接AGDK
Java层GameActivity将Stop生命周期回调通过JNI调用到C++层GameActivity的onNativeStop到android_native_app_glue里的onPause,android_native_app_glue通过Pipe管道将APP_CMD_STOP事件从主线程切换到游戏的主线程,将事件传递给了AndroidPlatform,并且AndroidPlatform则把_isVisible修改成false。上层需要实现的较为简单。android_main的大致框架如下。
2024-02-19 11:29:56
637
1
原创 Android GPU合成
FramebufferSurface 根据名字解析:1: Surface 说明它是一个Surface, 那么它就会拥有一个 BufferQuere, 用于显示。2: FrameBuffer 这和 Linux 的 framebuffer 是完全不同的。但是作用有些类似, SurfaceFlinger 在上面作画, 并把它交给HWC, 最终由HWC负责真正的显示。
2024-02-19 11:18:25
1232
1
原创 安卓输入法模块
IMS运行在输入法进程, 是一种特殊的输入法后台服务,继承结构为:InputMethodService extends AbstractInputMethodServiceService 输入法服务本质上是一个服务, 使用时需要IMMS通过bindService的方式绑定。主要指输入法框架的InputMethodService,这是一个输入法服务,真正实现输入法界面,控制字符输入的地方。主要指输入法框架的InputMethodManager,每个app都一个实例,用来和输入法控制端交互。
2024-02-19 11:03:45
404
1
原创 简述Android图形绘制(SF)部分流程
2.CPU侧APP已经完成了queuebuffer操作,若此时GPU的执行时间较长,这时slot的状态已切换为QUEUED状态,或者vsync已经到来状态变为ACQUIRED状态,这在CPU侧代表该buffer给HWC去合成,但这时HWC的硬件MDP还不能去读里面的数据,它还需要等待acquireFence的signaled信号,只有等到acquireFence的signaled信号才代表GPU的绘制完成并且结束对帧缓冲区的访问。SurfaceFlinger线程run时,启动一个死循环,循环等待事件。
2024-02-19 10:56:00
1108
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人