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时,此服务才销毁。当然,能够通过守护进程技术将些服务保持执行

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

关于android中线程,进程,组件,app的理解的更多相关文章

  1. Android中通过进程注入技术改动广播接收器的优先级

    前言 这个周末又没有吊事,在家研究了怎样通过进程的注入技术改动广播接收器的优先级.关于这个应用场景是非常多的.并且也非常重要.所以就非常急的去fixed了. Android中的四大组件中有一个广播:B ...

  2. 详解Android中的四大组件之一:Activity详解

    activity的生命周期 activity的四种状态 running:正在运行,处于活动状态,用户可以点击屏幕,是将activity处于栈顶的状态. paused:暂停,处于失去焦点的时候,处于pa ...

  3. Android中通过进程注入技术修改广播接收器的优先级

    前言 这个周末又没有吊事,在家研究了如何通过进程的注入技术修改广播接收器的优先级,关于这个应用场景是很多的,而且也很重要,所以就很急的去fixed了. Android中的四大组件中有一个广播:Broa ...

  4. android中使用spinner组件,以key,value的方式

    接着上一篇文章的内容:android中使用spinner组件 稍做修改,以key,value的方式,在实际使用中,经常需要获取的值并不一定跟显示的内容一致. 需要先添加一个对象类,用来描述key,va ...

  5. Android中Broadcast Receiver组件具体解释

    BroadcastReceiver(广播接收器)是Android中的四大组件之中的一个. 以下是Android Doc中关于BroadcastReceiver的概述: ①广播接收器是一个专注于接收广播 ...

  6. 【Android中Broadcast Receiver组件具体解释 】

    BroadcastReceiver(广播接收器)是Android中的四大组件之中的一个. 以下是Android Doc中关于BroadcastReceiver的概述: ①广播接收器是一个专注于接收广播 ...

  7. 关于Android中的四大组件(Service的开启与关闭)

    前言 服务(Service)是Android系统中的四大组件之中的一个.服务主要用于两个目的:后台执行和跨进程訪问. 通过启动 一个服务.能够在不显示界面的前提下在后台执行指定的任务,这样能够不影响用 ...

  8. Android中通过进程注入技术修改系统返回的Mac地址

    致谢 感谢看雪论坛中的这位大神,分享了这个技术:http://bbs.pediy.com/showthread.php?t=186054,从这篇文章中学习到了很多内容,如果没有这篇好文章,我在研究的过 ...

  9. Android中线程和线程池

    我们知道线程是CPU调度的最小单位.在Android中主线程是不能够做耗时操作的,子线程是不能够更新UI的.在Android中,除了Thread外,扮演线程的角色有很多,如AsyncTask,Inte ...

随机推荐

  1. 牛客练习赛19 -E-托米的饮料

    题目描述 好了,现在是小托米的故事啦~~~ 可爱的小托米得到了n瓶饮料. 但他不小心把开盖的工具弄丢了,所以他只能利用饮料瓶来开盖. 已知第i个瓶子的品牌为ai,且其能打开bi品牌的瓶子. 问有几瓶饮 ...

  2. elasticsearch性能调优

    转载 http://www.cnblogs.com/hseagle/p/6015245.html 该es调优版本可能有低,但是思想主体不变,不合适的参数可以自己找最新的版本相应的替代,或者增删 ela ...

  3. javascript事件绑定1-模拟jquery可爱的东西

    1.给对象添加事件attachEvent(兼容IE,不兼容ff.chrome) <html xmlns="http://www.w3.org/1999/xhtml"> ...

  4. 【java并发】(1)深入理解volatile关键字

    volatile这个关键字可能很多朋友都听说过,或许也都用过.在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果.在Java 5之后,volatile关键字才得以 ...

  5. Java基础13一异常

    1.异常概念 异常是程序在运行期发生的不正常的事件,它会打断指令的正常执行流程. 设计良好的程序应该在异常发生时提供处理这些不正常事件的方法,使程序不会因为异常的发生而阻断或产生不可预见的结果. Ja ...

  6. 青橙 M4 解锁BootLoader 并刷入recovery ROOT

    首先下载工具链接:https://pan.baidu.com/s/1o9xzTEi密码:7s7a 备用连接:https://pan.baidu.com/s/1bq47TMn 本篇教程教你如何傻瓜式解锁 ...

  7. Android 解析JSON

    上次讲了XML格式数据的解析方式,这次要说的是如何解析JSON数据格式,相对与XML,JSON解析数据的方式在于它的体积更小,在网络上传输可以更省流量. 这次在网上找到一个中国天气json数据的API ...

  8. chm文件打开无显示解决办法

    右键单击chm文件---属性---在该页面选择“解除锁定”---ok!

  9. python爬虫:爬取百度云盘资料,保存下载地址、链接标题、链接详情

    在网上看到的教程,但是我嫌弃那个教程写的乱(虽然最后显示我也没高明多少,哈哈),就随手写了一个 主要是嫌弃盘搜那些恶心的广告,这样直接下载下来,眼睛清爽多了. 用pyinstall 打包成EXE文件, ...

  10. openMSP430之io_test

    openMSP430: IO functionality test with interupt #include "omsp_system.h" volatile char shi ...