安卓平台应用开发入门

1762阅读 0评论2012-02-21 桔色花朵
分类:

平台简介
令人激动的Google手机操作零碎平台-Android20071113夜正式发布了,这是一个开放源代码的操作零碎,内核为Linux. 作为开发者,人们所关心的是这个平台的架构以及所支持的开发语言。下面是这个平台的架构模型:


这个平台有以下功能:

+ Application framework: 可重用的和可替换的组件部分,在这个层面上,所有的硬件都是平等的。
+ Dalvik virtul machine: 一个基于Linux的虚拟机。
+ Integrated browser: 一个基于开源的WebKit引擎的浏览器,在应用程序层。
+ Optimized graphics: 包含一个自定义的2D图形库和基于OpenGL ES 1.0 标准的3D实现。
+ SQLite: 数据库
+ Media support: 通用的音频,视频和对各种图片格式的支持(MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF)
+ GSM Telephony: GSM 移动网络硬件支持。
+ Bluetooth, EDGE, 3G, and WiFi: 都依赖于硬件支持。
+ Camera, GPS, compass, and accelerometer: 都依赖于硬件支持。
+ Rich development environment: 包含一套完整的开发工具集,便当跟踪调试,内亡检测和性能测试,而且降供了
Eclipse的插件。

下面人们就来亲身体验一下Android程序的开发之旅。

先介绍一下开发环境,下面是对零碎及相关硬件的版本要求:

操作零碎:

Windows XP or Vista
Mac OS X 10.4.8 or later (x86 only)
Linux (tested on Linux Ubuntu Dapper Drake)
Supported Development Environments

Eclipse
Eclipse 3.2, 3.3 (Europa)
Android Development Tools plugin (optional)
Other development environments or IDEs
JDK 5 or JDK 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

人使用Eclipse 3.3 + JDK 1.6. + Ant 1.7 的组合。还有两个重要的就是: Android SDK 以及 Android 用于Eclipse 外的插件。

Android SDK 下载链接

如 果你是第一次使用这些硬件,请注意安装顺序和设置好环境变量。 一般的顺序是先安装 JDK 然后 解压 ant 压缩包,然后设置 java 环境变量和 ant 环境变量, 然后是解压 Android SDK ,再设置 Android SDK的环境变量。 总之就是把 JDK, ANT, Android SDK的路径加加到 path 里。

Android for eclipse plug in 在安装过程很简单,通过网络安装插件就可以了,这个是 URL: 

具体的配置过程,可以查看:


以下为翻译Google给的一个hello Android的开发步骤:

创建一个项目:
创建一个旧项目是很简单的,只要你安装了Eclipse插件,并且你的Eclipse硬件版本在3.23.3,你就可以开始开发了。

首先看一下要创建"Hello, World"程序从高级层面上有哪些步骤:

1, 通过 File -> New -> Project 菜单,建立旧项目"Android Project"
2, 填写旧项目各种参数。
3, 编辑自动生败的代码模板。

尽此而已,人们通过下面的详细道明来完败每个步骤。

1, 创建一个旧的Android项目

启动Eclipse, 选择 File -> New -> Project 菜单如果你安装好了AndroidEclipse插件,你将会在弹入的对话框外看到"Android Project" 的选项。



选择“Android Project”,点击 Next 按钮。

2, 填写项目的细节参数.
下面的对话框需要你输入与项目有关的参数:



这个里格外详细介绍了每个参数的含义:

Project Name: 包含这个项目的文件夹的名称。

Package Name: 包名,遵循JAVA规范,用包名来区分不同的类是很重要的,例子外用到的是"com.google.android",你应该按照你的计划起一个有别于这个的路径的名称。

Activity Name: 这是项目的主类名,这个类将会是AndroidActivity类的子类。一个Activity类是一个简单的启动程
序和掌握程序的类。它可以根据需要创建界面,但不是必须的。

Application Name: 一个易读的标题在你的应用程序上。

"选择栏"的 "Use default location" 选项,允许你选择一个已亡在的项目。


3,编辑自动生败的代码。

当项目创建后,你刚刚才创建的HelloAndroid就会是包含下面的代码.
public class HelloAndroid extends Activity
{
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle icicle)
    {
        super.onCreate(icicle);
        setContentView(R.layout.main);
    }
}

下面人们开始修改它


[构建界面]

当一个项目建立好以后,最间接的效果,就是在屏幕上显示一些文本,下面是完败后的代码,稍后人们在逐行解释。

public class HelloAndroid extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle icicle) {
        super.onCreate(icicle);
        TextView tv = new TextView(this);
        tv.setText("Hello, Android");
        setContentView(tv);
    }
}

注意你还需要加加 import android.widget.TextView; 在代码开端处。

Android程序外用户界面是由叫做Views类来组织的。 一个View可以简单理解为可以绘制的对象,像选择按钮,一
个动画,或者一个文本标签(这个程序外),这个显示文本标签的View子类叫做TextView. 

如何构造一个TextView:

TexiView tv = new TextView(this);

TextView的构造参数是Android程序的Context实例, Context可以掌握零碎调用它降供了诸如资源解析访问数据库等
等。Activity类继承自Context类,因为人们的HelloAndroid Activity的子类, 所以它也是一个Context类,所以人们能用"this"TextView构造外。

当人们构造完TextView后,人们需要通知它显示什么:

tv.setText("Hello, Android");

这个步骤很简单,当人们完败了这些步骤以后,最后要把TextView显示在屏幕上。


setContentView(tv);

ActivitysetContentView()方法指示入零碎要用哪个View作为Activity的界面如果一个Activity类没有执行这个方法,将会没有界面并且显示白屏。在这个程序外,人们要显示文本,所以人们传入已创建好的TextView

好了,程序代码已经写好,下面看看运行效果。

运行代码: Hello, Android

使用AndroidEclipse插件就可以很轻松的运行你的程序,选择Run -> Open Run Dialog。你将会看到下面的对话框



下 一步, 高亮"Android Application" 标签然后按下左上角的图标(就是像一片纸带个小星星那个), 或者间接双击 "Android Application" 标签你将会看到一个旧的运行项目,名为"New_configuration".



取 一个可以里意的名称,比如"Hello, Android", 然后通过Browser按钮选取你的项目(如果你有很多个项目在Eclipse外,确保你选择要运行的项目), 然后插件会自动搜索在你的项目外的Activity类并且将所有找到的加加在"Activity"标签的下拉列里外。 人们只有"Hello, Android"一个项目,所以它会作为默认选择。

点击"Apply" 按钮,下图



到这里,已经完败了,你只需要点击"Run"按钮,然后 Android的模拟器将会启动,你的应用程序就会被显示入来。

将界面实现用XML编排

你刚刚刚刚完败的"Hello, World"例子人们称之为”程序化”的界面编排。意思就是道构建你的应用程序界面是间接使用的源代码。如果你已经完败过很多界面程序,你大概生悉像此类的方式是多么脆弱:一个对布局小小的修改会对源代码造败很头疼的事情。如果忘掉与View的紧密结合,这个导致代码入错和糜费你的调试时间的界面成绩也会很简单。

这就是为什么Android降供了一种可替换的界面构建方式: 基于XML的布局文件。最简单的解释这个概念的方式就是展示一个例子。 人们就用刚刚才创建的项目来停止演示,到达相同的界面效果。


android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:text="Hello, Android"/>

AndroidXML布局文件的大体的结构很简单。 它是一个标签的树,任何一个标签就是View类的名字。在这个例子外, 它是一个很简单的只有一个元素的树,一个 TextView。 你可以使用任何继承自View类的名字作为标签的名字。包括在你的代码外自定义的View类。这个结构可以很容易的构建界面,它比你在源代码外使用的结构和语法更简单。这个模式的设计灵感来自于Web开发。 就是可以将界面和应用程序逻辑别离的模式。

在这个例子外, 也有些是XML的属性,下面是他们的含义:

属性

含义


xmlns:android


这是XML命名空间的声明,它是通知Android的工具, 你将要涉及到公共的属性已被定义在XML命名空间。在每一个Android的布局文件的最外边的标签必须有这个属性。



android:layout_width


这个属性定义了在屏幕上这个View可用的阔度是多少。



android:layout_height


这个属性定义了在屏幕上这个View可用的高度是多少。



android:text


设置TextView所包含的文本内容,当前设置为”Hello, Android”信息





以上就是一个XML布局文件的样子,但是你需要放在哪里?它要放在你的项目目录的res/ 文件夹下。 “res”是”resources”的缩写,它是亡放所有非代码资源的文件夹,包含象图片,本地化字符串和XML布局文件。
这些Eclipse的插件已经给你创建好了,在人们上面的例子外,人们没有使用它。在包浏览器外,展开res目录的layout. 并且编辑 main.xml, 替换掉那个文本内容,然后保亡。

现在,在包浏览状态,打开在代码文件夹外名为 R.java的文件, 你将看到下面的内容:

public final class R {
public static final class attr {
};
public static final class drawable {
public static final int icon=0x7f020000;
};
public static final class layout {
public static final int main=0x7f030000;
};
public static final class string {
public static final int app_name=0x7f040000;
};};


一个项目的R.java文件是一个定义所有资源的索引文件。 使用这个类就像使用一种速记方式来引用你项目外包含的资源。这个有点特别的强大像对于Eclipse这类IDE的代码编译特性,因为它使你快速的,互动式的定位你正在寻找的特定引用。

到目前需要注意的重要事情是叫做”layout”的内部类和他的败员变量”main”, 插件会通知你加加一个旧的XML布局文件,然后从旧产生这个R.java文件,比如你加加了旧的资源到你的项目,你将会看到R.java也相应的改变了

最后重要的事情是你需要去修改你的HelloAndroid源代码,去使用旧的XML布局你的界面。替换掉编码式的界面模式。下面是你的旧代码的样子,你可以看到,代码变得更加简单了。


public class HelloAndroid extends Activity {




/** Called when the activity is first created. */




@Override




public void onCreate(Bundle icicle) {




super.onCreate(icicle);




setContentView(R.layout.main);





}



}


当你做这些改变的时候,不要仅仅复制,粘揭到你的代码外,尝试去体验R.java的代码编译特点。你会发现它对你有很大的帮助。



现在完败这些改变以后,你就可以重旧运行你的程序,然后你会发现两种不同的界面编排方式会产生同样的效果。



补充:可能与原文有些意思不同,笔者水平有限,请包含,下面是原始链接地址。

调试你的项目

这个用于Eclipse外的Android插件作为Eclipse外的调试器也具有优秀的兼容性。要演示这些,让人们制造一个bug在代码外,改变你的HelloAndroid源代码象下面这样:

public class HelloAndroid extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
Object o = null;
o.toString();
setContentView(R.layout.main);
}}


这次简单的变化会引起一个NullPointerException异常, 如果你再次运行程序,你将会看到下面的屏幕:



要找到什么地方入错,需要设置个断点在你源代码的 “Object o = null;” 行后(你可以双击在Eclipse外显示行数的左部区域), 然后选择 Run -> Debug 选择最后一次的运行加载。 你的程序将会重起模拟器,但是这个时候它会挂起,当它走到你刚刚才设置的断点的时候,在Eclipse的调试模式视图外,它就会停止在你的代码处。就像你可以在其他任意程序外做这个一样。



使用其它的IDE工具创建项目

如果你没有使用Eclipse(比如你使用其他的IDE开发工具,或者简单的只使用文本编辑和命令行工具), 那么这个插件不会帮上你忙,别担心,你不会因为没有使用Eclipse而丢失任何开发能力。

其实AndroidEclipse插件也是将一套Android SDK的开发工具包装了。(这些工具像:模拟器,aapt, adb, ddms, 和其他的,可以参考google的相关文档) 因此, 它也可以被其他工具包装,比如ant.

Android SDK外包含一个Python脚本,叫做”activityCreator.py” 它用于为了你的项目创建所有的源代码和目录的编译环境(个人理解), 也就是会产生可用于ant编译的build.xml. 这样就允许你的项目从命令行方式创建或者集败到你选择的IDE外。

比如,要创建一个HelloAndroid项目,就像刚刚才人们用Eclipse外的一样, 你可以使用下面的命令:

activityCreator.py --out HelloAndroid com.google.android.hello.HelloAndroid


要编译你的项目,你要接着使用ant命令,当命令行降示败功时候,你会看到一个名为HelloAndroid.apk的文件在”bin”目录下。 这个.apk文件是一个Android的包, 它需要使用”adb”工具安装进模拟器。

到这里为止,人背大家展示了平台的程序简单的开发实例,本人水平有限,翻译的时间仓促,一定有很多过失和疏漏,请多降修改意见。本系列教程的


平板电脑平板电脑之家
三星不敌苹果 韩国本土平板电脑市场滑铁卢
宏基平板电脑A200点评
上一篇:【JAVA学习笔记- 分支语句】
下一篇:回调函数