Android 开发学习 HelloAndroid例子_第1张图片

最近项目完成之后,闲着无聊,本想学习C、C++,基础太差,而且太难了,习惯了java开发,回想我的同事,没事情干,学习Android,于是自己也开始学习Android的开发。

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/ILOVEMSDN/archive/2008/01/27/2068340.aspx

创建工程
创建工程非常简单。一个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. 填入工程细节
显示出来的窗口允许为你的工程输入相应的资料细节,下面是一个例子:

下面是屏幕显示窗口中每一个域的含义:
工程名 你希望存放你的工程的计算机路径名。
包名 包命名空间-和Java程序设计语言类似-你希望你的源代码保存的空间。这个同时也设置了将要生成的原始实体的包名。
在你的应用程序中使用的包名必须不同与所有你的系统中安装包的包名。由于这个原因,为你的应用程序命名一个标准域风格包是非常重要的。在上面的例子中,我们使用包域名为”com.google.android”,对于你的项目组而言,你可以使用一个不同的并且合适的域结构名。
实体名 实体名是插件生成的原始类的名字。它是Android实体类的子类。一个实体是一个简单的可以运行和工作的类,它可以选择性的创建一个用户界面,或者不创建。
应用程序名 应用程序具有良好阅读性的标题

” 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);
}
}
在Android中,用户界面由称作视的类及子类构建而成,一个视就是一个简单的可绘制的对象,比如单选框,动画或者(在我们例子中的)文本标签。这个特定的处理文本的视子类叫做TextView。
下面显示如何构造一个TextView类。
TextView tv = new TextView(this);
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”的启动器。

将名字改为比较有意义的,比如”Hello,Android”,然后通过点击浏览按钮选择你的工程,(如果你在Eclipse中打开了不止一个Android工程,请确保选择正确的一个.)该插件自动扫描你的工程中的实体子类,并将每一个添加到实体下拉列表中,由于你的”Hello,Android”工程只有一个实体,所以它就是默认的一个,你只需要简单继续就可以.
点击”应用”按钮,下面是例子:

棒极了—你已经全部完成!点击Run按钮,,Android仿真器就会运行。一旦仿真器启动之后,你的应用程序显示出来,让人激动的时候到了,你将看到类似合格的界面:

这个就是Android的”Hello,World”的例子,非常简单吧?指南接下来的部分将提供更多的细节,当你学习更多关于Android的内容之后,你会发现很多有价值的东西
将用户界面转化成XML布局
你刚刚完成的“Hello,World”的例子使用了我们称作”programmatic”的UI布局。这意味着你直接使用代码来构造和创建应用程序用户界面。如果你完成大量的用户界面编程,你可能会意识到这种方法有时是多么的脆弱:一个版面小小的改动导致大量的源码问题.同时也非常容易忘记连接适当的视图,这都会导致你的版面错误,并且浪费大量的时间来调试代码。
这就是为什么Android提供一个动态的UI 构造模型:基于XML的布局文件。最简单的阐明这个概念的方法就是举一个例子。下面是一个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"/>
普通结构的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属性。下面是它们含义的概述:
属性 含义
xmlns:android 这是一个XML命名空间定义,告诉Android工具你将要引用Android命名空间中定义的通用属性。在每一个Android布局文件中最外面的标记都有这个属性
android:layout_width 这个属性定义了这个视图使用的最大屏幕宽度。在这个例子中,我们只有这一个视图,所以我们可以让它占有整个屏幕,这就使”fill_parent”值得含义。
android:layout_height 这个和android:layout_width属性差不多,只不过这个定义的是屏幕可使用的高度。
android:text 这个设置了TextView包含的文本。在这个例子中,就是我们使用的”Hello,Android”消息。

因此,这就使XML布局看起来的样子,但是它们放在什么地方呢?就在你的工程的res/路径下。”res”是”resources”的简写,它包含你的项目需要的所有非代码资源,包括图像,本地化字符串和XML布局文件。
Eclipse插件为你创建这些XML文件.在我们上面的例子中,我们简单地显示了一下。在包浏览器中,展开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”。Eclipse插件会侦测到你添加了一个新的XML布局文件和重新生成的这个R.java文件,当你添加了新资源到你的项目中之后,你会发现R.java自动跟新。
最后要做的就是使用你的UI的新版本的XML文件修改你的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);
}
}
当你做这些修改时,不要只是拷贝和粘贴,试用以下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源代码。
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);
}
}
这个修改引入了一个空指针异常到你的代码中。如果你重新运行你的应用程序,你将会看到如下界面:

为了找出导致错误的原因,在你的代码行”Object o=null;”设置一个断点(你只需要在Eclipse中双击这一行左边的空处。)然后从菜单中选择Run>Debug Last Launched 进入调试模式。你的应用程序将重启仿真器,但这次当它运行到你设置的断点时它会挂起。你就可以在Eclipse的调试节界面下一步一步进行跟踪,就像你在其它环境下作的一样。

不使用Eclipse创建工程
如果你不使用Eclipse(如果你使用其它其它的IDE,或者间的的使用文本编辑工具和命令行工具),那么Eclipse插件就对你毫无帮助。不过你不用担心—你不会因为不使用Eclipse而损失什么。
Eclipse环境下的Android插件紧紧是一套Android SDK工具的一个封装而已(这些工具,象仿真器,aapt,adb,ddms和其它文档化的工具)因此,它也可以用其它工具来进行封装,比如说一个’Ant’创建文件。
Android SDK包括一个Python脚本,名字为”activityCreateor.py”,它可以用来为你的工程创建所有的源码和原始目录,也可以生成一个兼容Ant的build.xml文件。这可以让你从命令行创建你的工程,或者与你选择的IDE集成起来,例如,创建一个类似我们刚刚通过Eclipse创建的HelloAndroid工程,你可以使用这样的命令。
activityCreator.py --out HelloAndroid com.google.android.hello.HelloAndroid
为了创建这个工程,你要先运行命令’ant’,当这个命令成功执行,一个名为HelloAndroid.apk的文件将生成到文件夹bin/下面。这个.apk文件十一个Android包,它可以使用adb工具安装到你的仿真器中.想了解更多使用这些工具的信息,请阅读前面的引用文档。

我写想Android的源代码如下(基本为自动生成)

更多相关文章

  1. Android优酷播放器SDK——Eclipse工程迁移Android Studio遇到问
  2. Android中图像变换Matrix的原理、代码验证和应用(一)
  3. Android之Manifest文件
  4. Android系列之Android开发教程代码实例
  5. 自定义SeekBarPreference控件(老外出品,直接在preferences文件中
  6. Android Activity切换动画效果详解(附源代码)

随机推荐

  1. Android(安卓)RxJava实际应用教学:你该什
  2. Android四大组件:Service史上最全面解析
  3. Android实践之Drawable的使用
  4. Android学习感悟之消息机制
  5. android 通过Application类 共享全局数据
  6. Android(安卓)9.0 (P)
  7. 信息提醒之Notification,兼容全部SDK-更新
  8. android studio将多个module统一放在一个
  9. Android中Layout转成Java代码
  10. Android热修复方案的兼容策略CLASS_ISPRE