A
105. Construct Binary Tree from Preorder and Inorder Traversal
二叉树重建问题,关键是抓住先序遍历和中序遍历的特点:根据先序遍历,可以找到根节点,然后使用根节点,依据在中序遍历序列中就可以区分出左子树结点和右子树结点,同理,可以递归处理左子树和右子树,也是分别在左右子树中根据先序遍历找到根节点,然后根据中序遍历区分左右子树。
递归的关键点是两个:如何正确划分先序遍历和中序遍历的子树的区间;
R
Managing Multiple Apps within a Single Android (Studio) Project
★★★☆☆
最近看了些组件化的内容,在 Medium 上随手看到了一个 AS 工程中管理多个 App 项目的方案。内容比较简单:假设 A 与 B 都是 Application,则 A 无法直接依赖 B,可以增加一个 android library,假设为 B-shadow,则可以通过 gradle 的源集(sourceSet)设置其 java、res 等指向B,则 A 就可以通过依赖 B-shadow 来达到访问 B 的目的。
T
隐式启动 Activity 时 category 的匹配规则
对于 action 来说,要求 Intent 中必须有一个 action,该值和过滤规则中的的任何一个 action 匹配即可
category 匹配规则稍微复杂些,它规定:Intent 中可以不配置 category 也可以配置多个 category,Intent 中一旦出现,每一个 category 的值都必须能在过滤规则中找到。
但是,如果你真的没有给 Activity 配置 category,而去隐式启动它(Intent 也没有添加 category),会抛出 activity not found 的异常,问题在于,startActivity 或者 startActivityForResult 会默认为 Intent 加上 “android.intent.category.DEFAULT” 这个 category,因此必须在 manifest 的 Activity 的配置规则中加上这个 category,其他系统的或者自定的 category 可以酌情添加;
总结起来就是,需要隐式启动的 activity,必须至少配置一个 category 为“android.intent.category.DEFAULT”;