第二集 玩转Android-Studio之四大组件简介
前言
Android最基础的就是四大组件了,也是面试初中级工程师必考内容,那么四大组件都有哪些呢?请看四位男嘉宾的VCR
一、Activity(活动)
1.概念
Activity组件,它一个单独的窗口,程序流程都必须在【activity】中运行,所有它是最基本的模块
在android中,Activity相当于一个页面,可以在 Activity中添加 Button、CheckBox 等控件,一个android程序有多个Activity组成。
2.定义作用
Activity 之间通过 Intent 进行通信。
Android 应用中每一个 Activity 都必须要在 AndroidManifest.xml 配置文件中声明,否则系统将不识别也不执行该Activity。在 android studio会自动生成,但 eclipse 需要自己手动添加(eclipse用的比较少了,目前主流都用android-studio)
Activity 的中文意思是 活动,代表手机屏幕的一屏,或是平板电脑中的一个窗口,提供了和用户交互的可视化界面。一个活动开始,代表 Activity 组件启动,活动 结束,代表一个 Activity 的生命周期结束。一个 Android 应用必须通过 Activity 来 运行 和 启动,Activity 的生命周期交给系统统一管理。Activity 是用于处理 UI 相关业务的,比如加载界面、监听用户操作事件。
二、Service(服务)
1.概念
它通常用作在后台处理耗时的逻辑,与 Activity 一样,它存在自己的生命周期,也需要在 AndroidManifest.xml 配置相关信息。开发人员需要在应用程序配置文件中声明全部的 service,使用 < service>< /service> 标签。
Service 通常位于后台运行,它一般不需要与用户交互,因此 Service 组件没有图形用户界面。Service 组件需要继承Service 基类。Service 组件通常用于为其他组件提供后台服务或监控其他组件的运行状态。
2.定义与作用
Service(服务)是一个没有用户界面的专门在后台处理耗时任务的 Android 组件,它没有UI。它有两种启动方式,startService和bindService。其他应用组件能够启动 Service,并且当用户切换到另外的应用场景,Service将持续在后台运行。另外,一个组件能够绑定到一个service与之交互(IPC机制),例如,一个service可能会处理网络操作,播放音乐,操作文件I/O或者与内容提供者(content provider)交互,所有这些活动都是在后台进行。
Service 还有一个作用就是提升进程(每个应用都是一个进程)的优先级,进程的优先级指的是在 Android 系统中,会把正在运行的应用确定一个优先级,当内存空间不足时,系统会根据进程的优先级清理掉一部分进程占用的内存空间,以获得足够的内存空间以供新启用的应用运行。
详细的进程优先级划分
前台进程:应用程序存在Activity正位于前台,可见并可控
可见进程:应用程序存在Activity处于局部可见状态,即局部可见却不可控
服务进程:应用程序存在正在运行的Service
后台进程:应用程序的所有Activity均被置于后台,没有任何Activity可见
空进程:已经退出的应用程序
三.Content Provider(内容提供器)
1.概念
Content Provider是 android 四大组件之一的内容提供器,它主要的作用就是将程序的内部的数据和外部进行共享,为数据提供外部访问接口,被访问的数据主要以数据库的形式存在,而且还可以选择共享哪一部分的数据。这样一来,对于程序当中的隐私数据可以不共享,从而更加安全。Content Provider 是 android中 一种跨程序共享数据的重要组件
2.定义与作用
android 平台提供了 ContentProvider 把一个应用程序的指定数据集提供给其他应用程序。其他应用可以通过ContentResolver类 从该内容提供者中获取或存入数据。
只有需要在多个应用程序间共享数据是才需要 内容提供者。例如,通讯录数据被多个应用程序使用,且必须存储在一个内容提供者中。它的好处是统一数据访问方式。
ContentProvider 实现数据共享。ContentProvider 用于保存和获取数据,并使其对所有应用程序可见。这是不同应用程序间共享数据的唯一方式,因为 android 没有提供所有应用共同访问的公共存储区。
开发人员不会直接使用 ContentProvider 类的对象,大多数是通过 ContentResolver 对象实现对 Content Provider 的操作。
Content Provider 使用 URI 来唯一标识其数据集,这里的 URI 以 content:// 作为前缀,表示该数据由 Content Provider来管理。
Content Provider中文意思是内容提供者,Content Provider可以将应用程序自身的数据对外(对其它应用程序)共享,使得其它应用可以对自身的数据进行增、删、改、查操作。
(题外话:用到的可以少走弯路,不同android版本会有不同的使用方式,例如拍照录像等与系统文件有关联的,大部分都以android7为差异点,之后会专门出一期android版本适配问题的相关文章)
四.Broadcast Receiver(广播)
1.概念
Broadcast Receiver( 广播接收者 )顾名思义就是用来接收来自系统和应用中的广播的系统组件。广播是一种一对多的通信方式,即存在1个发送方,若干个接收方。在 Android 系统中,广播体现在方方面面,例如:当开机完成后系统会产生一条广播,接收到这条广播就能实现开机启动服务的功能;当网络状态改变时系统会产生一条广播,接收到这条广播就能及时地做出提示和保存数据等操作;当电池电量改变时,系统会产生一条广播,接收到这条广播就能在电量低时告知用户及时保存进度,等等。把这种数据的传递方式的机制称之为 “广播”
2.广播的作用
用于不同组件间的通信(含:应用内/不同应用之间)
用于多线程通信
与 android 系统的通信
总结
本期只做简介,后期会详细通过项目代码讲解四大组件