Android开发入门指南
更新时间:2023-07-26 02:19:01 阅读量: 实用文档 文档下载
Android开发入门指南
Android开发入门指南
目录
1 什么是ANDROID ?
2 Eclipse环境下安装开发
3 在其他平台下开发
4 Hello,Android例子
5 分析应用程序
编辑本段 回目录什么是ANDROID ?
Android是一个专用于移动设备的软件系统,它包括操作系统,中间件和关键应用,初略了解一下Android SDK提供必要的工具和API在Android平台上使用Java语言来开发应用程序。
特点:
应用程序框架 可重用和替换的组件
Dalvik 虚拟机[1] 优化虚拟机,专用于移动设备
集成浏览器 基于开源WebKit引擎
图像优化 功能强大的定制2D图像库,基于OpenGL ES 1.0 规范的3D图像(可以选择硬件加速)
SQLite 支持结构化数据存储
多媒体支持 支持通用的音频,视频格式,并且支持图像格式(MPEG4,H.264, MP3, AAC,AMR,JPG,PNG,GIF)
GSM 电话功能 依赖于硬件
Bluetooth, EDGE, 3G, and WIFI (依赖于硬件)
Camera, GPS, 指南针, 和加速计(依赖于硬件)
丰富的开发环境 包括设备仿真器,调试工具,跟踪内存使用和性能,并且可以嵌入Eclipse 集成开发环境
注 [1]:
google的Dalvik 虚拟机
Java 开发者的一个标准开发过程是:Java 代码编译成.JAR 和 .CLASS文件。 Google 开发了一个定制的虚拟机去运行这些类型的程序;这个虚拟机叫做DALVIK(根据冰岛的一名工程师最喜爱的地方命名的)。DALVIK 虚拟机特别为Android 平台定制,可以运行在嵌入式系统,并且在低功耗的条件下工作良好,它还可以根据cpu的特性进行调整。DALVIK虚拟机创建了一种特殊的文件格式(.DEX),它通过构建时间后处理来创建,这种文件可以下载到移动设备中运行。 Android 架构
下面的框图显示了Android操作系统的主要组件,你可以在后面的描述中看到更多详细的细节:
应用程序
Android将会集成一套核心的应用,包括email客户端,sms程序,日历,地图,浏览器,通讯录和其它。所有的这些应用程序使用Java语言编程。 应用程序框架
Android开发入门指南
开发者能够完全访问核心应用调用的框架API,应用程序结构设计用来简化组件的重用,所有核心应用都公开它的接口特性以便于其他应用调用(对于安全应用则带有强制性)。这种统一的机制可以允许其它用户替换组件。
Underlying all applications is a set of services and systems, including:
应用程序的底层就是一套服务和系统组件,包括:
一套丰富并且可扩展的控件,可以用来创建应用程序,包括lists,grids,text
boxes,buttons,甚至包括一个可嵌入的网页浏览器
数据提供者允许一个应用程序访问其他应用程序(比如通信录)的数据,或者共享它自己的数据
一个资源管理器,提供访问非代码资源,如本地化字符串,图像,布局文件的能力。
一个通告管理器 允许所有应用程序显示特定的警告信息在状态条上
一个任务管理器 管理应用程序的活动周期,并且提供通用的导航支持
(navigation backstack)
想了解更多的技术细节和应用程序演示,请访问编写一个Android 应用程序。 库
Android 包含一套C/C++库,可以被Android系统的各种组件使用,这些特性通过Android 应用程序框架开放给开发者,下面列出了核心库。
系统C函数库 从BSD标准c系统库继承的,基于嵌入式linux设备进行优化的版本。
多媒体库 -- 基于PacketVideo公司的OpenCORE库,该库支持录音回放,录制流行的声音和视频格式文件,以及静态图像文件,这些文件格式包括
MPEG4,H.264,MP3,AAC,AMR,JPG,和PNG.
界面管理 管理对显示子系统的访问,并且无缝合成不同的应用程序中的2D和3D图像层
LibWebCord – 一个流行的网页浏览器引擎,增强Android浏览器和嵌入式网页浏览的能力
SGL – 底层的2D 图像引擎
3D 库 – 一个基于OpenGL ES 1.0 APIs的版本,这个库既可以使用硬件3D加速(硬件支持)或者内置的,高度优化的3D软件光栅
字体类型 位图或者矢量字体
SQLite – 一个强大的轻量级关系数据库引擎,允许所有的应用程序使用
Android 运行库
Android 包括一套核心库,提供大部分可用功能可以在Java语言核心库中使用。每一个Android应用程序运行在自己的进程中,带有自己的Dalvik虚拟机实例。Dalvik设计成一个设备能够方便地运行不同虚拟机。Dalvik虚拟机执行Dalvik可执行格式文件, .Dex文件被优化成使用内存很少的文件.虚拟机是基于类注册的,它运行Java编译器‖dx‖工具编译classes生成的.dex格式文件。 Dalvik 虚拟机依赖于Linux内核功能,比如线程化和低级的内存管理。
Linux核
Android 依赖于linux内核2.6版本,需要linux提供的核心系统服务为安全,内存管理,进程管理,网络协议栈,驱动程序模型等,内核也作为硬件和其它软件层(不包括内核)的中间抽象层
Android开发入门指南
编辑本段 回目录Eclipse环境下安装开发
开发机器配置
Windows XP or Vista
Mac OS X 10.4.8 or later
Tested on Linux Ubuntu Dapper Drake
Eclipse Java版集成开发环境
Eclipse 3.2, 3.3 (Europa)
Android Development Tools Plugin (optional)
Any other environment or IDE 其它环境或者集成开发环境
Java SE Development Kit 5 or 6 (JRE alone is not sufficient)
Not compatible with Gnu Compiler for Java (gcj)
Apache Ant 1.6.5 or later for Linux and Mac, 1.7 or later for Windows
安装SDK
下载SDK之后,解压缩.zip档至你的机器中一个合适的路径,对于这个文档的其余部分,我们将把你安装SDK的路径赋给环境变量$SDK_ROOT
你可以选择将$SDK_ROOT/tools添加到你的系统环境变量中去。
· 在Linux系统下,编辑你的配置文件~/.bash_profile 或者~/.bashrc file。 查找设置环境变量的行并把$SDK_ROOT/tools的完整路径添加进去,如果你没有找到这一行,你可以添加下面的代码
export PATH=${PATH}:<path to your $SDK_ROOT/tools>
· 在Mac系统中,查找你的根目录下的.bash_profile文件,和Linux系统下的操作一样。如果你没有在你的机器上设置.bash_profile文件,你可以创建它。 · 在Windows下,右击我的电脑,选择属性,在高级选项页中,点击环境变量按钮,在弹出的对话框中,双击系统变量,添加$SDK_ROOT/tools的完整路径到其中。
添加$SDK_ROOT/tools 到你的系统路径中可以使你能够运行ADB和其他的命令行工具而不需要输入完整的工具路径。需要提醒的是,如果你升级SDK并且更改了安装路径,你不要忘记更新你的path设置路径到新的位置。
安装Eclipse环境下的ADT插件
如果你想使用Eclipse集成开发环境作为你开发Android应用程序的环境,你需要安装叫做Android开发工具(ADT)的插件,该插件添加对Android工程和工具的完整支持。ADT插件包含的强大扩展功能,可以使创建,运行和调试Android应用程序速度更快,时间更短。
如果你不想使用Eclipse IDE,你不需要下载安装ADT插件。
要下载和安装ADT插件,根据如下所述设置一个Eclipse远程更新站点:
1. 启动Eclipse,选择Help>Software Update>Find and Install…
2. 在出现的对话框中,选择Search for new features to install,点击Next
3. 点击New Remote Site.
4. 在弹出的对话框中,输入一个远程站点的文件名(如:Android Plugin),再输入它的URL。https:///android/eclipse/. 点OK.
5. 你将看到新的站点添加到搜索列表中,选择后点击 Finish
6. 在后面的搜索结果对话框中,选择选择框Android 插件>Ecslipse 集成>Android开发工具,点击Next。
7. 阅读许可协议后,选择接受许可协议中的条款,如果无异议,选择Next。
Android开发入门指南
8. 点击Finish。
9. ADT插件没有标示,你只能选择Install All 安装
10. 重启Eclipse.
11. 重启之后,升级你的Eclipse参数,指向SDK根目录($SDK_ROOT):
a. 选择 Window > Preferences... 打开参数选择面板
(Mac OS X: Eclipse > Preferences))
b. 在面板左边选择Android
c. 在主面板的SDK存储位置处,点击Browse...选择SDK根目录
d. 点击Apply,然后点击OK
升级ADT插件
升级ADT插件到最新版,需要依照一下步骤:
1. 选择Help > Software Updates > Find and Install....
2. 选择Search for updates of the currently installed features然后点击Finish.
3. 如有列表中有可以升级的版本,选中以后安装。
或者,
1. 选择Help > Software Updates > Manage Configuration.
2. 展开树结构,选择Android Development Tools <version>
3. 选择 Available Tasks 下面的Scan for Updates
在Eclipse上开发Android应用程序
在Eclipse IDE中开发Android应用程序之前,你可以首先创建一个Android工程并设置一个运行配置,然后,你就可以编写,运行,调试你的应用程序了,赶快行动吧。 在介绍下面的章节前,假定你已经安装了ADT插件在你的Eclipse环境中,如果你还没有安装,你应该先完成安装,参照安装ADT插件一节获取更多的信息。
创建一个Android工程
ADT插件提供新工程向导,用来为已经存在的代码快速创建一个Eclipse工程,创建工程根据以下步骤:
1. 选择File > New > Project
2. 选择Android > Android Project, 然后点击Next
3. 选择工程内容:
o 选择 Create new project in workspace启动一个工程并开始代码编辑. .
输入工程名,基本包名,简单实体类名来创建原始.java文件,还需要输入一个应用程序名。
o 选择Create project from existing source从现有代码来启动一个工程.如果你想创建和运行SDK包含的例子程序,你可以使用这个选项。例子程序在SDK的../samples目录下,浏览这个包含原码的目录,点击OK,如果这个目录包含一个合法的Android证明文件,ADT插件将为你填充包,实例,应用程序名。
4. 点击Finish.
ADT插件为适当的工程类型创建下面的文件夹和文件
· src/ 一个文件包含你的原始.java实例文件的文件夹.
· res/ 一个资源文件夹.
· AndroidManifest.xml 工程的注册文件.
创建一个启动配置
Android开发入门指南
在Eclipse中运行和调试你的应用程序之前,你必须为你的工程创建一个启动配置。一个启动配置指定了工程启动,实例启动,仿真器选项使用和启动。为了创建一个启动配置,你需要按以下步骤:
1. 选择 Run > Open Run Dialog... 或者 Run > Open Debug Dialog... 中比较合适的一个
2. 在左边的工程类型列表中,右击Android Application 并且选择New。
3. 输入配置的命名
4. 在Android 选项页,浏览需要启动的工程和实例。
5. 在仿真器选项页,设置需要的屏幕和网络属性,和其它一些仿真器启动选项。
6. 你可以在通用选项页设置附加的选项。
7. 点击应用,保存启动配置, 或者点击Run或 Debug (根据需要).
运行和调试应用程序
一旦你为你的应用程序设置了工程和启动配置,你就可以按下面所述运行和调试它。从Eclipse主目录中,根据需要选择Run > Run 或者 Run > Debug,来运行或者调试活动的启动配置,需要注意的是,活动的启动配置是在运行配置管理器中最近选择的一个。它并不一定是Eclipse导航面板中当前选择的应用程序。
To set or change the active launch configuration, use the Run configuration
manager, which you can access through Run > Open Run Dialog... or Run > Open Debug Dialog....
设置或者修改活动的启动配置,使用运行配置管理器,选择步骤是Run > Open Run Dialog... 或者Run > Open Debug Dialog....
运行或者调试应用程序触发下列动作:
· 如果仿真器没有运行,启动仿真器,
· 编译工程,如果上次创建和下载应用程序到仿真器上之后应用程序有改变,重新编译工程。
· 运行启动当前应用程序
调试用等待调试器模式启动这个应用程序,然后打开调试程序窗口,将Eclipse Java 调试器连接到应用程序。
编辑本段 回目录在其他平台下开发
使用其它的集成开发环境和工具开发Android应用程序
推荐使用开发Android应用程序的开发环境是Eclipse+Android插件,该插件提供集成到Eclipse中的编辑,创建和调试功能。然而,SDK包含能让你使用集成开发环境进行开发的工具,包括intelliJ(所以你最好使用Eclipse+ADT进行开发)。 创建一个Android 工程
Android SDK 包括工具activityCreator,这个工具能够为你的工程生成一系列的原始文件和一个工程文件。你也可以使用该程序从已存在的代码创建一个Android工程,例如SDK中包含的例子程序。对Linux平台和Mac平台来说,SDK提供
activityCreator.py,一个Python脚本语言,对Windows平台而言,则是
activityCreator.bat,一个批处理脚本。由于具有平台无关性,你可以用相同的方法使用activityCreator工具。
要运行activityCreator工具创建一个Android工程,需要依照以下步骤:
1. 在命令行,改变SDK的tools/ 路径,创建一个新的项目文件路径。如果你从已存在的代码中创建工程,设置你的根目录到你的应用程序目录下。
Android开发入门指南
2. 运行activityCreator.在命令行,你必须指定一个具备条件的类名作为参数。如果你创建一个新的工程,这个类代表脚本创建的原始类的名字。如果你从现有代码创建一个工程,你必须指定包中实体类的名字。这个脚本的命令选项包括:
o --out <路径> 设置输出的路径。默认情况下,输出路径是当前路径。如果你为你的工程文件创建一个新的文件路径,使用这个命令选项设定它
o --ide intellij, which generates IntelliJ IDEA project files in the newly created project
--ide intellij 在新创建的工程中生成Intellij IDEA工程文件
下面是一个例子: 复制到剪贴板 Java代码
1. ~/android_linux_sdk/tools$ ./activityCreator.py --out myproject your.
.ActivityName
2. package:
3. out_dir: myproject
4. activity_name: ActivityName
5. ~/android_linux_sdk/tools$
activityCreator脚本生成下面的文件和路径(不会覆盖已存在的文件和路径) · AndroidManifest.xml应用程序注册文件,与工程的实体类同步
· build.xml一个阿帕奇蚂蚁文件,你可以用来创建/打包应用程序
· src/your/package/name/ActivityName.java 你指定输入的实体类
· your_activity.iml, your_activity.ipr, your_activity.iws [only with the -ide intelliJ flag] intelliJ工程文件.
· res/ 存放资源的路径.
· src/ 源代码路径.
· bin/ 创建脚本输出路径
你现在可以将你的文件夹移动到任何你想要存放的位置,不过需要注意的是,你必须在tools目录下使用adb程序,从而将文件发送至仿真器。因此,你必须经常在你的工作路径和tools两个目录下来回切换。
同样,你应该避免将文件夹移动到SDK目录下,这样会中止创建脚本工作(在你重新开始工作之前,脚本需要手工更新至新的SDK路径)。
创建一个Android应用程序
使用activityCreator创建的蚂蚁文件来生成你的应用程序。
1. 如果还没有阿帕奇蚂蚁,那么你可以从Apache蚂蚁主页上获得并且安装,并且确保它存在于你的可执行路径中。
2. 在使用蚂蚁之前,你需要定义JAVA_HOME 环境变量为你安装Java jdk的路径。
注意:当你安装JDK到windows系统时,默认的安装路径是‖Program Files‖。这个路径会导致蚂蚁运行失败,因为空格的原因。为了修复这个问题,你可以这样指定JAVA_HOME变量:set JAVA_HOME=c:\Prora~1\Java\.更简单的解决办法是安装JDK到不包含空格的路径下,例如:c:\java\jdk1.6.0_02.
3. 如果你还没有做好这些准备工作,请按照前面创建一个新的工程的介绍来进行准备。
4. 现在你可以在build.xml文件所在目录下简单地输入ant命令运行蚂蚁创建文件.每次需改文件或者资源之后,你都需要重新运行蚂蚁,蚂蚁会帮你打包最终版本
Android开发入门指南
的程序并且进行配置。
运行一个Android程序
运行一个编译好的程序,你可以使用adb 工具上载.apk文件到仿真器的 /data/app目录下,步骤如下:
1. 启动仿真器(从命令行运行$SDK_HOME/tools/emulator)
2. 在仿真器上,滚动桌面导航条(装入应用程序时,最好能保证相同的程序没有运行,点击 Home键从该应用程序返回到桌面导航条)
3. 运行adb install myproject/bin/<appname>.apk来装入可执行文件.So,例如,要装入Lunar Lander 例子程序,在命令行切换路径至
$SDK_ROOT/sample/LunarLander,输入 ../../tools/adb install bin/LunarLander.apk.
4. 在仿真器中,打开可用应用程序列表,向下滑动,选中并且启动你的应用程序。 注意:当你第一次安装一个实例时,你可能必须在仿真器显示应用程序启动器或者其它应用程序条用它之前重新启动。这是因为包管理器只有在仿真器启动的时候才会扫描注册文件。
连接调试器到应用程序
这一节介绍如何在屏幕上显示调试信息,并且如何让你的集成开发环境在仿真器上调试运行应用程序。
设置一个自动使用Eclipse插件的调试器,你可以配置其它IDE在某一个端口监听并且接受调试信息。
1. 启动Dalvik 调试监视服务器(DDMS)工具,这个工具启动连接你的集成开发环境和仿真器的作用。
2. 在你的仿真器上设置可选的调试信息配置例如如果没有连接调试器则阻止应用程序启动。注意许多调试选项可以在没有DDMS的情况下使用,比如显示仿真器上的cpu使用率或者屏幕刷新率。
3. 配置你的集成开发环境到8700端口来进行调试,在如何设置Eclipse调试你的工程部分你能看到更多的信息。
设置你的IDE连接到调试端口
DDMS 将分配一个特定的调试端口到仿真器上找到的每一个虚拟机,你可以连接你的IDE到该端口(在虚拟机的信息选项页),或者你可以使用默认的8700端口连接到在发现的虚拟机列表中选中的应用程序。
你的IDE应当可以连接你的仿真器上运行的应用程序,显示线程,允许你挂起它们,检查状态和设置断点。如果你在开发设定面板中选择‖等待调试器‖,应用程序将在Eclipse连接时运行,因此,你需要在连接之前设置你需要你的断点。
改变调试中的应用程序或者‖等待调试器‖选项都会导致系统杀掉选中的应用程序,如果应用程序正处于运行状态。你可以利用这一点来杀掉异常状态的应用程序,只需要到设置选中该‖等待调试器‖选择框即可。
调试
Android有一系列丰富的工具来帮助你调试你的程序:
· DDMS – A 图形化的程序,支持端口发送(因此你可以在你的IDE代码中设置端点),获取仿真器屏幕图像,线程和栈信息,和许多其它的特性。你也可以运行logcat程序来获取你的日志信息。参见相关主题获取更多的信息。
· Logcat – 导出系统消息日志工具. 这些消息包括一个仿真器丢出错误时的栈信息追踪以及消息日志,运行logcat,参见logcat主题。
复制到剪贴板 Java代码
Android开发入门指南
1. ...
2. · I/MemoryDealer( 763): MemoryDealer (this=0x54bda
0): Creating 2621440 bytes heap at 0x438db000
3. · I/Logger( 1858): getView() requesting item number 0
4. · I/Logger( 1858): getView() requesting item number 1
5. · I/Logger( 1858): getView() requesting item number 2
6. · D/ActivityManager( 763): Stopping: HistoryRecord{409db
b20 com.google.android.home.AllApps}
7.
Android 日志 – 一个记录消息到仿真器日志文件的日志类。如果你DDMS(后面会介绍)上运行logcat,你可以实时读取这些消息。调价一些日志方法调用到你的代码。使用Log 类,你可以调用Log.v()(详细),Log.d()(调试),Log.i() (信息),Log.w()(警告)或者Log.e(error),根据你希望设定的日志消息重要性类型来获取日志。Log.i("MyActivity", "MyClass.getView() —获取条目数" +位置)
你可以使用logcat来读取这些消息。
· TraceviewAndroid 能保存方法调用以及次数日志到一个日志文件,你可以通过一个叫做Traceview的图形化阅读器来浏览这些日志,想了解更多信息,你可以参考相关主题
· Eclipse plugin -插件集成了一系列的工具(ADB,DDMS,logcat 输出和其它功能),参考相关主题连接获取更多信息。
· 调试和测试设置- Android公开了一些显示有用信息比如cpu使用情况和内存使用率等,参考下面的:仿真器的调试和测试设置
同样,参考文档的解决问题部分可以找出为什么你的应用程序没有显示到仿真器上,或者没有启动。
设备上的调试和测试设置
Android 提供一些列的设置,可以让你更简单的测试和调试你的应用程序。通过选择 Dev Tools〉Development Settings进入仿真器的开发设置页面。打开的页面包含下述重要选项(其它未列出):
· 调试应用程序选择将要调试的应用程序,你不需要选择这个设置来连接调试器,但是选择这个有两个效果:
o 如果你调试德时候在一个端点停留时间过长,它能阻止Android抛出一个错误
o 它能让你通过选择等待调试器选项来实现(在没有连接到调试器时)暂停程序启动直到连接到调试器(后面有详细描述)
· 等待调试器阻塞正在启动的选中应用程序直到连接上调试器。用这个办法你可以设置一个断点在onCreate()函数中,这对于调试一个实体的启动进程是非常重要的。当你改变这个选项,选中应用程序的任何正在运行的实例将会被杀掉。为了检查这个选项,你必须选择一个设置前上一个选项的正在调试的应用程序。你可以添加waitForDebugger()到你的代码来实现相同的功能。
· 立即销毁实例(Activities)通知系统在结束前尽快去销毁实例(仿佛Android必须回收内存),这对于测试onFreeze(Bundle) / onCreate(android.os.Bundle)代码路径,这种情况下难以强制执行。(which would otherwise be difficult to force)。设置这个选项将会在你的应用程序中出现一系列的错误,因为没有保存状态。
Android开发入门指南
· 显示屏幕刷新 在屏幕重画的区域瞬间画一个粉红的矩形,这对于查找不必要的屏幕刷新是非常有用的。
· 显示CPU 使用率在屏幕顶端显示CPU使用率,表示CPU使用百分比,顶端的红条表示全部使用,底下的绿条显示CPU合成屏幕图像的时间。注意:一旦你开启这个设置之后,不管你是够重启仿真器,都不能关闭它。
· 显示屏幕FPS(frame per second) 显示当前的帧率,通常在游戏中测试能够达到的帧率。注意:一旦你开启知道,你就不能关闭这个设置,不过你是否重新启动仿真器。
· 显示背景 当没有活动的窗口显示时,系统会显示背景图案,一般情况下不会发生这种情况,但是调试过程中有可能会发生。
这些设置在仿真器重启之后也会继续被保存。
常用的调试技巧
快速栈(信息)导出
从仿真器获取栈导出,你可以使用adb shell来记录日志,使用‖ps‖命令来查找你希望的进程,通过‖kill -3‖命令将其杀掉.栈追踪将在日志文件中显示这些记录。 在仿真器屏幕上显示需要信息
这个设备可以显示有用的信息,如cpu使用率或者在刷新区高亮显示.打开或者关闭这些开发设置的详细细节可以参考在仿真器上设置调试和测试配置部分
从仿真器获取系统信息(dumpstate)
你可以从DDMS工具访问dumpstate信息,参考adb主题页的dumpsys和dumpstate部分
从仿真器获取应用程序信息(dumpsys)
你可以从DDMS工具反问dympsys信息. 参考adb主题页的 dumpsys和dumpstate 部分
获取无线连接信息
你可以从DDMS工具获取无线连接信息.从Device菜单选择‖Dump radio state‖. 记录跟踪数据日志
你可以通过调用Android.os.Desbu.StartMethodTracing()方法来记录函数调用和其它跟踪数据,想了解更多细节,请参考运行Traceview调试程序部分。
记录无线数据
默认情况下,无线信息并没有被记录在系统内(因为数据量比较大).然而,可以通过下面的命令来开启无线日志。
adb shell
logcat -b radio
运行adb.
Android集成一个本地工具adb,它提供不同的功能,包括移动和同步文件到仿真器,转发端口和在仿真起上运行一个unix 外壳程序(shell),想了解更多细节,请参考使用adb部分。
从仿真器截取屏幕
Dalvik调试监视服务器(DDMS)可以捕获仿真器屏幕快照。
使用帮助类调试
Android提供帮助类如util.Log和Debgu类来为你提供方便。
创建和安装一个Android应用程序
Android需要定制的创建工具,这些工具能够用来适当的创建Android应用的资源文
Android开发入门指南
件和其它部分。应为这些原因,你必须为你的应用设置专门的创建环境。
一般的Android编译步骤包括编译XML文件和其它的资源文件,创建适当的输出文件格式。一个编译通过的Android应用事一个.apk文件,这个压缩文件包含.dex文件,资源文件,原始数据文件和其它文件。你可以通过新创建,或者从已经存在的代码创建一个适当的结构化的Android工程.Android现在并不支持使用C/C++开发第三方应用程序。
推荐的开发Android应用程序的方法是使用Eclipse +ADT,这套工具提供创建,运行和调试Android应用程序。
如果你有令外的IDE,Android提供其它IDE下的工具来创建和调试Android应用程序,不过这些工具还不完整.
删除一个Android应用程序
删除一个安装在仿真器上的应用程序,你需要运行adb,同时删除安装应用程序时发送到仿真器上的.apk文件.使用adb shell 载入一个shell到设备上,见连接主题的描述,然后使用rm your_app.apk命令删除这个文件
Eclipse技巧
Executing arbitrary Java expressions in Eclipse
在Eclipse中执行任意的Java表达式
你可以在Eclipse调试暂停时执行任意的代码。例如:在一个带有字符串‖Zip‖的函数中,你可以获取包信息并且调用类方法。你也可以调用任意的静态方法:例如输入android.os.Debug.startMethodTracing()将启动dmTrace。打开代码执行窗口,从主菜单中选择Window>Show View>Display来打开显示窗口,一个简单的文本编辑器。输入你的表达式,高亮显示文本,点击’J’图标(或者CTRL+SHIFT+D)来运行你输入的代码。这些代码运行在你选定的线程上下文中,该线程必须停在断点处或者出于单步调试点(如果你挂起这个线程,你必须单步执行一次,如果线程处在Object_wait()函数中,代码将不能执行),
如果你正暂停在断点处,你可以使用CTRL+SHILF+D组合键简单高亮显示并且执行一段代码,你也可以使用一组组合键高亮显示一块文本,按下ALT+SHIFT+UP箭头增加选择临近的块文本,或者ALT+SHIFT+DOWN箭头缩小选中块。
这里是几个在Eclipse中使用显示窗口输入表达式和输出响应的例子:
你可以在没有调试时使用剪贴簿页来执行任意的代码,在Eclipse文档中搜索‖剪贴簿‖
手工运行DDMS
尽管推荐使用ADT 插件来调试,你也可以使用DDMS和配置Eclipse在8700端口来调试。(注意:确认你启动过一次DDMS)
Android开发入门指南
编辑本段 回目录Hello,Android例子
第一印象很重要,作为一个开发者,你知道获取一个开发框架第一印象的方法就是写一个‖Hello,Word!‖,那么,在Android中,这很简单,下面就是实现步骤:
· 创建工程
· 构建用户界面
· 运行: Hello, Android 代码
The sections below spell it all out in detail.
下面的部分是详细解释:
· 压缩UI到XML版面
· 调试你的工程
· 不依赖Eclipse创建工程
激动人心的时候到了,赶紧上路吧!
第一印象很重要,作为一个开发者,你知道获取一个开发框架第一印象的方法就是写一个‖Hello,Word!‖,那么,在Android中,这很简单,下面就是实现步骤:
· 创建工程
· 构建用户界面
· 运行: Hello, Android 代码
The sections below spell it all out in detail.
下面的部分是详细解释:
· 压缩UI到XML版面
· 调试你的工程
· 不依赖Eclipse创建工程
激动人心的时候到了,赶紧上路吧!
创建工程
创建工程非常简单。一个Eclipse插件可以使Android开发更快捷。你需要安装Eclipse3.3(Europa)或者更高版本,并且你需要安装 Eclipse下的Android插件,一旦你安装了这些程序,马上回来。
First, here's a high-level summary of how to build "Hello, World!":
首先,下面是高度概括的关于如何创建‖Hello,World!‖的描述。
1. 通过 File>New>Project menu创建一个新的‖Android 工程‖.
2. 在新的Android工程对话框中填入项目细节。
3. 编辑自动生成的源代码模版,显示相关的输出。
接下来,我们一步一步详细描述整个过程。
1. 创建一个新的Android项目
从Eclipse中,选择 File>New>Project菜单项.如果AndroidADT成功安装,这个对话框将由一个命名为 ―Android‖的文件夹,该文件夹包含一个简单的入口: ―Android 工程‖。
一旦你选择了―Android 工程‖,点击Next 按钮。
2. 填入工程细节
显示出来的窗口允许为你的工程输入相应的资料细节,下面是一个例子:
Android开发入门指南
下面是屏幕显示窗口中每一个域的含义:
储位置。
3. 编辑自动生成的源代码
插件运行后,你将获得类似下面的一个名为HelloAndroid的类。
复制到剪贴板 Java代码
1. public class HelloAndroid extends Activity
2.
3. {
4.
5. /** Called when the activity is first created. */
6.
7. @Override
8.
Android开发入门指南
9. public void onCreate(Bundle icicle)
10.
11. {
12.
13. super.onCreate(icicle);
14.
15. setContentView(yout.main);
16.
17. }
18.
19. }
20.
下面要做的就是开始对它进行修改!
构建用户界面
一旦你设置好工程之后,接下来的步骤就是在屏幕上输入代码。下面是完成以后的工程-接下来我们会一行一行的分析。 复制到剪贴板 Java代码
1. public class HelloAndroid extends Activity {
2.
3. /** Called when the activity is first created. */
4.
5. @Override
6.
7. public void onCreate(Bundle icicle) {
8.
9. super.onCreate(icicle);
10.
11. TextView tv = new TextView(this);
12.
13. tv.setText("Hello, Android");
14.
15. setContentView(tv);
16.
17. }
18.
19. }
20.
在Android中,用户界面由称作视的类及子类构建而成,一个视就是一个简单的可绘制的对象,比如单选框,动画或者(在我们例子中的)文本标签。这个特定的处理文本的视子类叫做TextView。
下面显示如何构造一个TextView类。
TextView tv = new TextView(this);
Android开发入门指南
Text构造函数的参数是一个Android上下文实例指针.这个上下文是一个简单的系统句柄,它提供处理资源,获取对数据库和参数选择的访问等等。实体类从Context类集成而来.虽然我们的HelloAndroid类是一个实体子类,它也是一个Context类,因此我们可以传递’this’引用到TextView.:
一旦我们构造了TextView,我们需要告诉它显示什么:
tv.setText("Hello, Android");
这个没有什么意外。
在这里,我们构造了一个TextView并且告诉它显示什么,最终的步骤就是将TextView和屏幕显示联系起来,如下:
setContentView(tv);
实体中的setContentView()方法将视必须和实体的用户界面关联起来,并显示内容到系统上。如果一个实体没有调用这个方法,系统中将没有UI存在并且系统会显示黑屏。我们希望显示一些文字到屏幕上,所以我们传递context到我们刚创建的TextView中。
这就是Android中的 –―Hello,World‖,下一步,当然,赶紧看看运行的效果吧! 注意:生成的代码中需要添加一行代码如下
Import android.widget.TextView;
否则会出现下面的错误提示
TextView can’t be resolved to a type;
运行代码:Hello,Android
Eclipse插件使运行应用程序变得更加容易。从这个菜单入口开始:Run>Open Run Dialog;你将看到如下所示的对话框。
下一步,选中‖Android Application‖,然后点击左上角的图标(显示一页纸并且左上角带一个加号的图标)或者简单的双击一下‖Android Applicton‖入口,你将看到一个命名为‖New_configuration‖的启动器。
Android开发入门指南
将名字改为比较有意义的,比如‖Hello,Android‖,然后通过点击浏览按钮选择你的工程,(如果你在Eclipse中打开了不止一个Android工程,请确保选择正确的一个.)该插件自动扫描你的工程中的实体子类,并将每一个添加到实体下拉列表中,由于你的‖Hello,Android‖工程只有一个实体,所以它就是默认的一个,你只需要简单继续就可以.
点击‖应用‖按钮,下面是例子:
棒极了—你已经全部完成!点击Run按钮,,Android仿真器就会运行。一旦仿真器启动之后,你的应用程序显示出来,让人激动的时候到了,你将看到类似合格的界面:
Android开发入门指南
这个就是Android的‖Hello,World‖的例子,非常简单吧?指南接下来的部分将提供更多的细节,当你学习更多关于Android的内容之后,你会发现很多有价值的东西。
将用户界面转化成XML布局
你刚刚完成的―Hello,World‖的例子使用了我们称作‖programmatic‖的UI布局。这意味着你直接使用代码来构造和创建应用程序用户界面。如果你完成大量的用户界面编程,你可能会意识到这种方法有时是多么的脆弱:一个版面小小的改动导致大量的源码问题.同时也非常容易忘记连接适当的视图,这都会导致你的版面错误,并且浪费大量的时间来调试代码。
这就是为什么Android提供一个动态的UI 构造模型:基于XML的布局文件。最简单的阐明这个概念的方法就是举一个例子。下面是一个XML布局文件,在行为上它和上面你刚刚完成的使用程序构建的例子完全相同。
复制到剪贴板 XML/HTML代码
1. <?xml version="1.0" encoding="utf-8"?>
2.
3. <TextView xmlns:android="/apk/res/andr
oid"
Android开发入门指南
4.
5. android:layout_width="fill_parent"
6.
7. android:layout_height="fill_parent"
8.
9. android:text="Hello, Android"/>
10.
普通结构的Android XML布局文件是简单的.它是一个标记树、每一个标记都是一个试图类.在这个例子中,他是一个非常简单的树,只有一个元素TextView。你可以在你的布局文件中使用任何试图派生类的名字作为你的标记名,包括在你自己代码中定义的视图类。这种结构使得创建许多用户界面变得非常简单,只需要使用一个简单的结构和语法,相比较使用代码实现要容易得多。这个模型是从web开发模型中得到的灵感,在web开发中,你可以从你的应用程序逻辑中分离用户界面,然后再组合起来并填充数据。(This model is inspired by the web development model, where you can separate the presentation of your application (its UI) from the application logic used to fetch and fill in data.这句话不是很明白,所以翻译很牵强)
In this example, there are also four XML attributes. Here's a summary of what they mean:
这个例子中,有四个XML属性。下面是它们含义的概述:
因此,这就使XML布局看起来的样子,但是它们放在什么地方呢?就在你的工程的res/路径下。‖res‖是‖resources‖的简写,它包含你的项目需要的所有非代码资源,包括图像,本地化字符串和XML布局文件。
Eclipse插件为你创建这些XML文件.在我们上面的例子中,我们简单地显示了一下。在包浏览器中,展开res/layout文件夹,编辑main.xml文件.用上面的文本替换并且保存修改。
现在打开包浏览器中源代码文件夹中的名为R.java的文件,你将看到如下的代码。
复制到剪贴板 Java代码
1. public final class R {
2.
3. public static final class attr {
4.
Android开发入门指南
5. };
6.
7. public static final class drawable {
8.
9. public static final int icon=0x7f020000;
10.
11. };
12.
13. public static final class layout {
14.
15. public static final int main=0x7f030000;
16.
17. };
18.
19. public static final class string {
20.
21. public static final int app_name=0x7f040000;
22.
23. };
24.
25. };
26.
一个工程的R.java文件定义了所有资源的索引。在你的代码中使用这个类作为你个比较快捷的方法去访问你的工程能够中的资源。对于像Eclipse这样子具有自动生成代码特性的IDE来说尤为功能强大,因为它可以让你快速和交互地定位你搜索的特定引用。
最重要的事情是注意到的事名为‖layout‖的内部类, 和它的成员域‖main‖。
Eclipse插件会侦测到你添加了一个新的XML布局文件和重新生成的这个R.java文件,当你添加了新资源到你的项目中之后,你会发现R.java自动跟新。
最后要做的就是使用你的UI的新版本的XML文件修改你的HelloAndroid源码,以取代纯粹使用代码来修改。下面是你的新类看上去的样子,正如你所见,源码变得十分简单。
复制到剪贴板 Java代码
1. public class HelloAndroid extends Activity {
2.
3. /** Called when the activity is first created. */
4.
5. @Override
6.
7. public void onCreate(Bundle icicle) {
8.
Android开发入门指南
9. super.onCreate(icicle);
10.
11. setContentView(yout.main);
12.
13. }
14.
15. }
16.
当你做这些修改时,不要只是拷贝和粘贴,试用以下R类的代码完成特性,你能发现它很有帮助。做完这些修改之后,回到前面重新运行你的应用程序-你需要做的所有事情就是点击那个绿色的Run 箭头图标,或者从菜单中选择 Run>Run Last Launched。你将看到…哦,正如你前面看到的一样,非常神奇!
最后,需要指出的是,这两种不同的布局产生的是完全一样的结果。
创建XML布局还有很多内容,不过这已经超出了我们这里讨论的范围。想了解这种强大的功能,请参考 实现一个用户界面 的文档。
调试你的工程
The Android Plugin for Eclipse also has excellent integration with the Eclipse debugger. To demonstrate this, let's introduce a bug into our code. Change your HelloAndroid source code to look like this:
Eclipse下Android插件提供了与Eclipse调试器的完美集成。为了演示这一点,让我们引入一个bug到代码中。如下所示修改你的HelloAndroid源代码。
复制到剪贴板 Java代码
1. public class HelloAndroid extends Activity {
2.
3. /** Called when the activity is first created. */
4.
5. @Override
6.
7. public void onCreate(Bundle icicle) {
8.
9. super.onCreate(icicle);
10.
11. Object o = null;
12.
13. o.toString();
14.
15. setContentView(yout.main);
16.
17. }
18.
19. }
正在阅读:
Android开发入门指南07-26
深圳住房公积金专办员考试题(整理)05-15
建设项目建议书的内容12-29
宏微观11-02
阜阳市机织服装行业企业名录2018版620家 - 图文11-25
金相检验作业指导书 - 图文03-24
天津市人民政府批转市城镇住房制度改革办公室关于全面推进住房货币分配工作实施意见的通知10-15
选厂、尾矿库安全生产知识考试卷(含答案)03-13
一本书引起的风波作文600字06-21
- 教学能力大赛决赛获奖-教学实施报告-(完整图文版)
- 互联网+数据中心行业分析报告
- 2017上海杨浦区高三一模数学试题及答案
- 招商部差旅接待管理制度(4-25)
- 学生游玩安全注意事项
- 学生信息管理系统(文档模板供参考)
- 叉车门架有限元分析及系统设计
- 2014帮助残疾人志愿者服务情况记录
- 叶绿体中色素的提取和分离实验
- 中国食物成分表2020年最新权威完整改进版
- 推动国土资源领域生态文明建设
- 给水管道冲洗和消毒记录
- 计算机软件专业自我评价
- 高中数学必修1-5知识点归纳
- 2018-2022年中国第五代移动通信技术(5G)产业深度分析及发展前景研究报告发展趋势(目录)
- 生产车间巡查制度
- 2018版中国光热发电行业深度研究报告目录
- (通用)2019年中考数学总复习 第一章 第四节 数的开方与二次根式课件
- 2017_2018学年高中语文第二单元第4课说数课件粤教版
- 上市新药Lumateperone(卢美哌隆)合成检索总结报告
- 入门指南
- Android
- 开发
- 华琦:老年单纯收缩期高血压患者 降压治疗新进展
- 基于UG平台的变位斜齿轮参数化设计与建模
- 北师大版二年级下册数学期末检测试卷 (2)
- 第47344号第三节 原子结构的模型(第2课时)
- 事件调查,不符合、纠正与预防措施控制程序
- 冷库冷负荷计算表
- Book report of Jane Eyre
- 英语四级听力模拟训练试题(十五)
- 最全广州一日游攻略
- 第四章_广告诉求策略
- 最新版北师大版八年级上5.3应用二元一次方程组——鸡兔同笼
- 适应隧道机械化施工的机械管理
- 思想品德:第一单元2.3《男生女生》训练题(粤教七上)
- 国学经典考试复习题
- 《醉翁亭记》导学案2
- 中央财经大学金融服务法考研 招生人数 参考书 报录比 复试分数线 考研真题 考研经验考研大纲 考研笔记
- 2011年中国茶餐厅经营策略及盈利预测分析报告
- 高三第一次调研考试试卷分析(数学)
- 立足本职岗位 发挥先锋模范作用
- 使用ArcEngine开发高可用性应用程序_孙炎