《Android群英传》读书笔记
《Android群英传》 笔记
| apk 安装路径: –p220(q1)
- /system/app: 系统及别的 apk;
- /data/app: 用户安装的 apk;
| android 管理器
  pm(package manager): 主宰着应用的包管理;
  am(activity manager): 主宰着应用的活动管理; –p210(q1)
| 如果说系统信息好比是国家的 GDP, 那么 Apk 应用信息则像是对个人的经济普查。 –p210(q1)
| 一个 Task 中的 Activity 可以来自不同的 APP,
同一个 App 的  Activity 也可能不再一个 Task 中。 –p200(q1)
| 一个合理的任务调度栈不仅是性能的保证,更是提供性能的基础。 –p200(q1)
| 如果你得自定义 View 需要频繁刷新,或者刷新时数据处理量比较大,
那么就可以考虑使用 SurfaceView 来取代 View 了。 –p155(q1)
| canvas 的方法: –p118(q1)
- save(): 保存画布;作用是将之前的所有已绘制图像保存起来,让后续的操作就好像在新图层上操作一样;
- restore(): 合并图层;作用是将 save 之后的和 save 之前的图像进行合并;
- translate(): 坐标系的平移;
- rotate(): 坐标系的翻转;
| scrollTo、scrollBy 方法移动的是 View 的 content, 即让 View 的内容移动( content ),
如果在 ViewGroup 中使用 scrollTo、 scrollBy 方法,那么移动的将是所有子 View;
例如: TextView, content 就是它的文本; ImageView, content 就是它的 drawable. –p95(q1)
| 形象的事件处理机制: –p62(q1)
- 事件的传递顺序:
 总经理(MyViewGroupA) –> 部长(MyViewGroupB) –> 你(View)。
 事件传递的时候,先执行 dispatchTouchEvent() 方法,再执行 onInterceptTouchEvent()
 方法(注意:View 没有 onInterceptTouchEvent方法,只有 ViewGroup 有这个方法)。
- 事件的处理顺序:
 你(View) –> 部长(MyViewGroupB) –> 总经理(MyViewGroupB)。
 事件处理都是执行 onTouchEvent() 方法。
- 事件传递的返回值: true, 拦截;false, 不拦截, 继续流程;
- 事件处理的返回值: true, 处理了,不用审核; false, 给上级处理。
- 初始情况下,返回值都是 false。
| 动态控制UI模板的方法:接口回调、提供 public 方法。 –p48(q1)
- 接口回调1 
 2
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13interface Ilistener { 
 void click(View v);
 }
 private void innerMethod(View v) {
 mIlistener.click(v);
 }
 // 声明和初始化
 Ilistener mIlistener;
 public void register(Ilistener listener){
 mIlistener = listener;
 }
- 提供 public 方法1 
 2
 3
 4private String mStr; 
 public void publicMethod(String str) {
 mStr = str;
 }
| 解释 bitmap 和 Canvas –p38(q1)
| 1 | // 装载画布:将 bitmap 装载到画布 canvas 上, | 
代码解释:
| 1 | Canvas canvas; | 
| Canvas 就像一个画板,使用 Paint 就可以在上面作画了。 –p37(q1)
| 其实,Android 就好像那个蒙着眼睛画画的人,你必须精确地告诉它如何去画,
它才能绘出你想要的图形;–p34(q1)|
| Intent - Android上的信使,信息传递的载体;
–p5(q1)