- 博客(8)
- 收藏
- 关注
原创 浅谈Android系统屏幕刷新机制
单缓存的方案有着致命的缺陷,那我们直接上双缓存,当收到第一个垂直同步信号时,CPU开始计算数据,然后GPU渲染并把数据存入缓存A,同时显示屏从另一个缓存B中读取数据,收到第二个垂直同步信号时,两个缓存再交换数据,然后CPU开始计算数据,然后GPU渲染并把数据存入缓存A,同时显示屏再从缓存B中读取数据,以此类推。双缓存虽然解决了画面撕裂的问题,但是我们仔细想一下,CPU计算和GPU渲染一帧的时间是不固定的,会根据画面复杂度而动态变化,但是垂直同步信号的频率却是固定的,是屏幕刷新率的倒数。
2024-05-28 09:54:52 1154
原创 安卓输入事件分发与多点触控机制解析
简单说一下安卓屏幕是如何感知到手指触摸的,目前安卓手机屏幕绝大部分都是电容屏,屏幕上覆盖着一层导电层,当手指触摸屏幕时,由于人体是导电的,所以触摸点的电容会发生变化,屏幕上的电容传感器就能感知到,从而可以计算得到触摸点的坐标。
2024-02-22 11:55:42 1983 1
原创 动态规划算法之汉诺塔问题-其一
而n-1阶又可以由n-2阶推导出,以此类推,最后可推到1阶汉诺塔,然后从1阶的最少移动次数为1出发,算出2阶的最少移动次数为 1+1+1,3阶的最少移动次数为 3+1+3,以此类推。传说中有一座位于印度寺庙的塔,塔内有三个柱子,其中一个柱子上摞着n个大小不同的圆盘,从底部开始呈递减的形式。从上面的两个例子中,我们可以归纳总结,n阶的汉诺塔,在移动时,都需要经过上面红框里面的。3、最后将中间柱子上的n-1个圆盘移到右边的柱子上;由前面的分析,我们知道n阶汉诺塔的函数表达式为。再看下四阶的汉诺塔移动过程。
2024-01-29 15:53:53 995
原创 动态规划算法与分治算法
我自己的理解是 一种自底向上的思维,求解一个复杂问题时,将复杂问题分解为不同阶段(不同子问题),先从已知的最简单的阶段(问题)开始,一步一步推导出最后的复杂情况,期间会用数组或者集合把中间结果存起来,避免重复计算。分治是一种自顶向下的思维,求解一个复杂问题时,将复杂问题分解成多个独立的子问题,子问题继续分解,直到子问题可以直接求解,然后将子问题的解一层一层组合成复杂问题的解。相同点:都是将复杂问题简单化,分解成子问题不同点:分治一般是自顶向下递归求解,动态规划一般是自底向上,从简单问题慢慢迭代求解。
2024-01-29 14:40:28 356
原创 动态规划算法之分组问题(背包问题变形)-其一
则状态转移方程如下 f(i,target) = Max(f(i-1,target), f(i,target-weight[i])+weight[i])设f(i,target) 代表 轮到第i个物品选择时,背包最大空间大小为target时能获得的最大物品重量, weight[n]为每个物品的重量,f(i,target-weight[i])+weight[i] 表示第i个物品选择时,能获得的最大重量。上述方程中:f(i-1,target) 表示第i个物品不选时,能获得的最大重量。
2024-01-26 14:40:33 387
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人