Java学习者论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

恭喜Java学习者论坛(https://www.javaxxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,购买链接:点击进入购买VIP会员
JAVA高级面试进阶视频教程Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程

Go语言视频零基础入门到精通

Java架构师3期(课件+源码)

Java开发全终端实战租房项目视频教程

SpringBoot2.X入门到高级使用教程

大数据培训第六期全套视频教程

深度学习(CNN RNN GAN)算法原理

Java亿级流量电商系统视频教程

互联网架构师视频教程

年薪50万Spark2.0从入门到精通

年薪50万!人工智能学习路线教程

年薪50万!大数据从入门到精通学习路线年薪50万!机器学习入门到精通视频教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程 MySQL入门到精通教程
查看: 749|回复: 0

Android 零起点 基础教程(二) - Android学习

[复制链接]

该用户从未签到

发表于 2011-10-27 08:16:49 | 显示全部楼层 |阅读模式
java代码:

<?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的文件, 你将看到下面的内容:

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布局你的界面。替换掉编码式的界面模式。下面是你的新代码的样子,你可以看到,代码变得更加简单了。

java代码:

public class HelloAndroid extends Activity {
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.main);
}
}

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

       现在完成这些改变以后,你就可以重新运行你的程序,然后你会发现两种不同的界面编排方式会产生同样的效果。
       调试你的项目
       这个用于Eclipse中的Android插件作为Eclipse中的调试器也具有优秀的兼容性。要演示这些,让我们制造一个bug在代码中,改变你的HelloAndroid源代码象下面这样:

java代码:

public class HelloAndroid extends Activity {
@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中的Android插件作为Eclipse中的调试器也具有优秀的兼容性。要演示这些,让我们制造一个bug在代码中,改变你的HelloAndroid源代码象下面这样:

java代码:

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而丢失任何开发能力。
其实Android的Eclipse插件也是将一套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”工具安装进模拟器。
到这里为止,我向大家展示了Android平台的程序简单的开发实例,本人水平有限,翻译的时间仓促,一定有很多错误和疏漏,请多提修改意见。本系列教程的主要内容都是翻译自Google的Android开发文档。

系列之Android 零起点 基础教程(一)的帖子链接http://www.eoeandroid.com/thread-100902-1-1.html
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|Java学习者论坛 ( 声明:本站资料整理自互联网,用于Java学习者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

GMT+8, 2025-1-11 21:00 , Processed in 0.305823 second(s), 36 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表