Android基础和组件

来源:互联网 发布:西安淘宝运营人才兼职 编辑:程序博客网 时间:2024/05/24 07:16

Android Fundamentals and Components

在开始开发之前,我们需要了解Android基础和组件,我们将在开发我们的Android应用程序时经常使用。 从开发人员的角度来看,Android的一些重要的构建块/组件如下。 现在只是看看他们,我们将在后面详细讨论它们。
1.活动
2.服务
3.广播接收机
4.内容提供商
当我们开发应用程序时,总是有一些要求,比如在应用程序(一个屏幕到另一个屏幕)或不同应用程序之间传递消息。

例如:假设您的手机上有新讯息,因此我们更新该讯息的通知栏。 因此,我们必须将消息应用程序中的信息传递到通知栏。 道德的故事是,上述组件之间的通信手段是通过波纹管部件。

1.意向
2.意图过滤器

让我们来到GUI部分。 用户界面元素由以下组件组成,我们称之为:
1.视图
2.通知
现在是详细描述上述每个组件及其需求和用途的时候了。


Android活动
活动是每个可见的Android应用程序的基本构建块。 它提供了呈现GUI的方法。 应用程序中的每个屏幕都是一个活动本身。 我们可以调用每个可见组件作为Android中的活动。 虽然多个活动一起工作以呈现应用序列,但每个活动是独立的实体。 只需看看下面的图片,这解释了一个活动的生命周期。 我将解释一个活动的实际使用,当我们将在本教程中开发我们的第一个“Hello World”应用程序。


Android中的活动的生命周期

life-cycle-of-an-activity-in-android


Android服务
服务是Android应用程序的另一个构建块,不提供任何UI。它是一个程序,可以在后台无限期运行。这意味着如果我们想做一个长时间的操作(例如:从互联网下载数据),那么我们需要创建一个Android服务为此目的。

Android服务有点混乱。在了解什么是Android服务之前?让我们清楚地看到,什么Android服务不是?

请记住,Android服务既不是一个单独的进程也不是线程。那么究竟是什么呢?
使用Android服务,我们只是通知Android操作系统,我们要做一个后台处理。
此外,Android服务使用绑定机制向其他应用程序公开一些功能。

一般Android服务有2种类型。
已启动服务(无限)
此类服务由Android活动创建和调用。 Android Activity和服务之间没有双向通信。活动只是启动服务,而不关心服务的状态。服务将完成它的工作,并在完成它的工作时自动停止。

绑定服务(有界)
这种类型的Android服务是用于双向通信。假设Android Activity已经启动有界服务,那么可以通过服务向Activity通知状态。

不要担心,我们将在示例部分中使用示例详细讨论Android服务。

Android中的服务的生命周期

life-cycle-of-a-service-in-android


Android广播接收器

广播接收机是可以接收和响应任何广播公告的另一种类型的组件。

让我们举个例子。 当新邮件到达您的收件箱时,此信息将被广播以用于其他应用程序。 如果任何应用程序想要在新邮件到达您的收件箱时做某事,则它可以接收广播的邮件详细信息(例如:发件人的号码,内容等),并相应地处理。 您的应用程序必须注册到该接收器才能接收广播的消息。

Android内容提供商

内容提供商是向应用程序公开特定数据集的单独组件组合。 让我们举个例子:如果你想搜索你的联系人数据库中的联系人(如:姓名,号码等),那么你可以使用内容提供者为此目的。 您可以说内容提供者是您的应用程序中的指针,指向来自其他应用程序的特定数据库。

content-provider-in-android

我认为这四个组件的基本知识现在已经足够开始开发,组件之间的通信手段的知识也是必不可少的。因此,Android平台通过意图和意图过滤器提供了一个新的通信概念。

Android Intents
意图是在组件之间传递的消息。所以我们在脑海里有一个问题。它相当于传递给API调用的参数吗?是的,它是接近的。然而,API调用和意图之间的根本区别是调用它的方式。让我们看看这两点之间的差异在以下几点。
1. API调用是同步的,而基于意图的调用是异步的(大部分)
2. API调用在编译时绑定,而基于意图的调用是运行时绑定(大多数)

正是这两个差异,Android平台到不同的联赛。
简单来说,应用程序的核心android组件 - 活动,服务和广播接收器 - 通过称为intents的消息激活。
例如,活动可以向启动另一个活动的Android系统发送意图。所以一个Intent只是一种方式在Android中发送消息。

Android的意图本质上是两种类型。
1.隐式意图
隐式意图指定应由其他组件或应用程序执行的操作。
例如:如果您想从应用程序代码在Web浏览器中打开一个URL,然后下面的代码告诉Android系统如何查看网页。通常Web浏览器注册到此Intent,但其他组件也可以注册此自己的意图。这意味着如果您安装了IE,Mozilla Firfox和Google Chrome等网络浏览器,则所有浏览器都可能会根据您的请求注册Intent(ACTION_VIEW)以显示网页。

如果只找到一个组件(在我们的示例中为Web浏览器),Android将直接启动此组件。 如果Android系统的几个组件是标识符,用户将得到一个选择对话框,并可以决定哪个组件应该用于该Intent。

2.显式意图
显式意图显式地定义了应该由Android系统调用的确切组件,通过使用Java类的标识符。
以下代码显示了如何创建一个显式Intents并将其发送到Android系统。 这意味着Android系统将根据您的请求直接执行您的意图请求。 显式意图通常在应用程序中使用,因为应用程序中的类由应用程序开发人员控制。 如果您要从其他活动打开Android活动,则下面是它使用意图这样做的代码。 此外,如果需要,您可以向该活动发送一些数据。

Android Intent过滤器
为了通知系统它们可以处理哪些隐式意图,活动,服务和广播接收器可以具有一个或多个意图过滤器。 每个过滤器描述该组件的能力,该组件愿意接收的一组意图。
让我们举一个例子:示例笔记本应用程序的“NotePadEditor”活动有两个过滤器 - 一个用于启动用户可以查看或编辑的特定注释,另一个用于启动新的空白注释,用户可以 填写并保存。
基本上IntentFilters在AndroidManifest.xml文件中定义。 对于BroadcastReceiver,可以在我们的代码本身中定义它。 IntentFilters由其类别,操作和数据过滤器定义。 它还可以包含其他元数据。 如果一个组件没有定义一个Intent过滤器,那么它只能被显式Intent调用。


0 0
原创粉丝点击