最近把大学时的计算机网络教程又拿出来啃了一遍,感觉好多知识都还给老师了,所以还是得时常看看,温故而知新,写篇读书笔记记录一下。由于OSI七层模型划分的过于细致,实际应用一般不会划分这么细,所以这里只讨论五层模型。
B-tree和B+tree是一种多路平衡查找树,常用于数据库索引,或者用于文件系统索引。相对于二叉平衡树,其每个节点会有多个元素和多个子节点,因此深度更小,查找时IO次数也会减少。
最近将Android Studio升级到了3.X版本,同时Gradle也升级到了4.X,发现现在默认的依赖方式为implementation方式,以前使用的compile方式已经不推荐使用了,这里将2.x和3.x版本所有的依赖方式进行总结下。
以往对于View生命周期的认识停留在onMeasure,onLayout,onDraw等方法上,对Touch事件的传递停留在dispatchTouchEvent,onInterceptTouchEvent,OnTouchEvent等方法上,这样写写自定义控件什么的还是没问题的,不过究其原理,还是有些模糊不清,因为这样的认识还停留在应用层。因此看了下Framework层对于View的组织和管理,以及与Window,ViewRootImpl,WindowManagerService之间的关系。对于整个View体系的认识进一步加深。
IPC(Inter-Process Communication),在日常开发中大多数场景下都用不到,而且我们在开发中就算用到了进程间通信,基本上都只是专注于通信双方接口的设计,对于底层实现的细节并不是很了解。稍微看下Android Framework层的源码,也会发现随处可见IPC的身影。所以,有必要稍稍了解下其底层实现的原理,有助于加深我们对进程间通信的认识。
ActivityThread并不是Thread,只是一个工具类,不过这个类几乎完成了所有Android本地应用和AMS的交互逻辑,包括Application,Service,Activity和BroadcastReceiver的实例化,ContentProvider服务的获取,广播的接收,以及四大组件生命周期调度信息的分发。