android的一些机制

handler机制

一张图解决所有问题

事件分发机制

图解:在哪一层返回true,在那一层继续执行move、up

AsyncTask

  1. 注意更新UI只能在onPostExecute中;
  2. asyncTAsk和activity的生命周期不绑定,所以在ondestroy中要cancel;
  3. 和handler一样最好定义成static;

IntentService

  1. 多次startService,oncreate执行一次,onStartCommand执行多次,onHandleIntent按顺序执行;
  2. IntentService和service的区别:不在主线程,完成后自己结束;
  3. IntentService和子线程的区别:属于service(四大组件之一),优先级高,普通子线程优先级非常低,当内存紧张时,首先被杀死;

LRU Cache

  1. 使用的是least recently used算法,当缓存超限时,删除最近使用最少的;
  2. 使用的是LinkedHashMap, 使用链表添加删除高效,还可以按顺序访问;
  3. 当使用get方法时,这个值就移动到表头;

jvm、dalvik和art

  1. jvm运行的是java字节码,dalvik运行的是dalvik字节码
    java字节码是java文件经过编译,生成java字节码保存在class文件中;dalvik字节码是由java字节码转换而来,并打包到dex文件中;dalvik通过解释dex文件来执行这些字节码;
  2. jvm是基于栈的读写,dalvik是基于寄存器的读写,dalvik是快很多
  3. dalvik是JIT,即时翻译字节码;art是AOT,安装时就将字节码翻译成机器码
    所以art运行更快,更省电,安装时变慢,占用内存变大;

你可能感兴趣的:(android的一些机制)