android学习之路2:HelloWorld、程序调试入门、Android自带程序体验

  刚学一门技术,或者刚开始开发一门新技术的时候,大米总会干三件事情,干完后就会去happy的吃饭、洗澡、聊天、睡觉了。这三件事情是:1,helloworld;2,学会程序调试;3,体验官方提供给我们的源码项目,个人认为这三样学会了,就在学习之路上多了几样法宝,接下来的路会好走很多。三件事情大概花了我2个小时,现在就来详细的跟大家分享一下吧!

 

1,Helloworld程序创建

   打开Eclipse,File>NEW>打开如下窗体:

项目创建后,编译>右键点击项目HelloWorld>Run as>Android Application打开虚拟机,点击虚拟机右侧的MENU按钮,左侧手机屏幕就会显示sayhello这个手机应用,如图:

点击sayhello,出现页面

同志们,HelloWorld程序就创建好了。接下来我们具体看下HelloWorld的项目结构,大米通过看懂这个项目的结构,总算摸到了一些Android的门道哦,先看项目结构图:

我一一来解释一下(当然不一定正确,毕竟我只是菜鸟,哈哈):

  1.1,src目录,放置我们开发的源文件的目录,这个不用多说。

  1.2,gen目录,这个目录是ADT插件帮我们生成的文件目录,打开R.java,就能看到ADT帮我们生成的成员变量,内部类等,都是自动生成的,不需要我们去修改

  1.3,Android 2.2目录,里面是jar文件,这个也不用多说,这个是整个程序的大脑,是Android提供的一些类文件。

  1.4,res和assets目录,这两个目录都可以存放一些文件,两个目录的区别是assets目录里面可以存放任何项目需要的文件而且不会在R.java中有任何记录,但是res目录所放置的所有资源文件都会在R.java文件中自动生成一个ID,于是程序中可以用这个ID来引用这个文件,我们打开R.java文件看一下就明白了:

package HelloWorld.demo;

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=0x7f040001;
public static final int hello=0x7f040000;
}
}

drawable、layout、string类就对应了res目录下面的子目录。drawable目录主要存放图片资源,layout目录主要存放布局文件,string目录主要存放键值对(比如用于国际化等)。

  1.5AndroidManifest.xml是系统的配置文件

 

2,程序调试入门

  2.1 logCat

    在logCat窗体输出调试信息的方式来进行程序调试。eclipse中选择DDMS工具,找到其中的logCat窗体,这个窗体中就会显示所以调试的日志信息,如图:

 

当程序报错的时候这个logCat中也会出现错误信息,这样我们就能迅速找到错误的原因了。

  如果我要查看程序运行中的某个变量的值是多少,也很简单,首先我们在LogCat窗体的右上角中点击绿色的加号按钮,出现如下窗体:

点击ok,此时LogCat窗体下面多了一个叫做SystemOutLog的tab,如图:

接着看代码中的调试信息实现(这里我们以helloworld项目为例):

//主窗体初始化事件中增加日志输出语句
public class index extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        System.out.println("my log info will appear in Systemoutlog tab......");
        setContentView(R.layout.main);
    }
}

此时debug程序,最后会在LogCat中出现信息,如图:



这种调试方式在DDMS中是最简单的方式,还有各种各样的调试程序的方法,这个大米在今后的日子里还会多多研究的。

 2.2 跟java项目一样,设置断点,然后debug项目,当程序执行到断点处的时候,自动停留在断点处等待程序员去调试。

3,Android自带程序体验

其实就是android 提供给我们参考的samples,这些源码我们下载安装的SDK目录下面就有,如图:

这里的例子是在是太多了,有记事本的源码(NotePad),有api介绍的源码,有游戏的源码(贪吃蛇)等等等等。这里大米就介绍一款游戏吧,叫做JetBoy,这款游戏是具备声音支持的游戏事例,当然其中的代码我还没有领悟过,我只是搭建一个项目然后能使这款游戏在虚拟机中等跑起来,玩起来。

要让JetBoy这款游戏跑到你的虚拟机当中,其实很简单,首先像建HelloWorld工程一样建一个JetBoy的工程,然后打开源码中的文件如图:

分别把res资源和src资源覆盖到新建的JetBoy对应目录下面去(可能有人会问我为什么不直接导入已经有的工程项目呢?这里大米试着导入过,不过都提示有问题,所以就用了最简单粗暴的方法),当然src下面那些java文件中引入的包名需要改一下(会有提示错误的,找到要改的地方还是很简单的),另外还有修改res下面的layout目录下的main.xml文件,因为里面也有一些包名需要改一下。编译通过,运行,看虚拟机,打开应用,如图:

JetBoy游戏正常跑起来了!

虽然大米还没有看过JetBoy游戏的源码,但是也已经很满足了。个人认为一下子看这个游戏的代码会有点吃力,不求甚解是我一直坚持的,我会转而先看些简单的例子,等时间成熟了再来参悟这款游戏的代码。

 

这是大米的第二篇博客,写的还是一如既然的差吧?呵呵,大米只能说以后再改进了,快凌晨了,还是睡觉吧,明天周一要上班,虽然对我来讲凌晨还算很早很早...

 

 

 

posted on 2012-01-16 08:49  南阿弥  阅读(632)  评论(0编辑  收藏  举报