Android 中文 文档.docx
- 文档编号:24558080
- 上传时间:2023-05-28
- 格式:DOCX
- 页数:34
- 大小:97.42KB
Android 中文 文档.docx
《Android 中文 文档.docx》由会员分享,可在线阅读,更多相关《Android 中文 文档.docx(34页珍藏版)》请在冰豆网上搜索。
Android中文文档
Android SDK1.5中文联机文档
刚开始学习android,在网上找关于android方面的教程,发现没什么合适的。
找来找去,发现下的android下的文档才是最好,最权威的教程。
翻译下来,一是为了加深理解,二可以为了以后查看方便,三可以练一下半桶水的四级英语水平。
Android基础
一什么是android
android是专为移动设备定制的包括操作系统,中间件,和核心应用程序的软件集。
AndroidSDK提供了用Java语言开发android应用程序所需要的一些工具和API。
二Feartures
ApplicationFrame可被重用
Dalvikvirtualmachine特为移动设备优化的java虚拟机
Integratedbrowser基于开源的webkit引擎
Optimizedgraphics2d图形绘制库;3D图形,基于OpenGLES1.0(硬件加速)
SQLite用于数据存储
Mediasupport 支持常见的音频,视频,图形(MPEG4,H.264,MP3,AAC,AMR,JPG,PNG,GIF)
GSMTelephony 需硬件支持
Bluetooth,EDGE,3G,andWiFi 需要硬件支持
Camera,GPS,compass,andaccelerometer (需要硬件支持)
Richdevelopmentenvironment 包括设备虚拟器,调试工具,内存和外观设置,eclipse开发插件。
Android架构图
应用程序
Android内置了一些核心的应用程序,包括emial客户端,短信应用,日历,地图,浏览器,联系人等等。
所有这些应用程序都由Java语言写成。
应用程序框架
开发者们可以在android提供的APIS下进行任意的开发。
应用程序一开始就是为了重用而设计的;任何应用程序的功能都可以发布给其他的应用程序使用(当然会受一些android为了安全所做的限制)。
用户可以在同一设备下重写或替换组件。
一组丰富和可扩展的用来构建应用程序的views集合。
包括lists,grids,textboxes,buttons,甚至可嵌入web浏览器。
ContentProvider能够使应用程序操作数据(例如联系人),或者共享数据。
ARrsourceManager,提供访问静态资料,例如国际化资源,图片,布局文件。
ANotificationManager使应用程序显示通知。
AnActivityManager管理应用程序的生命周期和提供Actitivy调度。
更多细节,请查看记事本教程。
Android包含一些供Android系统各种组件使用的C/C++库。
这些功能通过Android应用程序框架暴露给开发者。
下面是一些核心库:
库
∙SystemClibrary -基于标准C实现的BSD-derived实现库,嵌入式Linux-based设备载体
∙MediaLibraries-基于PacketVideopsOpenCORE;支持回放,录制多种流行的视频,音频格式文件,支持静态图片文件,包括MPEG4,H.264,MP3,AAC,AMR,JPG和PNG。
∙SurfaceManager管理多应用无缝集成2D和3D图形层。
∙LibWebCore-流行的浏览器引擎用于android浏览器和web浏览器
∙SGL -底层的2d图形引擎
∙基于OpenGLES1.0APIS的实现。
使用硬件加速(硬件支持)或者包括高度优化的软件光栅。
∙FreeType -位图和矢量字体渲染
∙SQLite -所有applications可用的强大和轻量级的关系数据库引擎
Android基于Linux2.6版本提供系统服务例如安全,内存管理,进程管理,网络和驱动管理。
内核也扮演着一个硬件与软件堆栈的抽象层角色。
Android运行环境
Android为Java语言提供了一组核心库,他提供大多数有用的功能。
每一个Android应用程序运行在他的独立进程中,并拥有他的Dalvik虚拟机实例。
Dalvik被设计成能在单个设备中有效运行多VMs实例。
Dalvik在DalvikExecutable(.dex)中执行经过优化的,占用最小内存的footprint.VM注册并运行经java编译和通过内置的"dx"工具转化成.dex格式的类文件。
Dalvik虚拟机依靠Linux内核提供基础功能,例如线程和底层级别的内存管理。
Linux内核
Android基于Linux2.6版本提供系统服务例如安全,内存管理,进程管理,网络和驱动管理。
内核也扮演着一个硬件与软件堆栈的抽象层角色。
∙应用程序基础
∙ApplicationComponents
Android应用程序使用Java语言开发。
被编译的类——伴随着应用程序需要的数据和资源文件——被包含在Android包中的aapt工具捆绑,并且打包压成后缀名为.apk的压缩文件。
.apk文件可以分发并在设备中安装。
它可以被用户下载到设备中。
所有包含在单个.apk文件中的代码可以被认为是一个应用程序。
在许多方面,每一个Android应用程序活在她自己的世界中:
o默认情况下,每个应用程序运行在她独享的进程中。
当任何应用程序执行时,Android会为他启动一个进程,关闭进程,当应用程序不需要被使用时,以释放资源供其他应用程序使用。
o每个进程拥有她的Java虚拟机实例,因此应用程序中的代码数据对其他应用程序是隔离的。
o默认情况下,每个应用程序会被分配一个唯一的LinuxuserID.文件仅对此用户可见,仅仅是对应用程序本身——尽管有方法让它可以被其他应用程序访问。
可以让两个应用程序共享一个userID,这种情况下,它们可以访问各自的文件。
多个应用程序可以共享同一个userID,运行在同一个进程,共享同一个虚拟机实例中。
Android的一个主要特点就是一个应用程序可以使用其他应用程序的元素(提供应用程序许可)。
例如:
如果你的应用程序需要显示一组滚动的图片,其它应用程序已经开发出了一个合适的图片滚动组件,并且已授权其他应用可用,你可以直接调用这个组件来工作,不必开发你自己的滚动组件。
你的应用程序不是将它的代码拷贝,纳入或者链接它的代码到你的代码中。
而是,当需要时,其他应用程序会启动所需的部分以供调用。
为完成这工作,系统必须能够启动应用程序进程当它的任何部分被调用时,并且为这些部分实例化Java对象。
因此,不像大多数其他的系统,Android应用程序没有单一的入口(例如没有main()方法)。
取代的是,它们有一些基本的组件,以供系统需要时实例化并且运行。
有四类组件:
Activities
一个activity代表着一个虚拟的用户接口用户可以开展。
例如:
一个activity可能代表着一组用户可选择的菜单或者它可显示图片包括它们的标题。
一个短信应用程序可能有一个activity用来显示一组联系人供发消息,另一个activity来写消息和选择联系人,其他的activities来显示旧消息或者改变设置。
尽管它们协作在一起,它他们彼此之间是独立的。
每一个activity做为一个Activity基类的实现类存在。
一个应用程序可能只由一个activity组成,或者像文本消息应用程序,它可能包含多个activity.每个activity的作用,和需要定义多少个activity,当然取决于应用程序的实际设计。
通常情况下,定义其中的一个activity作为应程序启动时提供用户的第一个activity。
通过当前的activity来启动下一个activity。
每个activity拥有一个默认的window窗口。
通常,这个窗口会填充屏幕,但他可能比屏幕尺寸要小和悬浮在其他窗口的最顶层。
一个activity也能够利用其它的窗口——例如,一个显示在activity中间的弹出窗口,提示用户,或者一个窗口代表用户的重要信息,当它们在屏幕上选择特别项时。
不同等级的视图提供窗口的视觉效果——由基础的View衍生出来的对象。
每一个view在窗口中控制其特别的形状。
父views包括和组织它们的子类的布局。
叶子views在它们的矩形中绘制,它们直接在它们的空间中控制响应用户事件。
例如,一个view可能显示一张小图片并定义当用户点击图片时的事件。
Android有一系列的开发好的views供您使用——包括按钮,文本框,滚动条,菜单项,单选框等等。
View通过Activity.setContentView()显示。
Contentview是在View层次中的根View对象。
(查看单独的UserInterface文档获取更多细节)
相关话题(查看更多,知识库搜索)
∙把Android源代码加入SDK
∙在Fedora下安装AndroidSDK开发环境
∙如何启动Android SDK 1.5模拟器
∙期待:
Android新版SDK随Cupcake 4月现身
∙AndroidSDK中tools目录下的工具介绍
∙AndroidSDK下查看应用程序输出日志的方法
∙AndroidSDK的网友评论
∙初探Android
∙定义Android清单
∙Android 网站居然上不了
回复:
个人翻译的Android SDK1.5联机文档
(1) 发表时间:
2009-08-1823:
35
Services
服务没有可视用户接口,但在一定时间内,重复不断的运行于后台。
例如,某服务可能在后台播放音乐,而用于在执行其他的操作,或者它通过网络抓取数据或者执行某些计算,将结果提供给activity。
每一个服务继承于Service基类。
一个典型的例子就是从播放列表中播放音乐。
用户可能利用一个或多个activity选择歌曲播放。
然而,音乐在后台播放而不被activity处理,因为用户希望他们退出播放器窗口进行其他操作时,音乐能持续的播放。
为完成这个操作,音乐播放activity可以启动一个服务(service),运行于后台。
系统将会负责音乐的持续播放。
可以访问连接(绑定)正在运行的服务(或者当服务没启动时,可以启动服务)。
当连接服务时,你可以与通过服务提供的接口跟它通信。
像音乐服务,它可能提供一个接口,允许用户暂停,回放,停止,和重放。
类似activities和其他的组件,服务运行于应用程序进程的主线程中。
因为它们不会中断其它组件或者用户接口,它们常常(像音乐)。
稍候请查看ProcessesandThreads.
Broadcastreceivers
Broadcastreceivers接收和响应通知。
很多通知来源于系统——例如,发送时区变换的通知,电池电量不足,图片被采样,或者用户改变语言设置。
应用程序也可以发出广播通知——如,通知其它应用程序,数据已经下载完毕,可供系统和应用使用。
应用程序可以拥有任意数量的广播接收机来接收任何它认为重要的通知。
所有接收机承继于BroadcastReceiver基类。
Broadcastreceivers不提供可视接口。
但是,它可以启动actitivy响应接收到的通知,或者利用NotificationManager来通知用户。
Notifications可以通过几种方式提示用户——闪动背光,振动设备,播放一段音乐等等。
它们常常在状态栏中以图标显示,让用户获取通知。
Contentproviders
Contentprovider将应用程序数据组织成特定的集合供其它应用程序使用。
数据可以是存储在文件系统中,或者在SQLite数据库中,或者其它任何用户可以操作数据的地方。
contentprovider继承于ContentProvider基类,并且实现一组标准的方法,使应用程序可以检索和存储它控制的数据。
然而,应用程序不是直接调用这些实现方法。
而是通过ContentResolver对像调用方法。
ContentResolver能够通知任何的contentprovider;它可以参与这些contentprovider进程间的管理合作。
查看ContentProviders文档获取更多细节。
任何时候,当请求处理一个特别的组件时,Android这个应用程序的进程正在运行,如果有需要,启动,且组件的适当的进程实例将被创建。
Activatingcomponents:
intents
当Contentprovider接收到ContentResolver的请求时,它将被激活。
其它三种组件——activities,services,和broadcastreceivers,被称为intent的异步消息对象激活。
Intent是Intent类的对象,持有消息数据。
例如activity和service,它指派它们被请求的行为和特别的URI标识的数据。
如,intent为actitivy转达显示图片或让用户编辑文本的请求。
对于broadercastreceivers,intent对象指派它通知事件。
例如,它可能指派broadcastreceiver宣布它对摄像头按下的事件感兴趣。
以下是激活每类组件的个别方法:
∙activity通过Intent对象承载,用Context.startActivity()或者Actitivy.startActivityForResult()来启动新项(开展新活动)。
被响应的activity通过调用getIntent()可以查看指派它启动的Intent对象。
Android调用activity的onNewIntent()方法传给随后的intents。
一个activity通常启动下一个activity。
当希望获得下一activity启动的返回值时,可以调用startActivityForResult()方法取代startActivity()方法。
例如启动一个能让用户选择图片的activity,可能希望获得选择的图片对象。
返回值保存在一个Intent对象中,通过调用activity的onActivityResult()获得。
∙启动一个服务(或者给一个正在运行的服务发新指示),通过一个Intent对象传递,调用Content.startService()方法。
Android调用service的onStart()方法并且传给Intent对象。
∙通常,一个intent通过Context.bindService()来建立调用组件和目标服务的连接。
服务通过onBind()接收Intent对象。
(如果服务未动行,bindService()方法会启动它)。
例如,一个activity很容易与后台音乐服务建立连接,因此可以通过服务接口控制音乐服务。
Activity利用bindService()方法建立连接,调用服务定义的方法。
后面章节,Remoteprocedurecalls,将描述更多绑定服务的细节。
∙应用程序启动广播,可以通过Intent对象传递,如Context.sendBroadcast(),Context.sendOrderedBroadcast(),Context.sendStickyBroadcast()。
Android调用onReceive()方法传递intent(意图)给所有感兴趣的接收者。
回复:
(连载) Android SDK 1.5 中文联机文档 发表时间:
2009-08-1923:
48
清单文件
在Android可以启动应用程序组件之前,它必须知道该组件的存在。
因此,应用程序在清单文件中声明它们的组件,该文件包含在Android包中,.apk文件还包含应用程序代码、文件和资源。
清单文件是结构化的XML文件,对于所有应用程序,文件名均为AndroidManifest.xml。
它除了声明应用程序组件外,还做一些额外工作,比如指出应用程序需要链接的库(除了Android默认的库)、标明应用程序被授予的权限。
但是,清单文件的主要任务是报告Android应用程序的组成部分。
例如,活动可以如下那样声明:
xmlversion="1.0"encoding="utf-8"?
>
name="com.example.project.FreneticActivity" android: icon="@drawable/small_pic.png" android: label="@string/freneticLabel" ...> ... icon和label属性,指出代表活动、呈现给用户的包含图标和标签的资源文件。 其它组件也许以类似的方式声明— 活动、服务和内容提供者如果不在清单文件中声明的话,对系统是不可见的,因此永远不会运行。 广播接收者可以在清单文件中声明,也可以通过代码(作为BroadcastReceiver对象)动态生成,并通过调用Context.registerReceiver()注册到系统中。 关于如何组织你的应用程序的清单文件,参见AndroidManifest.xml文件。 意图过滤器 意图对象可以精确的指定目标组件名。 如果指定了,Android将会找到该组件(基于清单文件中的声明),并激活它。 但是,如果目标不是精确的名称,Android就必须定位到最适合的组件来响应意图。 它将意图对象与意图过滤器的可能的目标作比较。 组件的意图过滤器,可以通知Android关于该组件可处理的多种意图。 象其它的组件的基本信息一样,他们也在清单文件中声明。 这里是对前一个例子的扩展,为活动增加了两个意图过滤器: xmlversion="1.0"encoding="utf-8"? > name="com.example.project.FreneticActivity" android: icon="@drawable/small_pic.png" android: label="@string/freneticLabel" ...> name="android.intent.action.MAIN"/> name="android.intent.category.LAUNCHER"/> name="com.example.project.BOUNCE"/> type="image/jpeg"/> name="android.intent.category.DEFAULT"/> ... 例子中的第一个过滤器—动作"android.intent.action.MAIN"和分类"android.intent.category.LAUNCHER"的组合—这是一个普通的例子。 它标记该活动可以显示在应用程序启动器(列出用户可以在设备上启动的应用程序的画面)中。 也就是说,该活动是应用程序的入口点,当用户从启动器运行应用程序时看到的第一个活动。 第二个过滤器声明了一个动作,该活动可以处理特殊类型的数据。 组件可以有很多过滤器,每一个声明一种不同的能力。 如果它没有任何过滤器,就只能通过提供了组件的精确名的意图来启动。 对于通过代码创建和注册的广播接收者,意图过滤器直接作为IntentFilter对象实例化。 所有其它过滤器都通过清单文件设置。 关于意图过滤器的更多信息,参见文档意图和意图过滤器。 活动和任务 前面提到过,一个活动可以启动另一个活动,包括属于其它应用程序的活动。 例如,你可能想让用户显示某个地方的地图。 已经有一个活动可以完成它,那么你的应用程序要做的,只是传递包含必要信息的意图对象到startActivity()中。 地图查看器将会显示它。 当用户按下回退键时,你的活动将再次出现在屏幕上。 对于用户来说,地图查看器就象是该应用程序的一部分,即使它定义于其它应用程序,运行于那个应用程序的进程。 Android通过将两个活动归入同一个任务task来维护用户体验。 简单的说,任务就是用户认为的"应用程序"。 它就是被安排在堆中的、有关联的一组活动。 根活动是堆中用于启动任务的活动,—一般来说,它是用户在应用程序启动器中选择的活动。 堆顶部的活动是当前运行的活动—具有焦点,并对用户的动作作出反应。 当启动另一个活动时,新活动被压入堆中;成为当前活动。 前面的活动保留在堆中。 当用户按下回退键时,当前活动弹出堆,前一个活动恢复为当前活动。 堆保存这些对象,如果一个任务包含两个以上的同一个活动子类的实例—比如多个地图查看器—每个实例在堆中有各自的入口。 活动在堆中不会被重新排列,只是压入和弹出。 任务是活动的堆,不是一个类或清单文件的一个元素。 因此,无法为任务中的某个独立的活动赋值。 对于一个任务整体,值是赋给它的根活动的。 比如下一节会谈到的"任务中的关系";值是通过设到任务的根活动中的关系取得的。 任务中的所有活动作为一个整体移动。 整个任务(整个活动堆)可以被带到前台或送到后台。 比如,当前任务的堆中有四个活动—有三个在当前活动下面。 用户按下HOME键、打开应用程序启动器、选择一个新的应用程序(实际上就是一个任务)。 当前任务转为后台运行,新任务的根活动被显示出来。 过了一会儿,用户返回了HOME,并选择了之前的应用程序(前一个任务)。 堆中包含四个活动的任务转为前台。 当用户按下回退键时,并不显示刚刚离开的活动(前一个任务的根活动)。 而是堆顶部的活动被移除,显示堆中的前一个活动。 该行为是活动和任务的缺省行为。 有办法修改这些行为。 活动与任务结合、任务中活动的行为,由启动活动时设置到意图对象中的标志,和清单文件中活动对应的 请求方和应答方对该行为都有发言权。 主要的意图标志如下: FLAG_ACTIVITY_NEW_TASK FLAG_ACTIVITY_CLEAR_TOP FLAG_ACTIVITY_RESET_TASK_IF_NE
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Android 中文 文档