转自:http://sarin.iteye.com/category/93571
Android开发环境搭建分为SDK安装和IDE安装,我们使用的IDE为Eclipse,那么还需要在Eclipse中安装Android的开发插件ADT。
首先,下载Android SDK,网址为:http://developer.android.com/sdk/index.html,打开后看到如下界面,选择SDK选项卡,下载适合操作系统平台的SDK版本即可。当前版本为r18,下载zip包后解压即可。
将下载好的zip包解压到本地硬盘文件系统中,如下所示:
我们将SDK解压到E盘根目录下,得到如下的文件结构,之后需要下载Aandroid的SDK API和文档,驱动等内容。点击SDK Manager.exe,打开SDK管理器,程序会自动从Google网站抓取更新信息,更新完毕,我们可以得到如下内容:
当前最高版本为Android 4.0.3(API 15),那么我们根据需要下载各个不同的版本,也就是说,所需开发的最低Android版本。出于向后兼容的设计,那么我们只需下载最低的版本,即可在任何比当前版本高的Android平台中运行程序,我们选择API 10,也就是Android 2.3.3,勾选后,点击右侧install package进行下载安装。
将SDK下载安装完成后,我们下载Eclipse开发环境,到Eclipse官网下载最新版(当前是Indigo 3.7.2)的程序:http://www.eclipse.org/downloads/,选择适合自己系统平台的安装包。
下载完成后将Eclipe解压到本地硬盘的文件系统上,打开后安装Eclipse的ADT插件,插件安装在Eclipse的Install New Software中完成,点击Eclipse菜单栏的Help,选择Install New Software,插件的下载地址为:https://dl-ssl.google.com/android/eclipse/
将Developer Tools下的四项全部勾选,进行安装。之后根据提示一步一步安装即可。安装完成后,在Eclipse的工具栏会看到如下图标:
它对应了Android SDK目录下的SDK Manager和AVD Manager,首次在Eclipse中运行SDK Manager需要设置Android的SDK目录所在位置,或者先在Eclipse的Preferences中进行设置。如下图所示,设置SDK Location为Android SDK的所在路径。在这里也可以看到我们下载好各个的Android开发版本。
设置好后,我们先创建一个AVD,也就是Android虚拟设备,用来模拟运行项目。打开AVD Manager,我们可以看到我们所创建的AVD信息都存储在C:\Users\<用户名>\.android\avd下(Windows 7环境下)。
选择新建,打开设置面板,设置名称,为Android_2.3.3,目标就是Android 2.3.3,API Level 10,之后设置SD卡的容量大小,这里我们设置为2GB
创建好后,我们可以到AVD信息所在目录,看看配置内容:
我们可以在这里修改相关内容,来更新AVD参数,我们将AVD的长宽加以调整,不需要显示的太大,那么修改文件:
第一个程序已经在模拟器中运行起来了,但是我们只是有了一个感性的认识,对程序结构没有说明,下面我们来对这个程序来做一些深入的说明。
首先我们还是从代码结构来说起:
src目录下存放的是Java源代码,这和所有的Java项目都是一样的,没有特别之处。这里我们的包声明为org.ourpioneer。
gen目录下是Aandroid自动控制生成的文件,这里面最重要的一个就是R.java,其中会自动放置我们添加的所有资源和组件,比文字信息,如图片信息,视图控件信息,布局信息等。我们不能修改该文件的任何内容,否则程序会引发严重错误。这里多说一点就是我们编写的程序不会直接和资源,组件文件打交道,都是通过R.java中的信息来获取的。
Android 2.3.3是说我们构建Android项目使用的版本号,要说明一点这里是最低版本,也就是说我们构建的程序不能在低于2.3.3版本的Android设备上运行。在这里我们也可以看到我们引用Android类库的位置。
Android Dependencies是我们项目引用的依赖,这里仅有一个,可以点看它的内容,作为程序类库上的依赖,这里没有可多说的地方。
assets表示资源,也就是程序资源文件存放的地方,这些资源比如图片,音乐,文字和配置信息等。但是可以看到这个文件夹是空的,说明我们没有使用,原因是我们现在一般使用res文件夹来存放这些信息了,下面会说说到。
bin目录,不用多说,存放的是我们项目编译之后的文件,同时在这里也可以找到生成的apk包,那么就可以在Android设备上使用该apk来进行安装。
res目录是我们真正存放资源文件的地方,根据命名来看,以drawable开头的目录,肯定存放的是图片的文件夹。hdpi存放高清图片,ldpi存放低分辨率图片,mdpi存放中等分辨率图片,xhdpi存放的就是超高清的图片了。它们针对的是不同分辨率的Android设备。我们创建的项目中,这四个图片文件夹下都有内容相同的一个图片(ic_launcher.png),打开后发现它们的分辨率是不同的。
res下的layout目录存放的是布局管理器的配置信息,values目录存放的是所有的文字信息,也就是用于显示的文字和布局的配置是分离的,便于项目的维护。layout下的main.xml会自动反映到R.java中,如果我们再在layout目录下创建一个布局文件,那么这个文件名也会自动反映到R.java中。
res中的values下的文件都是资源文件,如果我们继续新建,都是resources类型的文件,而在resources中的string类型值会被自动反映到R.java中。resources有string,color,style等子类型,它们也都会自动反映到R.java中,因为这些都是我们程序中的资源。如果将它们的name属性修改或者将它们删除,那么R.java中的内容也会自动被修改或移除,这都是同步进行的。
下面从strings.xml说起,我们打开看看这个文件:
之前我们看到的第一个应用程序都是系统为我们自动创建的,那么现在来看看如何对这个程序进行一些简单的扩充。
从之前的说明中可以看到,Activity程序完成界面的显示,那么就一定会使用到布局文件,也就是说Activity程序和布局相关的配置联系非常紧密。
我们可以在Activity中通过R.java来获取组件,也可以在Activity中动态生成组件。如果要获取组件,那么就需要为组件配置ID,下面我们对main.xml进行简单的扩充,添加几个组件。
TextView在我们第一个应用程序中已经使用过了,通过第一个程序,我们看到Activity程序和视图组件关系密切,这里我们进行深入介绍。
Android中的全部视图组件的父类是android.view.View类,看一下文档:我们就可以看到最后的效果了,text3组件的显示效果也变化了,说明我们的代码起作用了。
这部分的演示代码请参考附件。
类似于Web开发中的HTML输入框,EditText就是Android中的文本输入框。前面介绍的TextView仅仅用于静态文本的显示,而需要用户进行输入的话,就需要使用EditText组件。
首先,看一下EditText的文档:
java.lang.Object
↳ android.view.View
↳ android.widget.TextView
↳ android.widget.EditText
和Button组件一样,EditText也是TextView的子类,可以看作是TextView类的扩展组件。那么我们开始编写EditText组件的代码:
在Web开发中,HTML的<input type="radio">可以实现单选按钮,单选按钮主要用于多值选一的操作,比如性别的选择,仅能从“男”或“女”中选择,那么就可以使用单选按钮实现。那么在Android中实现单选就需要使用到RadioGroup和RadioButton两个视图组件,它们结合使用才能达到单选按钮的效果。
首先我们来看看这两个组件的文档:
java.lang.Object
↳ android.view.View
↳ android.view.ViewGroup
↳ android.widget.LinearLayout
↳ android.widget.RadioGroup
可以看出,RadioGroup是线性布局管理器LinearLayout的子类,那么也就说明,在RadioGroup中的组件是线性排列的,也就是说RadioButton线性排列在RadioGroup内。RadioGroup可以视为是RadioButton的容器,下面来看看RadioButton的文档:
java.lang.Object
↳ android.view.View
↳ android.widget.TextView
↳ android.widget.Button
↳ android.widget.CompoundButton
↳ android.widget.RadioButton
RadioButton是Button类的间接子类,它直接继承自CompoundButton,这样的设计也是为了复选框Checkbox的设计提出公共的父类。
下面在Eclipse中新建一个项目,我们来介绍RadioGroup和RadioButton的使用: