zoukankan      html  css  js  c++  java
  • 关于android中线程,进程,组件,app的理解

    android系统是一座房子。有一个正常执行的公司进驻这所座子

    cpu是这家公司的老板

    进程是公司中的办公室,办公室不干活

    线程是办公室中的员工,干活的永远是员工

    一间办公室中可有多个员工,而且办公室有个活动对外的人员叫主线程


    公司肯定会有非常多职能部门

    activity  service provider brocastrecive 都是职能部门


    如今公司有个客户有个需求。须要几个部门合作才干完毕。于是公司的业务人员APP就跟老板申请了一间办公室来完毕客户需求工作

    当然,为了工作更加有效率,有的部门可能须要单独的办公室也是能够的


    以上就是对android中这几个概念的理解,总结一下:

    android系统是多进程的。但不是越多越好,进程开得太多,系统会卡死

    每启动一个app。系统都会为它开辟一个新进程,一般的,这个app中的四大组件都是执行在同一进程,且同一线程中

    假设在mainifest.xml文件里配置组件的process (:XXX  为系统全局可共用进程      .XXX  为当前APP可共用进程)。那么该组件就能够独立执行在单独的进程中


    所以,就出现了aidl技术。进程之间的通信

    aidl是一种接口描写叙述语言,也可理解为java进程间的接口(interface)

    直接编写一个java接口类,并将后缀后改为.aidl后编译,在gen文件夹下就会生成一个java类。而且这个类中有一个抽象类。在服务端实现这个抽象类,并通过onBind方法返回给client。就能够在client进程中用这个对象调用服务端进程中的方法。实现通信

     由止能够看出aidl技术事实上与绑定服务使用方法是差点儿相同的,不同就是绑定服务是通过java文件来定义那个接口,而aidl是通过aidl文件来定义这个接口。而且经过測试。同一进程间当然也是能够用aidl,也就是说。绑定服务能够被aidl代替


    说下service:

    绑定服务,通过bundServcie方法调用。onBundService停用,而且当调用者销毁,比方一个activity中调用的。当这个aictivity销毁了,那么这个service也就销毁了

    全局服务。通过startService方法调用,stopService停用,而且当调用者销毁。此服务还在执行,仅仅有当退出app时,此服务才销毁。当然,能够通过守护进程技术将些服务保持执行



    以上仅仅是个人理解。如有错误之处,还请帮忙指点一二


  • 相关阅读:
    8.16集训
    8.15集训
    Educational Codeforces Round 97 (Rated for Div. 2)
    Codeforces Round #679 (Div. 2, based on Technocup 2021 Elimination Round 1)
    尺取法
    Codeforces Round #677 (Div. 3)
    单调队列
    dfs序
    离散化
    [kuangbin带你飞]专题七 线段树
  • 原文地址:https://www.cnblogs.com/jzssuanfa/p/6898467.html
Copyright © 2011-2022 走看看