以文本方式查看主题

-  中文XML论坛 - 专业的XML技术讨论区  (http://bbs.xml.org.cn/index.asp)
--  『 XML 与 移动嵌入式开发 』   (http://bbs.xml.org.cn/list.asp?boardid=77)
----  [分享] Google 手机操作系统 Android 开发教程  (http://bbs.xml.org.cn/dispbbs.asp?boardid=77&rootid=&id=59010)


--  作者:enyaxp
--  发布时间:2/21/2008 12:26:00 AM

--  [分享] Google 手机操作系统 Android 开发教程

第一部分:安装SDK

这里介绍如何安装Android的SDK开发包和配置开发环境。如果你还没有下载SDK,点击下面的链接开始。

Download the Android SDK

系统和软件配置要求

要通过Android SDK中提供的代码和工具进行Android应用程序的开发,需要一个合适的用于开发的电脑和合适的开发环境,具体要求如下:

支持的开发环境

  Eclipse
   Eclipse 3.2,3.3(Europa)
   Android开发工具插件(可选)

其他的开发环境或者IDE
   
   JDK5.0或者JDK6.0(仅有JRE是不够的)

安装SDK

下载好SDK包后,将zip文件解压缩至合适的地方。在下文中,我们默认你的SDK安装目录为$SDK_ROOT 你可以选择将$SDK_ROOT/tools加入到你的路径中

1.Linux下,打开文件~/.bash_profile或者~/.bashrc,找到设定PATH环境变量的一行,将$SDK_ROOT/tools的完整路径加入其中。如果没有找到设定PATH变量的行,你可以自己添加一行:

    export PATH=${PATH}:<你的$SDK_ROOT/tools的完全路径>

2.Mac下,在你的home目录中找到文件.bash_profile,和Linux的一样处理。如果还没有在机器上设定这个文件,你可以创建一个.bash_profile文件。

3.Windows下,右键点击【我的电脑】,选择【属性】,在【高级】页中,点击【环境变量】按键,在弹出的对话框中双击“系统变量”中的变量“Path”,将$SDK/tools的完全路径加入其中。

通过将$SDK/tools加入系统路径,在运行adb和其它一些命令行工具时就不需要键入完全路径名了。需要注意到是,当你升级了SDK后,如果安装路径有变动的话,不要忘记了更新你的PATH变量的设置,将其指向变动后的路径。
   
安装Eclipse插件(ADT)

如果你选择Eclipse作为Android的开发环境,可以安装一个专门为Android定制的插件:Android Development Tools(ADT),ADT插件集成
了对Android工程和工具的支持,它包含了大量功能强大的扩展,使得创建、运行、调试Android程序更简单更快捷。

如果你不打算使用Eclipse,那么就不需要下载或者安装ADT插件。

为了下载和安装ADT插件,请按照下面的步骤设置Eclipse的远程更新站点:
  
  1.启动Eclipse,依次选择Help > Software Updates > Find and Install....

此主题相关图片如下:
按此在新窗口浏览图片

  2.在弹出的窗口中,选择Search for new features to install,然后点击Next

  3.点击New Remote Site

  4.在弹出的对话框中,为远程站点输入一个自定义的名字(例如:Android Plugin),然后输入下面的内容作为其默认的URL:然后点击OK

       https://dl-ssl.google.com/android/eclipse/

  5.现在你应该可以在搜索列表中看见刚才新加入的站点了(默认已经选中了),点击Finish
  
  6.在随后的Search Results对话框中,选中Android Plugin > Eclipse Integration > Android Development Tools,然后点击Next
  
  7.阅读许可协议,然后选择Accept terms of the license agreement,点击Next
  
  8.点击Finish
  
  9.ADT插件没有signed,在安装过程中会弹出确认窗口,你只需要点击 Install All就可以了
  
  10.重启Eclipse
  
  11.重启后,在Eclipse的Preferences中指定SDK的路径:

    a.选择Window > Preferences...打开Preference的面板。(Mac OS X:Eclipse > Preferences)
    b.在左侧的面板中选择Android
    c.在主面板中,点击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.如果ADT插件有任何更新,选择并且安装

[此贴子已经被作者于2008-2-24 2:30:43编辑过]

--  作者:enyaxp
--  发布时间:2/21/2008 1:18:00 AM

--  
第二部分:创建一个hello Android工程

创建一个新项目是很简单的,只要你安装了Android SDK,并且你的Eclipse软件版本在3.2或3.3,你就可以开始开发了。

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

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

尽此而已,我们通过下面的详细说明来完成每个步骤。

1, 创建一个新的Android项目

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

此主题相关图片如下:
按此在新窗口浏览图片

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

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

此主题相关图片如下:
按此在新窗口浏览图片

这个表格中详细介绍了每个参数的含义:

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

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

Activity Name: 这是项目的主类名,这个类将会是Android的Activity类的子类。一个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);

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

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

运行代码: Hello, Android

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

此主题相关图片如下:
按此在新窗口浏览图片

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

此主题相关图片如下:
按此在新窗口浏览图片

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

点击"Apply" 按钮,下图

此主题相关图片如下:
按此在新窗口浏览图片

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

此主题相关图片如下:
按此在新窗口浏览图片

下次继续介绍如何把界面的布局用XML表示以及使用命令行进行编译和运行Android程序。


--  作者:enyaxp
--  发布时间:2/21/2008 1:33:00 AM

--  
第三部分:将界面实现用XML编排

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

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

<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
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的代码编译特点。你会发现它对你有很大的帮助。

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



--  作者:enyaxp
--  发布时间:2/21/2008 1:52:00 AM

--  
第四部分:调试你的项目

这个用于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的调试模式视图中,它就会停止在你的代码处。就像你可以在其他任意程序中做这个一样。

此主题相关图片如下:
按此在新窗口浏览图片

本文章转自CSDN.NET
本系列教程的主要内容都是翻译自Google的Android开发文档。通过下面的链接查看全部内容。
http://code.google.com/android/intro/hello-android.html

希望Android平台能在移动开发领域开启新的篇章。



--  作者:wywwq
--  发布时间:5/9/2008 8:56:00 PM

--  

--  作者:knightchao
--  发布时间:7/15/2008 10:47:00 AM

--  
好东东   不顶可惜了
--  作者:w3china0421
--  发布时间:8/4/2008 2:33:00 PM

--  
不错

W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
148.438ms