- 浏览: 7352054 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (1546)
- 企业中间件 (236)
- 企业应用面临的问题 (236)
- 小布Oracle学习笔记汇总 (36)
- Spring 开发应用 (54)
- IBatis开发应用 (16)
- Oracle基础学习 (23)
- struts2.0 (41)
- JVM&ClassLoader&GC (16)
- JQuery的开发应用 (17)
- WebService的开发应用 (21)
- Java&Socket (44)
- 开源组件的应用 (254)
- 常用Javascript的开发应用 (28)
- J2EE开发技术指南 (163)
- EJB3开发应用 (11)
- GIS&Mobile&MAP (36)
- SWT-GEF-RCP (52)
- 算法&数据结构 (6)
- Apache开源组件研究 (62)
- Hibernate 学习应用 (57)
- java并发编程 (59)
- MySQL&Mongodb&MS/SQL (15)
- Oracle数据库实验室 (55)
- 搜索引擎的开发应用 (34)
- 软件工程师笔试经典 (14)
- 其他杂项 (10)
- AndroidPn& MQTT&C2DM&推技术 (29)
- ActiveMQ学习和研究 (38)
- Google技术应用开发和API分析 (11)
- flex的学习总结 (59)
- 项目中一点总结 (20)
- java疑惑 java面向对象编程 (28)
- Android 开发学习 (133)
- linux和UNIX的总结 (37)
- Titanium学习总结 (20)
- JQueryMobile学习总结 (34)
- Phonegap学习总结 (32)
- HTML5学习总结 (41)
- JeeCMS研究和理解分析 (9)
最新评论
-
lgh1992314:
[u][i][b][flash=200,200][url][i ...
看看mybatis 源代码 -
尼古拉斯.fwp:
图片根本就不出来好吧。。。。。。
Android文件图片上传的详细讲解(一)HTTP multipart/form-data 上传报文格式实现手机端上传 -
ln94223:
第一个应该用排它网关吧 怎么是并行网关, 并行网关是所有exe ...
工作流Activiti的学习总结(八)Activiti自动执行的应用 -
ZY199266:
获取不到任何消息信息,请问这是什么原因呢?
ActiveMQ 通过JMX监控Connection,Queue,Topic的信息 -
xiaoyao霄:
DestinationSourceMonitor 报错 应该导 ...
ActiveMQ 通过JMX监控Connection,Queue,Topic的信息
最近项目完成之后,闲着无聊,本想学习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的源代码如下(基本为自动生成)
- AndroidHelloworld.rar (1.8 MB)
- 下载次数: 34
发表评论
-
[转]年度最实用50款免费Android应用推荐
2012-11-08 16:39 3386据国外媒体报道,有人说Android应用市场比iPhone应用 ... -
GIS的学习(四十五)【转】Integration of the MBTiles format on Android
2012-10-22 17:13 2955转载自 http:/ ... -
GIS的学习(四十四)osmdroid sdcard检查
2012-10-15 16:12 2345在许多应用中使用到sdcard的检查,在osmdro ... -
GIS的学习(四十三)osmdroid基于几个经典代理类
2012-10-15 16:06 2642在osmdroid中给基于位置的代理类如下: pack ... -
Android中PopupWindow的用法(位置、动画、焦点)
2012-10-12 14:12 11538在Android中有很多级别的Window,不同级别的Wind ... -
【转】Android根据分辨率进行单位转换-(dp,sp转像素px)
2012-10-11 09:18 27145Android系统中,默认的单位是像素(px)。也就是说,在没 ... -
GIS的学习(二十九)Osmdroid 离线地图存放位置的研究和详细分析
2012-09-23 11:49 11584在手机通过osmdroid调用离线地图必须放在 ... -
GIS的学习(二十八)Osmdroid相关的开源项目
2012-09-23 11:31 25465osm 数据格式(openstreet map)与Ro ... -
GIS的学习(二十七)通过geoserver的georss访问第三方地图
2012-09-23 00:34 3610在geoserver中如果想调用第三方地图可以采 ... -
android中使用 定时更新界面定时器Timer的使用
2012-09-22 22:09 25540handler的使用 一、Handler的定义: ... -
【转】Android应用程序的自动更新升级(自身升级、通过tomcat) .
2012-09-16 15:03 7374http://blog.csdn.net/mu0206mu/a ... -
GIS的学习(二十七)OGC 的WCS WFS 及WMS 服务
2012-09-11 22:22 12152http://www.gisall.com/?6678/v ... -
GIS的学习(二十六)geotools 使用 部分代码总结
2012-09-11 22:20 5759前段时间的一个项目 本来用ae完成了种种的 查询,空间分析等等 ... -
GIS的学习(二十五)geoserver wms中的各种操作API详细讲解和使用
2012-09-10 17:42 9716官方geoserver中WMS服务中几种操作的API的详细说明 ... -
GIS的学习(二十四)android异步调用geoserver wms中的地图
2012-09-10 17:38 8181在geoserver的客户端通过wms的GetMap实现 ... -
GIS的学习(二十三)geoserver中CQL和ECQL的使用
2012-09-10 16:29 6652以下引用自官方文档: CQL and ECQL¶ CQ ... -
GIS的学习(二十二)osmdroid中添加縮放控件
2012-09-06 23:09 2795package com.geoserver.osmdroid; ... -
GIS的学习(二十一)在osmdroid 地图中添加marker 并添加事件
2012-09-06 22:27 6657我有 osmdroid,overlayswithf ... -
GIS的学习(二十)基于Geoserver的WFS服务与Openlayers实现地理查询
2012-08-30 18:48 11425基于Geoserver发布的wfs服务,与Openlayers ... -
GIS的学习(十九)Geoserver使用添加,删除,查询地图中的POI
2012-08-30 17:28 10366在geoserver自定义的地图中通过geoserver ...
相关推荐
《我的Android开发之HelloWorld》 在Android开发的初期阶段,每个开发者都会经历编写第一个程序——"Hello, World!"的过程。这个简单的应用是学习任何编程语言的传统起点,它标志着我们开始探索新领域的第一步。...
在Android开发领域,"Android demo Android helloworld"通常是指初学者入门的第一个小程序,它标志着开发者在Android平台上迈出了第一步。这个简单的程序展示了如何在Android设备上显示“Hello, World!”的文字,是...
在Android开发领域,"Hello, World!"程序是入门学习的经典示例,它标志着开发者在新的平台上迈出了第一步。本教程将深入讲解如何使用Android Studio,一个强大的集成开发环境(IDE),来创建并运行你的第一个Android...
### Android例子大全:...《Android例子大全》一书提供了丰富的实例和详尽的解释,是学习Android开发不可多得的宝贵资源。对于希望在移动开发领域有所作为的开发者来说,掌握这些基础知识和技能将是迈向成功的第一步。
本文将详细介绍Android NDK的环境配置以及一个入门级的开发例子。 **环境配置** 1. **Java SDK**: 首先,确保已安装Java Development Kit (JDK),因为NDK与Android Studio都是基于Java环境的。 2. **Android ...
在Android开发的学习旅程中,"第一个学习例子"通常是一个简单的应用,用于帮助初学者理解基本的环境配置、布局设计和程序结构。这个例子可能是创建一个Hello World应用,这是每个编程语言初学者的第一步。让我们详细...
通过深入分析HelloAndroid源码,我们可以学习到许多基础的Android开发知识。 1. **环境搭建**:首先,我们需要一个集成开发环境(IDE),如Android Studio,它是Google官方推荐的Android应用开发工具。下载并安装后...
在Android嵌入式应用开发领域,...这有助于提升动手能力,为将来的Android开发工作打下坚实基础。同时,这样的学习方式也有助于培养解决问题和调试代码的能力,因为理论知识和实践经验相结合是成为优秀开发者的关键。
在Android开发领域,"Hello, World!"程序是一个经典的入门示例,它标志着开发者开始接触并学习这个平台。本文将深入探讨“android_helloworld”项目,理解Android应用的基础结构,以及如何在Android Studio中创建和...
在Android开发领域,实例是学习和理解平台工作原理的关键。"android 例子"这个标题暗示了我们将会探讨一些Android应用程序的实例,这些实例可能涵盖了从基础功能到高级特性的各种用例。描述中的重复同样强调了实践...
总的来说,"android应用程序小例子"涵盖了从基础的Hello World程序到复杂的网络请求、数据库操作等多个方面,每个小例子都是学习Android开发的重要组成部分。通过实践这些例子,开发者可以逐步提升自己的技能,最终...
在Android开发领域,实例是学习和理解概念的关键。"18个Android开发实例"这个压缩包文件很可能是针对初学者和中级开发者设计的,旨在通过实际操作帮助他们掌握Android应用开发的基本技能。以下是对这些实例可能涉及...
这个简单的例子展示了如何在Eclipse中开始Android开发,使用基本的UI组件(DatePicker)并与之交互。虽然现在Android Studio是首选的开发环境,但理解Eclipse的工作原理对理解Android项目结构和开发流程仍然很有帮助...
### Android开发手册知识点详解 #### 一、概述 在《Android开发手册》中...此外,《Android开发手册》提供了更多关于如何构建复杂应用的信息,包括高级特性、最佳实践等内容,是学习Android开发不可或缺的指南之一。
通过这个简单的"androidNDK helloworld"例子,你不仅学习了如何在Android项目中设置NDK,还了解了JNI(Java Native Interface)的基本用法,包括创建原生库、编译C/C++代码、在Java中调用原生函数等关键步骤。...
在Android开发领域,"HelloWorld"程序是每个初学者入门时的第一个项目,它标志着你在Android编程之旅的起点。这个简单的程序通常包含一个显示"Hello, World!"文本的屏幕,帮助开发者熟悉基本的环境配置和代码编写...
通过这个简单的例子,你已经掌握了Android蓝牙开发的基础。在实际项目中,可能还需要处理更多细节,如连接失败的重试机制、设备连接状态的监控、多线程下的并发问题等。不断实践和优化,才能更好地应对复杂的蓝牙...
学习Android开发,你还需要掌握Android的组件系统(如Service、BroadcastReceiver)、意图(Intent)用于组件间的通信、数据存储(SQLite数据库、SharedPreferences、文件系统)、网络编程以及各种设计模式和最佳实践...