关于android中线程,进程,组件,app的理解
2016-12-08 08:27
351 查看
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时,此服务才销毁,当然,可以通过守护进程技术将些服务保持运行
以上只是个人理解,如有错误之处,还请帮忙指点一二
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时,此服务才销毁,当然,可以通过守护进程技术将些服务保持运行
以上只是个人理解,如有错误之处,还请帮忙指点一二
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件