(连载)AndroidSDK1.5联机文档刚开始学习android,在网上找关于android方面的教程,发现没什么合适的。找来找去,发现下的android下的文档才是最好,最权威的教程。翻译下来,一是为了加深理解,二可以为了以后查看方便,三可以练一下半桶水的四级英语水平。Android基础一什么是androidandroid是专为移动设备定制的包括操作系统,中间件,和核心应用程序的软件集。AndroidSDK提供了用Java语言开发android应用程序所需要的一些工具和API。二FearturesApplicationFrame可被重用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版本提供系统服务例如安全,内存管理,进程管理,网络和驱动管理。内核也扮演着一个硬件与软件堆栈的抽象层角色。应用程序基础ApplicationComponentsAndroid应用程序使用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开发环境如何启动AndroidSDK1.5模拟器期待:Android新版SDK随Cupcake4月现身AndroidSDK中tools目录下的工具介绍AndroidSDK下查看应用程序输出日志的方法AndroidSDK的网友评论初探Android定义Android清单Android网站居然上不了回复:个人翻译的AndroidSDK1.5联机文档(1)发表时间:2009-08-1823:35Services服务没有可视用户接口,但在一定时间内,重复不断的运行于后台。例如,某服务可能在后台播放音乐,而用于在执行其他的操作,或者它通过网络抓取数据或者执行某些计算,将结果提供给activity。每一个服务继承于Service基类。一个典型的例子就是从播放列表中播放音乐。用户可能利用一个或多个activity选择歌曲播放。然而,音乐在后台播放而不被activity处理,因为用户希望他们退出播放器窗口进行其他操作时,音乐能持续的播放。为完成这个操作,音乐播放activity可以启动一个服务(service),运行于后台。系统将会负责音乐的持续播放。可以访问连接(绑定)正在运行的服务(或者当服务没启动时,可以启动服务)。当连接服务时,你可以与通过服务提供的接口跟它通信。像音乐服务,它可能提供一个接口,允许用户暂停,回放,停止,和重放。类似activities和其他的组件,服务运行于应用程序进程的主线程中。因为它们不会中断其它组件或者用户接口,它们常常(像音乐)。稍候请查看ProcessesandThreads.BroadcastreceiversBroadcastreceivers接收和响应通知。很多通知来源于系统——例如,发送时区变换的通知,电池电量不足,图片被采样,或者用户改变语言设置。应用程序也可以发出广播通知——如,通知其它应用程序,数据已经下载完毕,可供系统和应用使用。应用程序可以拥有任意数量的广播接收机来接收任何它认为重要的通知。所有接收机承继于BroadcastReceiver基类。Broadcastreceivers不提供可视接口。但是,它可以启动actitivy响应接收到的通知,或者利用NotificationManager来通知用户。Notifications可以通过几种方式提示用户——闪动背光,振动设备,播放一段音乐等等。它们常常在状态栏中以图标显示,让用户获取通知。ContentprovidersContentprovider将应用程序数据组织成特定的集合供其它应用程序使用。数据可以是存储在文件系统中,或者在SQLite数据库中,或者其它任何用户可以操作数据的地方。contentprovider继承于ContentProvider基类,并且实现一组标准的方法,使应用程序可以检索和存储它控制的数据。然而,应用程序不是直接调用这些实现方法。而是通过ContentResolver对像调用方法。ContentResolver能够通知任何的contentprovider;它可以参与这些contentprovider进程间的管理合作。查看ContentProviders文档获取更多细节。任何时候,当请求处理一个特别的组件时,Android这个应用程序的进程正在运行,如果有需要,启动,且组件的适当的进程实例将被创建。Activatingcomponents:intents当Contentpro