四大组件
- Activity:Activity一般是个单独的屏幕,是一个负责与用户交互的组件,可以通过setContentView(View)来显示指定控件。
- Broadcast:用于响应系统范围广播的一个组件,分为本地广播和全局广播,常见用途是作为通向其它组件的“通道”,执行极少的操作
- Service:后台运行的组件,适合那些常用于长时间运行的操作和远程操作,特点是不依赖任何界面,如播放音乐,网络请求获得数据等
- ContentProvider:是跨程序共享数据的标准方式,一个应用能通过ContentProvider决定让哪一部分数据进行共享,从而保证隐私数据的安全。
四种存储方法
- io:以文件来存储数据,其它应用不能访问,缺点是更新不叫困难
- SharePreferences:以XML文件形式存储数据,数据都是以键值对的形式,适合存储少量的数据,例如一些数据得缓存,每次打开都可以判断取出来
- SQLite:占用少量内存,能存储大量数据的轻量级数据库,例如适合存储聊天信息(内容,日期,发送人),下载信息(下载日期,文件名,位置)等多种属性的数据
- ContentProvider:应用程序间共享的一种数据存储模式,每个应用的ContentProvider可以向外提供一个URL,其它程序通过这个URL访问数据
五个进程
一个APP默认只有一个进程,每个四大组件都可通过manifest文件process属性设置组件运行的进程
- 前台进程:正在和用户交互的线程,有以下情况都是前台进程
- 正在运行和用户交互的activity,其方法onResume()执行
- 有Service对象,且正执行期生命周期函数onCreate(),onStart(),onDestory()
- 有BroadCastReiver对象,正运行onReceive()方法
- 可见进程:处于暂停状态的activity(onPause()),或绑定在其上的Service,因为失去了焦点而不能和用户交互
- 服务进程:通过StartService()启动的Service,虽然用户看不到,但是用户关心,例如播放音乐,下载文件
- 后台进程:运行着一个用户看不到的activity(onStop),如后台QQ,微信
- 空进程:一个不包括任何程序组件的进程,很容易被回收