您的位置:首页 > 移动开发 > Android开发

【安卓小笔记】应用基础知识

2017-04-21 16:17 246 查看

一、应用组件

应用组件是Android应用的基本构建基块。共有四种类型,每一种都服务于不同的目的,并且具有定义组件的创建和销毁方式的不同生命周期。

1.Activity
       Activity 表示具有用户界面的单一屏幕。例如,电子邮件应用可能具有一个显示新电子邮件列表的 Activity、一个用于撰写电子邮件的
Activity 以及一个用于阅读 电子邮件的 Activity。 尽管这些 Activity 通过协作在电子邮件应用中形成了一种紧密结合的用户体验,但每一个 Activity 都独立于其他 Activity 而存在。 因此,其他应用可
以启动其中任何一个 Activity(如果电子邮件应用允许)。 例如,相机应用可以启动电子邮件应用内用于撰写新电子邮件的 Activity,以便用户共享图片。

2.服务
服务是一种在后台运行的组件,用于执行长时间运行的操作或为远程进程执行作业。 服务不提供用户界面。 例如,当用户位于其他应用中时,服务可能在后台播放音

乐或者通过网络获取数据,但不会阻断用户与 Activity 的交互。 诸如 Activity 等其他组件可以启动服务,让其运行或与其绑定以便与其进行交互。

3.内容提供器
内容提供程序管理一组共享的应用数据。您可以将数据存储在文件系统、SQLite 数据库、网络上或您的应用可以访问的任何其他永久性存储位置。 其他应用可以通过内
容提供程序查询数据,甚至修改数据(如果内容提供程序允许)。 例如,Android 系统可提供管理用户联系人信息的内容提供程序。 因此,任何具有适当权限的应用都可以
查询内容提供程序的某一部分,以读取和写入有关特定人员的信息。
内容提供程序也适用于读取和写入您的应用不共享的私有数据。 例如,记事本示例应用使用内容提供程序来保存笔记。
4.广播接收器
广播接收器是一种用于响应系统范围广播通知的组件。 许多广播都是由系统发起的 — 例如,通知屏幕已关闭、电池电量不足或已拍摄照片的广播。应用也可以发起广播 — 例如,
通知其他应用某些数据已下载至设备,并且可供其使用。 尽管广播接收器不会显示用户界面,但它们可以创建状态栏通知,在发生广播事件时提醒用户。
但广播接收器更常见的
用途只是作为通向其他组件的“通道”,设计用于执行极少量的工作。 例如,它可能会基于事件发起一项服务来执行某项工作。

Android系统的独特之处在于任何应用都可以启动其他应用组件。当系统启动某个组件时,会启动该应用的进程。并实例化该应用所需的类。因此,与大多数其他系统上的应用不同,
Android 应用并没有单一入口点(例如,没有 
main()
 函数)。由于系统在单独的进程中运行每个应用,且其文件权限会限制对其他应用的访问,因此您的应用无法直接启动其他应用中的
组件, 但 Android 系统却可以。因此,要想启动其他应用中的组件,您必须向系统传递一则消息,说明您想启动特定组件的 Intent。
系统随后便会为您启动该组件。

二、启动组件

启动组件需要使用Intent对象创造。Intent的用法参考上篇文章。

每种类型的组件有不同的启动方法:

您可以通过将 
Intent
 传递到 
startActivity()
 或 
startActivityForResult()
(当您想让
Activity 返回结果时)来启动 Activity(或为其安排新任务)。

您可以通过将
Intent
 传递到 
startService()
 来启动服务(或对执行中的服务下达新指令)。
或者,您也可以通过将 
Intent
 传递到 
bindService()
来绑定到该服务。

您可以通过将 
Intent
 传递到 
sendBroadcast()
sendOrderedBroadcast()
 或 
sendStickyBroadcast()
 等方法来发起广播;

您可以通过在 
ContentResolver
 上调用 
query()
 来对内容提供程序执行查询。

三、清单文件
在 Android 系统启动应用组件之前,系统必须通过读取应用的 
AndroidManifest.xml
 文件(“清单”文件)确认组件存在。
您的应用必须在此文件中声明其所有组件,
该文件必须位于应用项目目录的根目录中。

除了声明应用的组件外,清单文件还有许多其他作用,如:
确定应用需要的任何用户权限,如互联网访问权限或对用户联系人的读取权限
根据应用使用的 API,声明应用所需的最低 API
级别
声明应用使用或需要的硬件和软件功能,如相机、蓝牙服务或多点触摸屏幕
应用需要链接的 API 库(Android 框架 API 除外),如 Google
地图库
其他功能


ps:简写一些东西。以上内容来自开发文档。好久没上csdn了,回归了!还是想借着这个博客平台提升自己。也方便自己记录学习过程!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android