美文网首页
高效的Android线程

高效的Android线程

作者: llitfk_DockOne | 来源:发表于2017-12-27 21:55 被阅读84次

    1. Android组件

    • Application
    • Core Java
    • Application framework: Android classes
    • Native Lib: C/C++ libs
    • Runtime: Dalvik / ART (Android Runtime)
    • Linux kernel: Underlying OS

    Activity

    Service

    • Started Service
    • Bound Service

    ContentProvider

    BroadcastReceiver

    Linux进程

    生命周期

    2. Java多线程

    基础

    内部锁与Java监视器

    • 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


    • Background Group总共有不能多于 ~5 - 10%的执行时间

    线程通信

    管道 demo

    共享内存

    队列

    Android Message

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




    进程通信

    Android RPC

    AIDL

    Messenger

    内存管理










    线程生命周期

    线程池生命周期



    AsyncTask



    Services



    AsyncQueryHandler

    Loader框架



    Android异步机制


    References:

    相关文章

      网友评论

          本文标题:高效的Android线程

          本文链接:https://www.haomeiwen.com/subject/bustgxtx.html