关于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方法返回给客户端,就可以在客户端进程中用这个对象调用服务端进程中的方法,实现通信

由止可以看出aidl技术其实与绑定服务用法是差不多的,不同就是绑定服务是通过java文件来定义那个接口,而aidl是通过aidl文件来定义这个接口,并且经过测试,同一进程间当然也是可以用aidl,也就是说,绑定服务可以被aidl取代

说下service:

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

全局服务,通过startService方法调用,stopService停用,并且当调用者销毁,此服务还在运行,只有当退出app时,此服务才销毁,当然,可以通过守护进程技术将些服务保持运行

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

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-08-27 06:49:02

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

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

前言 这个周末又没有吊事,在家研究了如何通过进程的注入技术修改广播接收器的优先级,关于这个应用场景是很多的,而且也很重要,所以就很急的去fixed了. Android中的四大组件中有一个广播:Broadcast 关于它的相关知识可以转战:http://blog.csdn.net/jiangwei0910410003/article/details/19150705 我们这里就不做太多解释了,现在来看一下问题: 知识前提 这篇文章和我之前介绍一篇文章: Andrdoid中对应用程序的行为拦截实现方

关于Android中的四大组件(AIDL Service的使用)

跨进程调用Service(AIDL Service) Android系统中的进程之间不能共享内存,因此,需要提供一些机制在不同进程之间进行数据通信. 在前一篇文章(关于Android中的四大组件(Service的开启与关闭))中介绍了开发人员如何定制自己的服务,但这些 服务并不能被其它的应用程序访问,为了使其它的应用程序也可以访问本应用程序提供的服务,Android系统采用了 远程过程调用(Remote Procedure Call,RPC)方式来实现.与很多其它的基于RPC的解决方案一样,An

王立平--android中的四大组件

Android中称为四大组件的为别为:Activity/Service/BroadCast Recevicer/Content  provider Activity:activity是用户和应用程序交互的窗口,一个activity相当于我们实际中的一个网页,当打开一个屏幕时,之前的那一个屏幕会被置为暂停状态,并且压入历史堆栈中,用户可以通过回退操作返回到以前打开过的屏幕. activity的生命周期:即"产生.运行.销毁",但是这其中会调用许多方法onCreate(创建) .onSta

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

BroadcastReceiver(广播接收器)是Android中的四大组件之中的一个. 以下是Android Doc中关于BroadcastReceiver的概述: ①广播接收器是一个专注于接收广播通知信息,并做出相应处理的组件.非常多广播是源自于系统代码的──比方,通知时区改变.电池电量低.拍摄了一张照片或者用户改变了语言选项.应用程序也能够进行广播──比方说,通知其他应用程序一些数据下载完毕并处于可用状态. ②应用程序能够拥有随意数量的广播接收器以对全部它感兴趣的通知信息予以响应.全部的接

Android中Broadcast Receiver组件具体解释

BroadcastReceiver(广播接收器)是Android中的四大组件之中的一个. 以下是Android Doc中关于BroadcastReceiver的概述: ①广播接收器是一个专注于接收广播通知信息,并做出相应处理的组件.非常多广播是源自于系统代码的──比方,通知时区改变.电池电量低.拍摄了一张照片或者用户改变了语言选项.应用程序也能够进行广播──比方说,通知其他应用程序一些数据下载完毕并处于可用状态. ②应用程序能够拥有随意数量的广播接收器以对全部它感兴趣的通知信息予以响应.全部的接

Android中的进程和线程,->View.post(Runnable) ->AsyncTask

写在前面的话 一个Android应用就是一个Linux进程,每个应用在各自的进程中运行,互不干扰,比较安全. 一个应用对应一个主线程,就是通常所说的UI线程,android遵守的就是单线程模型,所以说Ui操作不是线程安全的并且这些操作必须在UI线程中执行. 本文是对官方文档的翻译,原文链接:https://developer.android.com/guide/components/processes-and-threads.html 概述 当某个应用组件启动且该应用没有运行其他任何组件时,An

Android中的进程和线程

写在前面的话 一个Android应用就是一个Linux进程,每个应用在各自的进程中运行,互不干扰,比较安全. 一个应用对应一个主线程,就是通常所说的UI线程,android遵守的就是单线程模型,所以说Ui操作不是线程安全的并且这些操作必须在UI线程中执行. 本文是对官方文档的翻译,原文链接:https://developer.android.com/guide/components/processes-and-threads.html 概述 当某个应用组件启动且该应用没有运行其他任何组件时,An

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

致谢 感谢看雪论坛中的这位大神,分享了这个技术:http://bbs.pediy.com/showthread.php?t=186054,从这篇文章中学习到了很多内容,如果没有这篇好文章,我在研究的过程中会遇到很多困难,说不定我就放弃了~~在此感谢他. 前言 之前的几篇文章都是在介绍了OC的相关知识,之前的半个月也都是在搞IOS的相关东西,白天上班做Android工作,晚上回家还有弄IOS,感觉真的很伤了.不过OC的知识也学习了差不多了.不过在这段时间遗留了很多Android方面的问题都没有进行

android中的进程级别

Android中,同一个应用的所有组件在默认情况下都运行在同一个进程中,但也可以通过修改manifest文件中的android:process属性来指定该组件要运行中那个进程,也可以让不同应用的组件们运行在同一个进程中,当然这些应用要共享一个用户ID并并且有相同的数字证书. Android可能在某个时刻决定关闭一个进程,当决定要关闭那些进程的时候,系统会衡量每个进程与用户的紧密程度,这时候就跟Android中进程的级别有关了.像一个具有可见的activity的进程要比那些activity都是不可