Android应用程序基础知识外文翻译资料

 2022-12-26 18:12:27

Android Application Fundamentals Android applications are written in the Java programming language. The Android SDK tools compile the code—along with any data and resource files—into an Android package, an archive file with an .apk suffix. All the code in a single .apk file is considered to be one application and is the file that Android-powered devices use to install the application.

Once installed on a device, each Android application lives in its own security sandbox:

The Android operating system is a multi-user Linux system in which each application is a different user.

By default, the system assigns each application a unique Linux user ID (the ID is used only by the system and is unknown to the application). The system sets permissions for all the files in an application so that only the user ID assigned to that application can access them.

Each process has its own virtual machine (VM), so an applications code runs in isolation from other applications.

By default, every application runs in its own Linux process. Android starts the process when any of the applications components need to be executed, then shuts down the process when its no longer needed or when the system must recover memory for other applications. In this way, the Android system implements the principle of least privilege. That is, each application, by default, has access only to the components that it requires to do its work and no more. This creates a very secure environment in which an application cannot access parts of the system for which it is not given permission.

However, there are ways for an application to share data with other applications and for an application to access system services:

Its possible to arrange for two applications to share the same Linux user ID, in which

case they are able to access each others files. To conserve system resources, applications with the same user ID can also arrange to run in the same Linux process and share the same VM (the applications must also be signed with the same certificate).

An application can request permission to access device data such as the users contacts, SMS messages, the mountable storage (SD card), camera, Bluetooth, and more. All

application permissions must be granted by the user at install time.

That covers the basics regarding how an Android application exists within the system. The rest of this document introduces you to:

1、The core framework components that define your application.

2、The manifest file in which you declare components and required device features for your application.

3、Resources that are separate from the application code and allow your application to gracefully optimize its behavior for a variety of device configurations.

1 Application Components

Application components are the essential building blocks of an Android application. Each component is a different point through which the system can enter your application. Not all components are actual entry points for the user and some depend on each other, but each one exists as its own entity and plays a specific role—each one is a unique building block that helps define your applications overall behavior.

There are four different types of application components. Each type serves a distinct purpose and has a distinct lifecycle that defines how the component is created and destroyed.

Here are the four types of application components:

1.1 Activities

An activity represents a single screen with a user interface. For example, an email application might have one activity that shows a list of new emails, another activity to compose an email, and another activity for reading emails. Although the activities work together to form a cohesive user experience in the email application, each one is independent of the others. As such, a different application can start any one of these activities (if the email application allows it). For example, a camera application can start the activity in the email application that composes new mail, in order for the user to share a picture.

An activity is implemented as a subclass of Activity and you can learn more about it in the Activities developer guide.

1.2 Services

A service is a component that runs in the background to perform long-running operations or to perform work for remote processes. A service does not provide a user interface. For example, a service might play music in the background while the user is in a different application, or it might fetch data over the network without blocking user interaction with an activity. Another component, such as an activity, can start the service and let it run or bind to it in order to interact with it.

A service is implemented as a subclass of Service and you can learn more about it in the Services developer guide.

1.3 Content providers

A content provider manages a shared set of application data. You can store the data in the file system, an SQLite database, on the web, or any other persistent storage location your application can access. Through the content provider, other applications can query or even modify the data (if the content provider allows it). For example, the Android system provides a content provider that manages the users contact information. As such, any application with the proper permissions can query part of the content provider (such as ContactsContract.Data) to read and write information about a particular person.

Content providers are also useful for reading and writing data that is private to your application and not shared. For example, the Note Pad sample application uses a content provider to save notes.

A content provider is implemented as a subclass of ContentProvider and must implement a standard set of APIs that enable other applications to perform transactions. For more information, see the Content Provid

剩余内容已隐藏,支付完成后下载完整资料


Android应用程序基础知识Android应用程序是用Java编程语言编写的。 Android SDK工具将代码与任何数据和资源文件一起编译成Android软件包,具有.apk后缀的归档文件。单个.apk文件中的所有代码都被认为是一个应用程序,是Android设备用于安装应用程序的文件。 一旦安装在设备上,每个Android应用程序都将安装在自己的安全沙箱中: Android操作系统是一个多用户Linux系统,其中每个应用程序是不同的用户。 默认情况下,系统为每个应用程序分配一个唯一的Linux用户ID(该ID仅由系统使用,对于应用程序而言是未知的)。系统为应用程序中的所有文件设置权限,以便只有分配给该应用程序的用户标识才能访问它们。 每个进程都有自己的虚拟机(VM),所以应用程序的代码与其他应用程序隔离运行。 默认情况下,每个应用程序都在自己的Linux进程中运行。当任何应用程序的组件需要执行时,Android会启动该进程,然后在不再需要进程或系统必须为其他应用程序恢复内存时关闭该进程。这样一来,Android系统就实现了最低权限的原则。也就是说,默认情况下,每个应用程序只能访问它所需的组件来完成其工作,而不再需要。这将创建一个非常安全的环境,其中应用程序无法访问未向其授予权限的系统的部分。 但是,有一些应用程序可以与其他应用程序和应用程序共享数据以访问系统服务的方法: 可以安排两个应用程序共享相同的Linux用户ID,其中 他们可以访问彼此的文件。为了节省系统资源,具有相同用户ID的应用程序也可以安排在同一个Linux进程中运行并共享同一个虚拟机(应用程序也必须使用相同的证书进行签名)。 应用程序可以请求访问设备数据的权限,例如用户的联系人,SMS消息,可安装存储(SD卡),相机,蓝牙等。所有 应用程序权限必须由用户在安装时授予。

这涵盖了系统中如何存在Android应用程序的基础知识。本文档的其余部分向您介绍:

1,定义应用程序的核心框架组件。

2,您在其中声明组件的清单文件和应用程序所需的设备功能。

3,与应用程序代码分离的资源,并允许应用程序优化其针对各种设备配置的行为。

1应用组件

应用程序组件是Android应用程序的基本构件。每个组件是系统可以通过该点进入您的应用程序的不同点。并不是所有的组件都是用户的实际入口点,有些依赖于彼此,但是每个组件都作为自己的实体存在,并且扮演着特定的角色 - 每个组件都是一个独特的构建块,可以帮助您定义应用程序的整体行为。

有四种不同类型的应用程序组件。每种类型都具有不同的用途,并且具有明确的生命周期,定义组件的创建和销毁。

以下是应用程序组件的四种类型:

1.1活动

活动表示具有用户界面的单个屏幕。例如,电子邮件应用程序可能有一个活动显示新的电子邮件列表,另一个组成电子邮件的活动以及另一个用于阅读电子邮件的活动。虽然这些活动是在电子邮件应用程序中共同构成一个凝聚力的用户体验,但每一个都是独立于其他的。因此,不同的应用程序可以启动这些活动中的任何一个(如果电子邮件应用程序允许的话)。例如,相机应用程序可以开始组成新邮件的电子邮件应用程序中的活动,以便用户共享图片。

活动是作为Activity的子类实现的,您可以在Activities开发者指南中了解更多信息。

1.2服务

服务是在后台运行以执行长时间运行的操作或为远程进程执行工作的组件。服务不提供用户界面。例如,当用户处于不同的应用程序中时,服务可能在后台播放音乐,或者可能通过网络获取数据而不会阻止用户与活动的交互。另一个组件(如活动)可以启动服务,让它运行或绑定到它,以便与之进行交互。

服务实现为服务的子类,您可以在服务开发人员指南中了解更多信息。

1.3内容提供商

内容提供商管理一组共享的应用程序数据。您可以将数据存储在文件系统,SQLite数据库,Web或其他应用程序可以访问的永久存储位置上。通过内容提供商,其他应用程序可以查询甚至修改数据(如果内容提供者允许的话)。例如,Android系统提供管理用户联系信息的内容提供商。因此,具有适当权限的任何应用程序都可以查询内容提供者的一部分(例如ContactsContract.Data)来读取和写入有关特定人员的信息。

内容提供者对于读取和写入您的应用程序的私有数据而非共享也很有用。例如,Note Pad示例应用程序使用内容提供商来保存笔记。

内容提供者被实现为ContentProvider的子类,并且必须实现一组标准的API,使得其他应用程序能够执行事务。有关更多信息,请参阅内容提供商开发人员指南。

1.4广播接收机

广播接收机是响应于全系统广播通知的组件。许多广播来源于系统 - 例如,广播宣布屏幕已经关闭,电池电量不足或被捕获。应用程序还可以发起广播 - 例如,让其他应用程序知道某些数据已经下载到设备并可供他们使用。虽然广播接收机不显示用户界面,但是它们可以创建状态栏通知,以在广播事件发生时提醒用户。然而,更常见的是,广播接收机仅仅是其他组件的“网关”,并且旨在进行非常少量的工作。例如,它可能会启动服务以根据事件执行一些工作。

广播接收机被实现为BroadcastReceiver的子类,并且每个广播作为Intent对象传送。有关更多信息,请参阅BroadcastReceiver类。

Android系统设计的一个独特之处在于任何应用程序都可以启动另一个应用程序的组件。例如,如果您希望用户使用设备摄像头捕获照片,则可能还有另一个应用程序可以使用该应用程序,而不是开发自己拍摄照片的活动。您不需要合并或甚至链接到相机应用程序的代码。相反,您可以在拍摄照片的相机应用程序中简单地启动该活动。完成后,照片甚至可以返回到您的应用程序,以便您可以使用它。对于用户来说,好像相机实际上是您的应用程序的一部分。

当系统启动组件时,它启动该应用程序的进程(如果尚未运行)并实例化组件所需的类。例如,如果您的应用程序启动捕获照片的相机应用程序中的活动,该活动将在属于相机应用程序的过程中运行,而不是在应用程序的进程中运行。

因此,与大多数其他系统上的应用程序不同,Android应用程序不具有单个入口点(例如,没有main()函数)。

由于系统在单独的进程中运行每个应用程序,文件权限限制了对其他应用程序的访问,因此您的应用程序无法从其他应用程序直接激活组件。然而,Android系统可以。因此,要激活另一个应用程序中的组件,您必须向系统发送一条消息,指定您启动特定组件的意图。系统然后为您激活组件。

2激活组件

四种组件类型中的三种 - 活动,服务和广播接收器 - 被称为意图的异步消息激活。意图在运行时将各个组件彼此绑定(您可以将它们视为请求其他组件的操作的信使),组件是否属于您的应用程序或其他组件。

使用Intent对象创建意图,该对象定义了一个消息来激活特定组件或特定类型的组件 - 意图可以分别是显式或隐式。

对于活动和服务,意图定义了要执行的操作(例如,“查看”或“发送”某些内容),并且可以指定要作用的数据的URI(除了其他方面,正在启动的组件可能需要知道)。例如,意图可能传达对活动的请求以显示图像或打开网页。在某些情况下,您可以启动一个活动来接收结果,在这种情况下,活动也会返回结果

意图(例如,您可以发出让用户选择个人联系人并将其返回给您的意图 - 返回意图包括指向所选联系人的URI)。

对于广播接收机,意图简单地定义正在广播的通告(例如,指示设备电池低的广播仅包括指示“电池电量低”的已知动作串)。

其他组件类型,内容提供程序未被意图激活。相反,当ContentResolver的请求定位时,它被激活。内容解析器处理与内容提供商的所有直接事务,以便与提供商执行事务的组件不需要而是调用方法

ContentResolver对象。这在内容提供者和请求信息的组件(为了安全性)之间留下了一层抽象。

有单独的方法激活每种类型的组件:

你可以通过传递开始一个活动(或给它一些新的东西)

startActivity()或startActivityForResult()的意图(当您希望活动返回结果时)。

通过传递,您可以启动一项服务(或向正在进行的服务提供新的指示)

startService()的意图。或者您可以通过传递Intent tobindService()来绑定到该服务。

您可以通过传递意图来启动广播方法像sendBroadcast(),sendOrderedBroadcast()或sendStickyBroadcast()。

您可以通过调用ContentResolver上的query()来向内容提供者执行查询。有关使用意图的更多信息,请参阅意向和意图过滤文件。以下文档还提供了有关激活特定组件的更多信息:活动,服务,BroadcastReceiver和内容提供商。

3关于清单文件

Android系统可以在应用程序组件之前启动,Android系统必须通过阅读AndroidManifest程序。确定启动组件的XML(即清单文件)文件存在。您的程序必须在声明中使用

显示所有组件,并且清单文件必须位于项目的根目录中。

另外,这个声明还表明了一些其他的东西,比如:

确定程序需要所有权限,如Internet访问或读取用户联系人权限。

声明最低API版本所需的运行程序,这可以根据API版本所使用的程序开发。

剩余内容已隐藏,支付完成后下载完整资料


资料编号:[28195],资料为PDF文档或Word文档,PDF文档可免费转换为Word

您需要先支付 30元 才能查看全部内容!立即支付

课题毕业论文、外文翻译、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。