【Android源码 栏目提醒】:以下是网学会员为您推荐的Android源码 -android应用框架分析 - 企业软件开发,希望本篇文章对您学习有所帮助。
什么是
Android Android 是一个专门针对移动设备的软件集它包括一个操作系统中间件和一些重要的应用程序。
Beta版的
Android SDK 提供了在
Android平台上使用JaVa语言进行
Android应用开发必须的工具和API接口。
特性 ?? 应用程序框架 支持组件的重用与替换 ?? Dalvik 虚拟机 专为移动设备优化 ?? 集成的浏览器 基于开源的WebKit 引擎 ?? 优化的图形库 包括定制的2D图形库3D图形库基于OpenGL ES 1.0 硬件加速可选 ?? SQLite 用作结构化的数据存储 ?? 多媒体支持 包括常见的音频、视频和静态图像格式 如 MPEG4 H.264 MP3 AAC AMR JPG PNG GIF ?? GSM 电话技术 依赖于硬件 ?? 蓝牙Bluetooth EDGE 3G 和 WiFi 依赖于硬件 ?? 照相机GPS指南针和加速度计accelerometer 依赖于硬件 ?? 丰富的开发环境 包括设备模拟器调试工具内存及性能分析图表和Eclipse集成开发环境插件
Android 架构 下图显示的是
Android操作系统的主要组件。
每一部分将会在下面具体描述。
应用程序
Android会同一系列核心应用程序包一起发布该应用程序包包括email客户端SMS短消息程序日历地图浏览器联系人管理程序等。
所有的应用程序都是使用JAVA语言编写的。
应用程序框架 开发人员也可以完全访问核心应用程序所使用的API框架。
该应用程序的架构设计简化了组件的重用任何一个应用程序都可以发布它的功能块并且任何其它的应用程序都可以使用其所发布的功能块不过得遵循框架的安全性限制。
同样该应用程序重用机制也使用户可以方便的替换程序组件。
隐藏在每个应用后面的是一系列的服务和系统 其中包括 ?? 丰富而又可扩展的视图Views可以用来构建应用程序 它包括列表lists网格grids文本框text boxes按钮buttons 甚至可嵌入的web浏览器。
?? 内容提供器Content Providers使得应用程序可以访问另一个应用程序的数据如联系人数据库 或者共享它们自己的数据 ?? 资源管理器Resource Manager提供 非代码资源的访问如本地字符串图形和布局文件 layout files 。
?? 通知管理器 Notification Manager 使得应用程序可以在状态栏中显示自定义的提示信息。
?? 活动管理器 Activity Manager 用来管理应用程序生命周期并提供常用的导航回退功能。
有关更多的细节和怎样从头写一个应用程序请参考 如何编写一个
Android 应用程序. 程序库
Android 包含一些C/C库这些库能被
Android系统中不同的组件使用。
它们通过
Android 应用程序框架为开发者提供服务。
以下是一些核心库 ?? 系统 C 库 - 一个从 BSD 继承来的标准 C 系统函数库 libc 它是专门为基于 embedded linux 的设备定制的。
?? 媒体库 - 基于 PacketVideo OpenCORE该库支持多种常用的音频、视频格式回放和录制同时支持静态图像文件。
编码格式包括MPEG4 H.264 MP3 AAC AMR JPG PNG 。
?? Surface Manager - 对显示子系统的管理并且为多个应用程序提 供了2D和3D图层的无缝融合。
?? LibWebCore - 一个最新的web浏览器引擎用支持
Android浏览器和一个可嵌入的web视图。
?? SGL - 底层的2D图形引擎 ?? 3D libraries - 基于OpenGL ES 1.0 APIs实现该库可以使用硬件 3D加速如果可用或者使用高度优化的3D软加速。
?? FreeType -位图bitmap和矢量vector字体显示。
?? SQLite - 一个对于所有应用程序可用功能强劲的轻型关系型数据库引擎。
Android 运行库
Android 包括了一个核心库该核心库提供了JAVA编程语言核心库的大多数功能。
每一个
Android应用程序都在它自己的进程中运行都拥有一个独立的Dalvik虚拟 机实例。
Dalvik被设计成一个设备可以同时高效地运行多个虚拟系统。
Dalvik虚拟机执行.dex的Dalvik可执行文件该格式文件针对小内存使用做了 优化。
同时虚拟机是基于寄存器的所有的类都经由JAVA编译器编译然后通过SDK中 的 quotdxquot 工具转化成.dex格式由虚拟机执行。
Dalvik虚拟机依赖于linux内核的一些功能比如线程机制和底层内存管理机制。
Linux 内核
Android 的核心系统服务依赖于 Linux 2.6 内核如安全性内存管理进程管理 网络协议栈和驱动模型。
Linux 内核也同时作为硬件和软件栈之间的抽象层。
一、开始 安装 SDK 本页内容介绍如何安装
Android SDK以及如何设置你的开发环境。
如果你还没有下载SDK你可以点下面的连接进行下载然后阅读后续文档学习如何安装配置并使用该SDK来创建
Android应用程序。
下载 SDK 升级 如果你已经用更早的版本开发过程可以跳过本页并阅读升级 SDK文档. 系统和软件需求 用
Android sdk的代码和工具开发
Android应用程序你需要适合的开发电脑以及开发环境如下描述 所需操作系统: ?? Windows XP 或 Vista ?? Mac OS X 10.4.8 或更高版本 仅支持x86 ?? Linux Linux Ubuntu Dapper Drake 版本已测试 所需开发环境: ?? Eclipse IDE o Eclipse 3.3 Europa 3.4 Ganymede § Eclipse JDT 插件 大多数的 Eclipse IDE 包包含 § WST 可选但
Android编辑器的功能需要它被包含在most Eclipse IDE packages 中 o JDK 5 或 JDK 6 只有JRE是不够的 o
Android Development Tools 插件 可选 o 不兼容GNU Java编译器gcj ?? 其他开发环境或 IDE o JDK 5 或 JDK 6 仅有JRE不够 o Apache Ant 1.6.5 或更高版本 Linux 和 Mac环境下 1.7 或更高版本 Windows环境下 o 不兼容GNU Java编译器gcj 注: 如果你的电脑上已经安装了jdk请确定它是上面所列的版本号。
另外需要注意有些linux版本可能包含有jdk 1.4 或者 java 的gnu编译器Adroid开发是不支持在这两种版本 安装 SDK 下载完SDK后把.zip文件解压到你电脑上合适位置. 默认情况下 SDK文件被解压到
android_sdk_ltplatformgt_ltreleasegt_ltbuildgt文件夹. 这个文件夹包含 tools/ samples/等. 请注意系统里SDK解压后的文件夹的名字和位置 — 当你安装
Android插件和使用SDK工具时你将需要引用这个文件夹。
你可以添加 SDK tools 的文件夹路径到你的环境变量中. 如上所述 tools/文件夹位于SDK文件夹中。
?? Linux环境下修改/.bash_profile或者 /.bashrc文件. 找到环境变量设置的地方加入tools/的绝对路径。
如果找不到该设置你需要新添加一行: export PATHPATH:ltyour_sdk_dirgt/tools ?? Mac环境下在你的home文件夹里面查找.bash_profile然后和linux一样处理。
如果之前没有.bash_profile文件你可以创建一个新的。
?? Windows环境下 右击我的电脑 并选择属性. 在标签页高级 点击环境变量 当对话框出现 在系统变量栏目里双击路径 Path .并添加tools/ 文件夹的完整路径. 添加 tools 到你的环境变量里这样你可以运行
Android Debug Bridge adb和其他tools下命令而不需要输入完整路径名。
需要说明的是 如果你升级你的SDK 需要将你的相应环境变量更新到新的位置。
安装 Eclipse 插件 ADT 如果你要使用 Eclipse IDE作为开发
Android应用的环境你可以安装支持
Android工程和工具的通用插件
Android Development Tools ADT. ADT插件包含强大的扩张使得创建运行和调试
Android 更快速更简单。
如果你不使用 Eclipse IDE就不必下载和安装ADT插件 下载和安装ADT插件请按照你们各自Eclipse版本步骤安装。
Eclipse 3.3 Europa Eclipse 3.4 Ganymede 1. 开始Eclipse然后选择 Help gt Software Updates gt Find and Install.... 2. 对话框出现后选择 Search for new features to install 点击 Next. 3. 点击New Remote Site. 4. 在对话框中输入远程站点的名字如
Android Plugin输入站点如下: https://dl-ssl.google.com/
android/eclipse/ 点击OK. 5. 你可以看到新的站点添加到搜索列表中并检查点击Finish. 6. 在下面的搜索结果对话框选择复选框
Android Plugin gt Developer Tools. 它将会检查特性: quotAndroid Developer Toolsquot 和 quotAndroid Editorsquot.
Android 编辑器的特性是可选的但我们推荐安装它如果你选择安装需要前面提到的WST插件。
点击 Next. 7. 阅读许可协议然后选择接受许可协议点击 Next. 8. 点击 Finish. 9. ADT插件没有签名你可以点击“Install All”来安装所有东西。
1. 启动 Eclipse 选择 Help gt Software Updates.... 2. 在出现的对话框里点击标签页 Available Software. 3. 点击 Add Site... 4. 输入下面的地址: https://dl-ssl.google.com/
android/eclipse/ 点击 OK. 5. 返回可用软件的视图你会看到这个插件. 选择下一步到 Developer Tools 并点击 Install... 6. 在接下来的安装窗口选中quotAndroid Developer Toolsquot和 quotAndroid Editorsquot。
Android编辑器特性是可选的但是我们推荐安装它如果你选择安装需要前面提到的WST插件。
点击 Finish. 7. 重启 Eclipse。
10. 重启 Eclipse. 重启之后 update your Eclipse preferences 指向SDK文件夹: 1. 选择 Window gt Preferences... 来打开属性面板。
Mac OS X: Eclipse gt Preferences 2. 从左边面板选择
Android。
3. 在主界面上定位SDK 点击 Browse... 然后定位 SDK文件夹。
4. 点击 Apply 然后点击 OK。
ADT 安装疑难解答 I你如果按照以上步骤下载ADT插件有疑问这里是一些建议 ?? 在第四步尝试改变远程更新地址URL为http而非 https. ?? 如果你在防火墙保护下企业防火墙请确定你的Eclipse的代理设置合适。
在Eclipse 3.3/3.4你可以从主Eclipse菜单中配置 Window 在 Mac Eclipse gt Preferences gt General gt Network Connections 如果无法安装下载的ADT插件到Eclipse按照如下的步骤来从你的电脑下载和安装插件: 1. 下载ADT压缩文件 不解压. 2. 按照默认安装的第一部和第二步如上. 3. 在 Eclipse 3.3 点击New Archive Site.... In Eclipse 3.4 click Add Site... 然后点击Archive... 4. 浏览和选择已经下载的压缩文件。
5. 从第五步开始完成上面剩下的流程。
更新你的插件你必须按照这些步骤代替默认的更行说明。
更新 ADT 插件 在某些情况下你机器上的SDK可能和ADT插件是兼容的你可以用以下步骤从Eclipse里更新ADT插件。
Eclipse 3.3 Europa Eclipse 3.4 Ganymede 1. 选择 Help gt Software Updates gt Find and Install.... 2. 选择Search for updates of the currently installed features 并点击 Finish. 3. 如果 ADT可以更新选择并安装更新。
或 1. 选择 Help gt Software Updates gt Manage Configuration. 2. 展开导航树并选择
Android Development Tools ltversiongt 3. Available Tasks 下选择 Scan for Updates。
1. 选择 Help gt Software Updates... 2. 选择标签页 Installed Software。
3. 点击 Update... 4. 如果 ADT允许更新选择它并点击 Finish. 安装注意事项 Ubuntu Linux 注意事项 ?? 如果你需要帮助安装和配置java在你的ubuntu机器上下面资源可能对你有帮助: o https://help.ubuntu.com/community/Java o https://help.ubuntu.com/community/JavaInstallation ?? 这里有java和Eclipsed的安装步骤先安装
Android SDK和ADT 插件. 1. 如果你你开发机上使用64位版本你需要用 apt-get安装 ia32-libs 包 apt-get install ia32-libs 2. 下一步安装 Java: apt-get install sun-java6-bin 3. Ubuntu 包管理器现在没有提供Eclipse 3.3版本下载因此我们推荐你从eclipse.org http://www.eclipse.org/ downloads/下载。
建议使用Java或RCP版本的Eclipse. 4. 按照前面部分的提供步骤来安装SDK和ADT插件. 其他版本 Linux 注意事项 ?? 如果你在安装Eclipse的ADT插件遇到这个错误: ?? An error occurred during provisioning. ?? Cannot connect to keystore. JKS 你的开发环境缺少适合的虚拟机安装 Sun Java 6可以解决这个问题然后你再重新安装ADT插件。
?? 如果JDK已经安装到你的开发电脑上请确定其版本在这页的顶部列表中已经列出有些Linux包含jdk1.4或者java的gnu编译器以上二者
Android不支持。
更新SDK 本指南将帮助您升级您的开发环境和应用程序到SDK的最新版暿 如果你已经应用了以前版本的
Android SDK 也需要使用本指南。
为了确保您的应用程序能够兼容
android1.0系统您需要安装新的SDK和用新的API移植现有的
android应用程序以下各节指导您完成这一进程。
安装新的SDK 下载SDK 并解压到一个安全的位置。
解压新的SDK以后 您应该完成下面的操作。
?? 擦除你的模拟器的数据 由于新的SDK版本发布一些数据格式改变了。
因此任何以前保存的模拟器数据必须清除。
打开一个控制台/终端和操作SDK中的/to ols目录。
启动模拟器瘿wipe-data的选项 Windows: emulator -wipe-data Mac/Linux: ./emulator -wipe-data ?? 更新您的PATH变量Mac/Linux可选 如果你以前设置PATH变量为指向的SDK tools目录那么您必须更新以指向新的SDK的。
E.g. .bashrc or .bash_profile file: export PATHPATH:ltyour_new_sdk_dirgt/tools 更新ADT Eclipse插件 如果您在Eclipse上使用ADT插件开发请按照下列步骤安装新的插件匹配新的SDK。
Eclipse 3.3 Europa Eclipse 3.4 Ganymede 1. 选择Help gt Software Updates gt Find and Install.... 2. 选择Search for updates of the currently installed features 并点击Finish. 1. 选择Help gt Software Updates... 2. 选择the Installed Software tab. 3. 点击 Update... 3. 如果任何ADT有效选择并安装 4. 重启 Eclipse. 4. 如果任何ADT有效选择并点击Finish 5. 重启 Eclipse。
重新启动之后更新您的Eclipse设置指向SDK目录。
1. 选择 Window gt Preferences... to open the Preferences panel. Mac OSX: Eclipse gt Preferences 2. 选择
Android from the left panel. 3. 对于在主面板中SDK的定位点击Browse... 并找到SDK的目录。
4. 点击 Apply 然后 OK. 建立应用程序签名 所有应用程序在安装它们之前都必须被签名。
ADT插件和ant为基础的开发工具都支持这一要求它们通过带一个调试KEY瘿apk文件来签发编译。
为了做到这一点编译工具使用包括在JDK的Keytool去创造一个keystore和带着一个已知的别名和密码一个key带着一个已知的别名和密码。
如需详细信息请查阅 签名你的应用程序. 为了支持签签名你应该首先确认Keytool对于SDK的编译工具是有效的。
在大多数情况下你可以告诉的SDK编译工具如何找到Keytool通过设置你的J AVA_HOME环境变量设置和一个合适的JDK。
另外您也可以添加keytool的JDK版本到您的PATH变量 如果你正在开发Linux的一个版本那原本使用的是GNU的JAVA编译嗿请确保该系统正在使用的Keytool的JDK版本而不是使用gcj如果keyt ool已经在您的路径它可能是指向在一个符号链接是/usr/bin/keytool 。
在这种情况下检查符号链接的目标以确保它指向正确的Keytool. 如果您使用的ant编译你的.apk文件而不是ADT你必须重新产生你的build.xml文件。
为了做到这一点请执行下列步骤 1. 在您的
android应用程序工程目录中找到并删除目前的build.xml文件 2. 2. 运行activitycreator 直接输出到包含您的应用程序项目的文件夹 3. - exec activitycreator --out your.activity.YourActivity 运行这种方式activityCreator不会擦出或创建新的Java文件或manifest文件对于那些已经存在的activity和package。
重要的是package和activity是真实存在的。
该工具创建一个新的build.xml文件以及一个新的目录称libsquot中这个目录将放置第三方jar文件这是你就能够使用ant脚本自动处理。
移植您的应用程序 更新过您的SDK以后 您可能会遇到破损的代码由于框架和API的变化。
您需要更新您的代码以匹配变化的Andriod的API。
一种方法是用Eclipse打开您的项目和查看你的应用程序中ADT的标记错误。
从这里你可以查找对应的变势 变化预览 and API变化报告. 如果您更新您的代码有其他麻烦请访问
android小组讨论 寻求帮助或者求助于其他
android开发人员. 如果已经修改了一个ApiDemos应用程序并希望移植到新的SDK的请注意您将需要卸载模拟器中预装的ApiDemos版本。
了解更多信息或运行或安装A piDemos遇到一个重新安装quot的错误见疑难解答论頿 因为签名错误我不能在我的IDE中安装ApiDemos应用程序 来获得解决这个问题的信息。
开发和调试 这一节将介绍在
android上开发调试应用程序。
它将教会我们如何创建编译运行以及调试
android代码。
或者你也可以从Hello
Android tutorial.开始 主要内容 1. 在eclipse上开发
android 应用程序 2. 利用其他IDE和工具开发
android应用程序 3. 给应用程序签名 4. ApiDemo 示例程序用法 5. 调试 6. 设备上的调试和测试设置 7. 顶端调试技巧 8. 编译安装一个
android应用程序 9. 移除
android程序 10. Eclipse 技巧 在eclipse上开发
Android应用程序 在用eclipse IDE开发
android应用程序之前你首先要创建一个
Android工程并且建立一个启动配置在此之后你才可以开始编写运行以及调试你的应用程序。
以下章节是假设你已经在eclipse环境中安装了ADT插件如果你没有安装请安装之后再使用以下说明。
参考 安装eclipse 插件ADT 创建一个
android工程 ADT提供了一个新的工程向导你可以快速的创建一个新的工程或者在现有代码上创建工程。
创建工程的步骤如下 选择File gt New gt Project 1. 选择
Android gt
Android Project 然后按下 Next 2. 选择项目内容: o 选择 Create new project in workspace 为编码创建一个全新的工程。
输入工程名称project name基础软件包的名称the base package name以及Activity 类的名称。
以创建stub .java文件等文件和程序名字。
o 选择Create project from existing source 为已有代码创建一个工程。
如果你想编译运行SDK中提供的示例程序可以使用这个选项。
示例程序的存放在SDK的samples/目录下。
浏览包含已有代码的目录点击ok如果目录中包含有可用的
android manifest 文件ADT将为你填写合适的软件包activity和应用程序名称。
3. 按下Finish. ADT插件会根据你的工程类型创建合适的文件和文件夹如下: ?? src/ 包含stub .java Activity文件的文件夹. ?? res/ 资源文件夹. ?? AndroidManifest.xml 工程清单. 创建一个启动项 能够在eclipse上运行调试应用程序之前你必须为它创建一个启动项。
启动项指定哪个工程将被启动哪个activity开始工作以及使用哪些模拟器选项等。
按照以下步骤为Eclipse版本的应用程序创建合适的启动项 1. 打开启动项管理工具。
o 在 Eclipse 3.3 Europa的版本中酌情选择 Run gt Open Run Dialog... or Run gt Open Debug Dialog... 。
o 在Eclipse 3.4 Ganymede版本中酌情选择 Run gt Run Configurations... or Run gt Debug Configurations... 。
2. 在左边的工程类型列表选择
Android Application选择双击或者点击右键选择new创建一个新的启动项。
3. 输入启动项名称。
4. 在
Android标签中浏览要开始的工程和Activity 。
5. 在Target标签中设置想要显示的屏幕及网络属性以及其他任何模拟器启动选项。
6. 你可以在Common标签中设置更多的选项. 7. 按下Apply保存启动配置或者按下Run或Debug。
运行和调试应用程序 一旦你设定了工程和工程启动配置你就可以按照以下的说明运行和调试应用程序了。
从eclipse主菜单根据情况选择RungtRun 或者 RungtDebug开始运行或者调试活动启动项。
注意这里活动启动项是在运行配置管理中最最近一次选中的那个。
它不一定就是在Eclipse Navigation 面板中选择的程序如果有的话 设置和修改活动启动项可以使用启动项管理工具。
如何获得启动项管理工具可以参考创建一个启动项 运行或调试应用程序将触发以下动作: ?? 启动模拟器如果他还没有开始运行。
?? 编译工程 如果在上次编译的基础上修改过代码将重新编译。
在模拟器上安装应用程序。
?? Run选项开始运行程序。
?? Debug 在quotWait for debugger quot模式下启动程序然后打开调试窗口并将Eclipse Java调试器和程序关联。
利用其他IDEs和工具开发
Android应用程序 通常我们使.