5.1 Android 进程和线程
进程(Precess)是程序的一个运行实例,线程(Thread)是 CPU 调度的基本单位。
- 四大组件不是程序(进程)的全部,而只是它的“零件”。
- 应用程序启动后,将创建ActivityThread主线程。
- 同一个包中的组件将运行在相同的进程空间中。
- 不同包中的组件可以通过一定的方式运行在一个进程空间中。
- 一个Activity应用启动后至少会有3个线程:即1个主线程和2个Binder线程。
5.2 Handler,MessageQueue,Runnable与Looper
Looper不断获取MessageQueue中的一个Message,然后由Handler来处理。
5.3 UI 主线程--ActivityThread
5.4 Thead 类
- Thread 类的内部原理
- 继承自Thread
- 直接实现Runnable
- Thread 休眠和唤醒
- wait 和 notify/notifyAll。
- interrupt,中断线程执行。
- join,保证线程顺序执行。
- sleep,和 wait 一样是自愿的行为,wait是等待某个 object,sleep 是等待时间。
5.5 Android 应用程序如何使用CPU的多核处理能力
- 使用Java线程。
- 使用AsyncTask。
- 使用IntentService。
5.6 Android 应用程序的典型启动流程
- 在 Launcher 中点击相应的应用程序图标启动。
- 通过 startActivity 启动。
5.7 Android 程序的内存管理与优化
工具:Logcat、Memory Monitor、Heap Viewer、Allocation Tracker