摘要: title: 自定义View categories: Android原理 概论 所谓自定义View其实就是在屏幕大小画布的某一区域内作画的过程,这里面分为两个部分:在哪画?,画什么?; 在哪画? 这里面同样包含两部分:获得这片区域的宽高,获得这片区域左上角相较于屏幕左上角的坐标; 至于为什么顺序是这 阅读全文
posted @ 2021-01-25 14:02 ijkzen 阅读(178) 评论(0) 推荐(0) 编辑
摘要: 整体分发流程 Android Input Framework 这篇详细讲解了触摸事件从硬件分发到Activity之前的过程。 graph TD; a(Input Hardware)-->b(Kernel/Driver); b-->c(EventHub); c-->d(InputReader); d- 阅读全文
posted @ 2021-01-21 16:35 ijkzen 阅读(437) 评论(0) 推荐(0) 编辑
摘要: offscreenPageLimit = 0 的情况 此种情况表示不会预先加载其他的Fragment,仅仅加载第一个Fragment,其生命周期如下: Test fragment 0 onAttach Test fragment 0 onCreate Test fragment 0 onCreate 阅读全文
posted @ 2021-01-15 14:23 ijkzen 阅读(3603) 评论(0) 推荐(0) 编辑
摘要: 读书笔记 本小节讲述了两点内容: 合适动态规划算法解决的最优化问题的两个要素 备忘方法在动态规划中的作用 两个要素 最优子结构 一个问题的最优解包含其子问题的最优解 还有一点值得注意,同时还需要满足子问题无关的特性:同一个原问题的一个子问题的解不影响另一个子问题的解。 重叠子问题 某一个子问题可能会 阅读全文
posted @ 2021-01-15 14:16 ijkzen 阅读(514) 评论(0) 推荐(0) 编辑
摘要: 读书笔记 本小节介绍了利用动态规划解决矩阵链乘法的过程。 穷举不可行 想要通过穷举的方法,获得所有的解决方案是不可行的。 对于一个矩阵链,我们可以宏观地将它看作两个子矩阵链相乘,即$A_1..A_k$和$A_(k+1)..A_n$; 所以代价$P(n)$的表达式如下: \[ \begin{align 阅读全文
posted @ 2021-01-15 14:15 ijkzen 阅读(755) 评论(0) 推荐(0) 编辑
摘要: 读书笔记 说文解字 动态规划(dynamic programming),描述了它区别与其他算法的最大特征; 其中$programming$表示的是一种表格法,在动态规划算法执行的过程中,会动态地去将子问题的解填入表格和读取已知子问题的解,以减少不必要的运算; 与分治法的异同 相同点: 都是通过组合子 阅读全文
posted @ 2021-01-15 14:13 ijkzen 阅读(358) 评论(0) 推荐(0) 编辑
摘要: 读书笔记 本小节介绍了一种红黑树的扩展:区间树; 为每个节点添加了一个新属性$int$,属性$int$又有两个属性$low,high$,分别表示区间的两端; 区间重叠 区间便于表示占用一连续时间的一些事件。为了查询给定时间内发生的事件,需要在区间树找到与给定时间重叠的部分; 假设在一条直线有左右两个 阅读全文
posted @ 2021-01-15 14:12 ijkzen 阅读(426) 评论(0) 推荐(0) 编辑
摘要: 读书笔记 本小节介绍了扩展数据结构的抽象过程,同时证明了一个定理; 抽象过程 选择一种基础数据结构 确定基础数据结构中要维护的附加信息 检验基础数据结构上的基本修改操作能否维护附加信息 设计一些新的操作来应用附加信息 红黑树的扩张 设$f$是$n$个节点的红黑树$T$扩张的属性,且假设对任一节点$x 阅读全文
posted @ 2021-01-15 14:08 ijkzen 阅读(335) 评论(0) 推荐(0) 编辑
摘要: 读书笔记 本小节介绍了红黑树的改进版本,为每个节点新增一个属性,用于记录当前子树的数量; 新增属性$x.size$是由左子树加右子树再加本身组成,即$x.size = x.left.size + x.right.size + 1$; 维护数量属性 对红黑树的基本操作过程中,需要持续维护$size$属 阅读全文
posted @ 2021-01-15 14:07 ijkzen 阅读(258) 评论(0) 推荐(0) 编辑
摘要: 读书笔记 本小节介绍了红黑树的删除操作,这是红黑树的基础操作中比较复杂的一种; 和红黑树的插入的基本思想一致,红黑树的删除也是先将元素普通地删除,然后在调整二叉树使其符合红黑树的性质。 红黑树的元素普通删除 RB-TRANSPLANT(T, u, v) if u.p == T.nil T.root 阅读全文
posted @ 2021-01-15 11:50 ijkzen 阅读(155) 评论(0) 推荐(0) 编辑