【安卓小笔记】应用基础知识
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
地图库
其他功能
相关文章推荐
- 《Spring 3.x 企业应用开发实战》学习笔记 第三章 IoC容器概述 3.2 相关Java基础知识 类装载器 反射机制
- 温故知新-应用基础知识学习笔记
- 《Spring 3.x 企业应用开发实战》学习笔记 第三章 IoC容器概述 3.2 相关Java基础知识 类装载器 反射机制
- 安卓应用运营基础知识—签名
- 安卓开发指南之应用基础知识简介
- 嵌入式系统设计师考试笔记之嵌入式系统基础知识
- CMMI基础知识 - 培训笔记
- 数据库应用最基础知识!
- java学习笔记,关于java的一些基础知识,适用于初学者,第一节
- 《JAVA2核心技术 卷一 基础知识(原书第七版)》《Core java2,Volume I-Fondamentsls Seven Edition》 学习笔记(一)
- Windows中线程的基础知识和简单应用----互斥(Mutex)
- Windows中线程的基础知识和简单应用----信号量(Semaphore)
- [学习笔记]servlet基础知识整理
- fedora学习笔记 1:fedora与linux的一点基础知识
- 基础知识--Css学习笔记(一)
- Windows中线程的基础知识和简单应用----Thread的等待
- 移动项目开发笔记(C#泛型编程基础知识总结)
- [ITIL学习笔记]ITIL基础知识
- C++学习笔记——基础知识
- J2EE学习笔记一:相关概念和基础知识