高效的Android线程

1. Android组件

高效的Android线程_第1张图片
  • Application
  • Core Java
  • Application framework: Android classes
  • Native Lib: C/C++ libs
  • Runtime: Dalvik / ART (Android Runtime)
  • Linux kernel: Underlying OS

Activity

高效的Android线程_第2张图片

Service

  • Started Service
  • Bound Service

ContentProvider

BroadcastReceiver

Linux进程

高效的Android线程_第3张图片

生命周期

高效的Android线程_第4张图片

2. Java多线程

基础

高效的Android线程_第5张图片

内部锁与Java监视器

高效的Android线程_第6张图片
  • Blocked
  • Executing
  • Waiting

3. Android多线程应用

Android线程

  • UI线程
  • Binder线程
  • Background线程

Linux进程与线程

  • UID: User ID
  • PID: Process identifier
  • PPID: Parent process identifier (For Android: Zygote)
  • Stack: 本地指针与变量
  • Heap: 进程地址空间

调度

  • Priority
Process.setThreadPriority(int priority); // 当前线程. 
Process.setThreadPriority(int     threadId, int priority); // 指定线程id
  • Control group


    高效的Android线程_第7张图片
  • Background Group总共有不能多于 ~5 - 10%的执行时间

线程通信

管道 demo

高效的Android线程_第8张图片

共享内存

高效的Android线程_第9张图片

队列

高效的Android线程_第10张图片

Android Message

高效的Android线程_第11张图片
  • android.os.Looper: 消息分配器与一个且唯一一个消费线程关联
  • android.os.Handler: 将消息插入队列,Looper有许多handlers,但是他们都将消息插入同一队列
  • android.os.MessageQueue: 不受限制的消息链表每个Looper最多一个链表
  • android.os.Message: 在消费线程执行
高效的Android线程_第12张图片

高效的Android线程_第13张图片

高效的Android线程_第14张图片

高效的Android线程_第15张图片
高效的Android线程_第16张图片

高效的Android线程_第17张图片

进程通信

Android RPC

高效的Android线程_第18张图片

AIDL

高效的Android线程_第19张图片
高效的Android线程_第20张图片

Messenger

高效的Android线程_第21张图片

内存管理

高效的Android线程_第22张图片

高效的Android线程_第23张图片

高效的Android线程_第24张图片

高效的Android线程_第25张图片

高效的Android线程_第26张图片

高效的Android线程_第27张图片

高效的Android线程_第28张图片

高效的Android线程_第29张图片

高效的Android线程_第30张图片

高效的Android线程_第31张图片

线程生命周期

高效的Android线程_第32张图片

线程池生命周期

高效的Android线程_第33张图片

高效的Android线程_第34张图片

高效的Android线程_第35张图片

AsyncTask

高效的Android线程_第36张图片

高效的Android线程_第37张图片

高效的Android线程_第38张图片

Services

高效的Android线程_第39张图片

高效的Android线程_第40张图片

高效的Android线程_第41张图片

AsyncQueryHandler

高效的Android线程_第42张图片

Loader框架

高效的Android线程_第43张图片

高效的Android线程_第44张图片

高效的Android线程_第45张图片

Android异步机制

高效的Android线程_第46张图片

References:

  • 《Efficient Android Threading: Asynchronous Processing Techniques for Android Applications》

你可能感兴趣的:(高效的Android线程)