《安卓应用开发基础论文中英文对照资料外文翻译文献.docx》由会员分享,可在线阅读,更多相关《安卓应用开发基础论文中英文对照资料外文翻译文献.docx(15页珍藏版)》请在课桌文档上搜索。
1、安卓应用开发基础论文中英文比照资料外文翻译文献中英文比照资料外文翻译文献安卓应用开发基础在Java编程语言编写的Android应用程序的Android的SDK工具编译代码以与与任何数据和到一个Android的包,一个归档文件档案资源的apk后缀,全部的在个单的代码.apk文件被认为是个应用程序,是AndrOid的文件,供电设备来安装应用程序。一旦安装在设备上,每个Android应用程序的生命在它自己的平安沙箱:而Android操作系统是一个多用户1.inux系统中,每个应用程序是一个不同的用户。默认状况卜.,每个应用程序的系统安排个唯的1.inUX用户ID,系统设置全部的应用程序中的文件权限,
2、以便只有用户ID安排给该应用程序可以访问它们。每个进程都有它自己的虚拟机,因此应用程序的代码在从其他应用程序隔离运行。默认状况下,每个应用程序运行在它自己的1.inUX进程。Android的启动过程时,应用程序的任何组件须要被执行,然后关闭该进程时,它不再须要或且原时,系统必需为其他应用程序的内存。这样来,Android系统实现了最小特权原则,也就是说,每个应用程序,默认状况下,只能访问的组件,它须要做的工作,没有更多,这将创建个特别平安的环境,使应用程序无法访问的,这就是它没有赐予许可制度的部分。但是,有一个应用程序的方法与其他应用程序和应用程序访问系统服务的数据:这有可能为两个应用程序支配
3、共享相同的1.inUX用户1D,在这种状况下,它们能够相互访问的文件。为了节约运用相同的用户ID系统资源,应用程序还1可以支配运行在相同的1.inux进程和共享同一个VMe应用程序可以恳求访问权限,如用户的联系人,短信,可安装存储,摄像头,蓝牙等设备的数据,全部应用程序的权限必需用户在安装时授予。这涵盖了其本就如何AndrOid应用程序在系统中存在这个文件的其余部分向您介绍:1、框架的核心组件定义应用程序。2、清单文件中声明组件和应用程序所需的设备功能。3、资源是从应用程序代码分开,并允许您的应用程序正常优化的设备配置各种其行为。应用程序组件(APP1.iCationComponents)An
4、droid的核心功能之一就是一个应用程序可以运用其它应用程序的元素。比如说,假如你的应用程序须要个图片卷动列表,而另个应用程序已经开发了一个合用的而又允许别人运用的话,你可以干脆调用那个卷动列表来完成工作,而不用自己再开发个。你的应用程序并没有吸纳或链接其它应用程序的代码,它只是在有需求的时候启动其它应用程序的那个功能部分。为达到这个目的,系统必需在一个应用程序的一部分被须要时启动这个应用程序,并将那个部分的JaVa对象实例化。与在其它系统上的应用程序不同,Android应用程序没有为应用打算个单独的程序入口,而是为系统依照需求实例化供应了基本的组件。共有四种组件类型:活动(ACtiVitie
5、S)个activity代表用户界面的一个独立屏幕。例如,一个邮件应用程序应当有一个activity用于显示新邮件列表,另,个activity用于撰写-封邮件,还有个activity用于读取邮件。尽管全部activitie协同工作以构成邮件应用程序的用户体验,但彼此之间相对独立。应次,不同的应用程序能够从任何个2activity启动(只要郎件应用程序允许)。例如,用户须要共享张照片,个拍照应用程序能够启动邮件应用程序的activityactivity是一个实现了Activity的子类,你可以在Activities开发者指导部分了解更多。服务(Services)service是在后分运行,执行长时
6、间操作或者执行远程操作。service不供应用户界面。例如,当用户在另一个应用程序时,一个ServiCe可在后台播放音乐,或者是从网络上获得数据,而不阻断用户与当前activity的交互。其他组件,比如,个activity,为了与该service互动,可以启动或者绑定它。service是一个实现Service的子类,你可以在Services开发者指导部分了解更多。广播接收器(Broadcastreceivers)广播接收器是一个专注于接收广播通知信息,并做出对应处理的组件。很多广播是源自于系统代码的一比如,通知时区变更、电池电量低、拍摄/一张照片或者用户变更/语言选项.应用程序也可以进行广播一
7、比如说,通知其它应用程序些数据卜.载完成并处于可用状态。应用程序可以拥有随意数量的广播接收器以对全部它感爱好的通知信息予以响应。全部的接收器均继承自BroadCaSIReCeiVer基类。广播接收器没有用户界面。然而,它们可以启动一个activity来响应它们收到的信息,或者用No1.ifiCa1.iOnManager来通知用户。通知可以用很多种方式来吸引用户的留意力一闪动背灯、振动播放声音等等。般来说是在状态栏上放个长久的图标,用户可以打开它并获得消息。内容供应者(ConIen1.providers)内容供应者将些特定的应用程序数据供应其它应用程序运用。数据可以存储于文件系统、SQ1.i1.
8、e数据库或其它方式。内容供应者继承于COntentProVider基类,为其它应用程序取用和存储它管理的数据实现了一套标准方法。然而,应用3程序并不干脆调用这些方法,而是运用个ContentResoIVer对象,调用它的方法作为替代。Con1.enIReSOIVer可以与随意内容供应者进行会话,与其合作来对全部相关交互通讯进行管理。参阅独立的内容供应者ContentProviders聿节获得更多关于运用内容供应者的内容。每当出现一个须要被特定组件处理的恳求时,Android会确保那个组件的应用程序进程处于运行状态,或在必要的时候启动它。并确保那个相应组件的实例的存在,必要时会创建那个实例。An
9、droid系统设计的个独特方面是任何的一个程序都可以启动另一程序的组件。比如,你想让你的程序可以运用照相机拍照,假如已经有了实现这种功能的程序并且你你的程序能运用它,那么你就没有再要再写一个新的Activity来实现这个功能。你的程序不须要包含或者链接这个拍照程序。相反,你只须要在你的程序中打开这个拍照程序中的实现拍照功能的ACtivi1.y。当拍完之后,拍好的照片甚至会自动返回给你的程序。者对于用户来说,就似乎是想拍照功能的程序就是你的这个程序的一部分一样。当系统启动一个组件之后,假如这个组件所在的程序之前没有运行的话,系统会自动起先这个程序的进程,并初始化这个组件所须要的相关类。比如,你的
10、程序开启了个拍照功能程序的ACtiVity,这时系统会启动这个ACtiVity所在的程序,所以这个ASiViW运行在拍照功能的程序当中,而不是在你的程序中。所以,不像其他操作系统的中的程序,Android程序没有一个单独的入口点。因为系统中的程序运行在自己的独立进程中,并且程序中的文件都有自己的限制其他程序访问的权限,所以,你的程序不能F脆激活其他程序中的组件。但是AndrOid系统就可以。具体是这样的实现的,为了激活其他程序中的组件,你必需向系统发送个消息来具体说明你要启动其他组件的意图,这样系统才会为你激活这个组件。激活组件(ACtiVatingComponents)4四大组件中的三个组件
11、activities、services和broadcastreceive1是一种叫intent的异步消息来激活的。这些intents在运行时将这些属于你的程序或不同程序的单独的组件绑定在一起,你可以把这些intents看作是须要其他组件的action的messengers。一个intent就是一个Intent对象,这个in1.en1.定义了一种可以激活某个特定组件或者某种特定类型的组件,这两种状况分别对应两种intent的定义方式或者显示的或者隐式的。对于ac1.ivi1.ies和SerViCes,一个intent定义了要执行的操作(比如,要“view”或者“send”什么)和要操作的数据的U
12、RI。比如,一个in1.ent可能会为一个activity传递个恳求来展示张图片或者打开个网页。有时,你可以启动个activity来得到返回的结果,在这个例子中这个activity的返回的结果也是一个Intent.对于广播接收者来说,intent只是简洁的定义/要广播的内容。最终一种组件类型contentProVider并不是intent来激活的。而是接收到ContentReso1.ver的恳求时激活的。它们都各自有自己的方法来激活相应的组件:你可以通过传递一个Intent给StartACtiVityo或StartACtiVityForReSUIt()启动一个activityo运用S1.arI
13、AC1.iVi1.y1;OrReSU1.I()你将得至一个返回结果。你可以通过传递,个Intent给StartSerViCe()来start/service。或者你可以通过把一个Intent传递给bindService()来绑定一个service*5你可以通过传递个Intent给诸如SendBroadCaSt0、SendOrderedBroadcast0或者serdStiCkyBroadcastO等方法来初始化一个广播。你可以通过调用ContentReSO1.ver的query。方法来执行,,次contentprovider的查询操作。更多的关于intent的内容,可以参看文档中的Intent
14、sandIntentFi1.ters0更多的关于激活特定组件的内容可以参看文档中的:ACIiVi1.ies、Services%BroadcaSIReCeiVer、ContentProviders*关于ManifeSt文件在AndrOid系统可以启动一个应用程序组件之前,Android系统必需通过读取这个程序的文件来确定要启动的组件存在。你的程序必需在这个manifest文件声明用到的全部的组件,并且这个manifest文件必需在项目的根书目下。另外,这个manifest文件还声明一些其他的东西,比如:确定这个程序须要的全部权限,比如In1.eme1.访问权限或者读取用户联系人权限C声明这个运行
15、这个程序所须要的最低AP1.版本,这个可以依据开发该程序所运用的API版木。声明该程序所须要的硬件或软件特征,比如照相机、蓝牙服务或者多点触屏。声明该程序须要链接的API库,比如GoogIeMaPSIibrarye组件声明6ManifeSt文件的首要任务就是通知系统关于程序中要运用的组件。比如,一个manifest文件可以用如下的方式来声明一个activity:javaviewp1.aincopy1.3.7.8.9.在元素中,android:icon属性用于指定一个用于标示该程序的icon。在元素中,android:name属性用于确定这个扩展自Activity的子类的全路径名,android
16、:Iabe1.属性用于标示这个ac1.iviIy的对于用户可见的1.abe1.你必须要用以卜方式来声明你的程序组件:1、activities:标签2、SerViCeS:标签3、broadcastreceiver:标签4、Contentproviders:标签假如程序中用到activities、servicescontentproviders,你没有在manifest文件中声明,那么这些组件将不会被系统知道,结果就是你的程序不能运行。然7而,broadcastreceiver既可以在manifest文件中声明也可以在代码中动态创建,并通过调用registerReceiver()在系统中注册。更多
17、关于怎样为你的程序构建manifest文件,请参看文档The文件。声明组件的实力正如在上面ActivatingComponents中探讨的那样,你可以运用一个Intent来启动activitiesservices和broadcastreceiver*你可以通过在intent中注明目标组件的名字来显示的启动组件。然而,in1.en1.s真正强大的地方在与关于intent的actions的概念。通过intent的actions,你可以简洁的描述你要执行的操作的类型,可以允许系统在device中找到这个组件并启动它。假如有多个组件可以执行intent中描述的action,这时用户就可以选择个来执行。
18、系统可以识别能对某in1.en1.做出反应的方式是通过将接收到的intent和设备中其他程序的manifest文件的intentfi1.ters进行比较实现的。当你在程序的manifest文件中声明一个组件之后,你可以有选择包含intentfi1.ters,这些intentfi1.ters表明白组件对接收自其他程序的in1.en1.做出反应的实力。你可以通过添加一个元素作为achiIdofthecomponent,sdec1.aratione1.ement来为你的程序声明个intentfi1.ter比如,在一个邮件程序中的一个activity可以编写新的邮件,这样的话你就须要在manifest
19、文件中来声明一个intentfi1.1.er来对发送intent响应。这样,在你的程序中,一个activity就可以创建一个发送intent(ACTIOkSEND),这样当你调用StartaActivityOW,系统就会匹配邮件程序中的发送activity并启动它。更多关于创建intentfi1.ters的内容,可以参看IntentsandIntentFi1.ter文档。8声明运行程序所需的条件Andorid系统可以支持很多不同的设备,并且这些设备的性能特征并不相同。为防止你的程序被安装在不能正常运行你的程序的较低android系统版本上,通过在manifest文件中声明你的程序支持的设备和软
20、件,便变得尤其重要起来。大多数的这些声明仅是一些信息,而系统并不会读取它们,但是其他的服务比如AndroidMarket却会阅读这些声明来帮助通过通过自己的设备搜寻软件的用户过滤软件。比如,你的程序须要照相机,并且运用的的APIs,那么你就必需在你的manifest文件中声明这些须要。这样的话,在AndroidMarke1.,没有照相机或者Android系统版本低于将不能安装你的程序。然而,假如你的程序不须要照相机,你仍可以声明你须要照相机。这种状况下,你的程序必需在运行时做卜检查,来检杳这个设备是否含有照相机,假如没有照相机可用,则系统将会使运用照相机的相关程序不能用。下面是一些你在设计和开
21、发你的程序时,必须要考虑的关于设备的些重:要方面:屏幕大小和辨别率:为r依据屏幕的类型进行分类,AndrOid定义了两个特征:屏幕大小和辨别率。屏幕尺寸有:小,中,大,超大;屏幕辨别率类型:低辨别率,中辨别率,高辨别率,超高辨别率;默认状况卜.,你的程序可以兼容全部的屏幕尺寸和辨别率,因为Android系统对你的程序的UI布局和image资源做了适当的调整。输入方式:9很多设备有不同类型的输入方式,比如键盘、轨迹球、五位元导航。假如你的程序须要某特定形式的输入方式,则你必需在manifes文件中运用标签来声明。不过这种状况是比较少的。设备配置:有很多硬件或软件并不全在Android系统的设备上
22、,比如,一个照相机、光线传感器、某个版本的OpenG1.,或者屏器的保真度。你在任何条件下都不能假定Android设备具备某种特性,所以假如你的程序运用了某feature,则你必需运用标签来声明“不同地Android平台设备通常运行不同版本的Android,比如Android或者Androido每个后续版本通常包含之前版本所不支持的新增APkInordertoindicatewhichsetofAPIsareavai1.ab1.e,每个平台版本对应一个API1.eve1.(例如,Android对应于API1.eve1.1,Android对应于API1.eve1.9)假如你运用任何在版之后平台新
23、增的API,你为你的应当运用元素声明最低API1.eve1.是包含这些API的。应用程序声明全部这些要求至关重要,因为,当你在AndroidMarket上发布你的应用程序时,Market运用这些声明来过港该应用程序是否对于每台设备可用.这样,你的应用程序仅对能够满意你的应用程序要求的设备可用。应用程序资源一个应用程序不仅仅代码组成一一它须要区分于源代码的资源,比如图片,音频文件,以与任何与应用程序视觉呈现相关联的内容。例如,你应当运用XMI,文件定义动画,菜单,风格,颜色,以与activity用户界面的布局。运用应用程序资源文件,可以更简洁地更新你的应用程序的特性而无需修改代码,并且一通过供应
24、多套可替换资源文件一使您能够针对各种设备配置优化你的应用程序(比如不同语言或屏幕大小)010对于你的安卓工程里面包含的每项资源,SDK构建工具定义一个唯一的正整数ID标识符,你可以运用该标识符从你的应用程序代码中或者从XM1.文件中定义的其他资源中特指该资源。例如,假如你的应用程序中包含一个名为图片文件(保存在res/drawab1e/文件夹里3SDK工具会生成一个资源ID命名为,你可以运用该ID特指这张图片并插入你的用户界面中。将资源供应工作同你的源代码分隔开来最聿要的缘由之是能够使您为不同的设备配置供应可替换的资源文件。例如,在XM1.中定义II字符串,你可以将这些字符用翻译成其他语言并保
25、存在特定的文件夹中。然后,基于语言qua1.ifier/修饰词你添加资源文件夹名称(比如resva1.ues-fr对应于法语字符串)以与用户语言设苴,Android系统会给你的II供应适当的语言字符串。对于你的可替代资源,Android支持很多不同的qua1.ifiers/修饰符修饰符是包含在你的资源文件夹名称中的一个短字符串,以便界定哪些设备配置可运用这些资源。另一个例子,对于不同的设备屏幕和大小,你应当为你的activities创建不同的布局。例如,当设备屏幕是纵向的(高),你可能希望一个按钮垂直排列的布局,但当屏幕是横向的(宽),按钮应当水平排列。为了依据方向调整布局,你可以定义两个不同
26、的布局文件并给每个布局文件夹供应适当的修饰符。这样,系统会依据特定的设备方向自动为其供应适当的布局。11外文原文AndroidApp1.icationFundamenta1.sAndroidapp1.icationsarewrittenintheJavaprogramming1.anguage.TheAndroidSDKtoo1.scompi1.ethecode-a1.ongwithanydataandresourcefi1.es-intoanAndroidpackage,anarchivefi1.ewithan.apksuffix.A1.11.hecodeinasing1.e.apkfi1.
27、eisconsideredtobeoneapp1.icationandisthefi1.ethatAndroid-powereddevicesusetoinsta1.1theapp1.ication.Onceinsta1.1.edonadevice,eachAndroidapp1.ication1.ivesinitsownsecuritysandbox:TheAndroidoperatingsystemisamu1.tiuser1.inuxsysteminwhicheachapp1.icationisadifferentuser.Bydefau1.t,thesystemassignseacha
28、pp1.icationaunique1.inuxuserID(theIDisusedon1.ybythesystemandisunknowntotheapp1.ication).Thesystemsetspennissionsfora1.1thefi1.esinanapp1.icationsothaton1.ytheEachuserIDassignedtothatapp1.icationcanaccessthem.processhasitsownvirtua1.machine(VM),soanapp1.ication*Scoderunsiniso1.ationfromotherapp1.ica
29、tions.Bydefau1.t,everyapp1.icationrunsiniIsown1.inuxprocess.Androidstartstheprocesswhenanyoftheapp1.ication*Scomponentsneedtobeexecuted,thenshutsdowntheprocesswhenit,sno1.ongerneededorwhenthesystemmustrecovermemoryforotherapp1.ications.Inthisway,theAndroidsysteminipIemenIstheprincip1.eof1.eastprivi1
30、.ege.Thatis,eachapp1.ication,bydefau1.t,hasaccesson1.ytothecomponentsIhatiIrequirestodoitsworkandnomore.Thiscreatesaverysecureenvironmentinwhichanapp1.icationcannotaccesspartsofIhesystemforwhichitisnotgivenpermission.12However,therearewaysforanapp1.icationtosharedatawithotherapp1.icationsandforanapp
31、1.icationtoaccesssystemservices:It,Spossib1.etoarrangefortwoapp1.icationstosharethesame1.inuxuserID,inwhichcasetheyareab1.etoaccesseachother,Sfi1.es.Toconservesystemresources,app1.icationswiththesameuserIDcana1.soarrangetoruninthesame1.inuxprocessandsharethesameVM(theapp1.icationsmusta1.sobesignedwi
32、th1.hesamecertificate).Anapp1.icationcanrequestpermissiontoaccessdevicedatasuchastheuser*Scontacts,SMSmessages,themountab1.estorage(SDcard),camera,B1.uetooth,andmore.A1.1.app1.icationpermissionsmustbegrantedbytheuseratins1.a1.1time.ThatcoversthebasicsregardinghowanAndroidapp1.icationexistswithinthes
33、ystem.Therestofthisdocumentintroducesyouto:1、Thecoreframeworkcomponentsthatdefineyourapp1.ication.2、Themanifestfi1.einwhichyoudec1.arecomponentsandrequireddevicefeaturesforyourapp1.ication.3、Resourcesthatareseparatefromtheapp1.icationcodeanda1.1.owyourapp1.icationIogracefu1.1.yoptimizeitsbehaviorfor
34、avarietyofdeviceconfigurations.App1.icationComponentsApp1.icationcomponentsaretheessentia1.bui1.dingb1.ocksofanAndroidapp1.ication.Eachcomponentisadifferentpointthroughwhichthesystemcanenteryourapp1.ication.Nota1.1componentsareactua1.entrypointsfortheuserandsomedependoneachother,buteachoneexistsasit
35、sownentityandp1.aysaspecificro1.e-eachoneisauniquebui1.dingb1.ockthathe1.psdefineyourapp1.icationsovera1.1behavior.Therearefourdifferenttypesofapp1.icationcomponents.Eachtypeservesadistinctpurposeandhasadistinct1.ifecyc1.ethatdefineshowthecomponentiscreatedanddestroyed.13Herearethefourtypesofapp1.ic
36、ationcomponents:Activitiesnactivityrepresentsasing1.escreenwithauserinterface.Forexamp1.e,anemai1.app1.icationmighthaveoneactivitythatshowsa1istofnewemai1.s,anotheractivitytocomposeanemai1.,andanotheractivityforreadingenaiIs.A1.thoughtheactivitiesworktogethertoformacohesiveuserexperienceintheemai1ap
37、p1.ication,eachoneisindependentoftheothers.Assuch,adifferentapp1.icationcanstartanyoneoftheseactivities(iftheemai1.app1.icationa1.1.owsit).Forexamp1.e,acameraapp1.icationcanstarttheactivityintheemai1.app1.icationthatcomposesnewmai1.,inorderfortheuserIoshareapicture.Anactivityisimp1.ementedasasubc1.a
38、ssofActivityandyoucan1earnmoreaboutitintheActivitiesdeve1.operguide.ServicesAserviceisacomponentthatrunsinthebackgroundtoperform1.ong-runningoperationsortoperformworkforremoteprocesses.Aservicedoesnotprovideauserinterface.Forexamp1.e,aservicemightp1.aymusicinthebackgroundwhi1.etheuserisinadifferenta
39、pp1.ication,oritmightfetchdataoverthenetworkwithoutb1.ockinguserinteractionwithanactivity.Anothercomponent,suchasanactivity,canstarttheserviceand1.etitrunorbindtoitinordertointeractwithit.Aserviceisimp1.ementedasasubc1.assofServiceandyoucan1.earnmoreaboutitintheServicesdeve1.operguide.Contentprovide
40、rsAcontentprovidermanagesasharedsetofapp1.icationdata.Youcanstorethedatainthefi1.esystem,anSQ1.itedatabase,ontheweb,oranyotherpersistentstorage1.oca1.ionyourapp1.icationcanaccess.Throughthecontentprovider,otherapp1.icationscanqueryorevenmodifythedata(ifthecontentprovidera1.1.owsit).Forexamp1.e,the14
41、AndroidsystemprovidesacontentproviderthatmanagestheuserScontactinformation.Assuch,anyapp1.icationwiththeproperpermissionscanquerypartofthecontentprovider(SUChas)toreadandwriteinformationaboutaparticu1.arperson.Contentprovidersarea1.sousefu1.forreadingandWritingdatathatisprivatetoyourapp1.icationandn
42、otshared.Forexamp1.e,IheNotePadsamp1.eapp1.icationusesacontentprovidertosavenotes.Acontentproviderisimp1.ementedasasubc1.assofCon1.en1.Providerandmustimp1.ementastandardsetofAPIsthatenab1.eotherapp1.icationstoperformtransactions.Formoreinformation,SeeIheContentProvidersdeve1.operguide.Broadcastrecei
43、versAbroadcastreceiverisacomponentthatrespondstosystem-widebroadcastannouncements.Manybroadcastsoriginatefromthesystem-forexamp1.e,abroadcastannouncingthatthescreenhasturnedoff,thebatteryis1.ow,orapicturewascaptured.App1.icationscana1.soinitia1.ebroadcasts-forexamp1.e,to1.etotherapp1.icationsknowtha
44、tsomedatahasbeendown1.oadedtothedeviceandisavaiIab1.eforthemtouse.A1.thoughbroadcastreceiversdon,tdisp1.ayauserinterface,theymaycreateastatusbarnotificationtoa1.erttheuserwhenabroadcasteventoccurs.Morecommon1.y,though,abroadcastreceiverisjustaisintendedtodoaveryminima1.amountofwork.Forinstance,itmig
45、htinitiateaservicetoperformsomeworkbasedontheevent.Abroadcastreceiverisimp1.ementedasasubc1.assofBroadcastReceiverandeachbroadcastisde1.iveredasanIntentobject.Formoreinformation,seetheBroadcastReceiverc1.ass.AuniqueaspectofIheAndroidsystemdesignisthatanyapp1.icationcanstartanotherapp1.ication,scomponent.Forexamp1.e,ifyouwanttheuserIocaptureaphotowiththedevicecamera,theresprobab1.yanotherapp1.icationthatdoesthatandyour15