`
yangshen998
  • 浏览: 1248611 次
文章分类
社区版块
存档分类
最新评论

第一个Android应用程序--HelloWord---框架分析

 
阅读更多

几乎所有的程序员在接触一门新的技术写的第一个应用程序都是HelloWord,那么今天我们也通过编写一个HelloWord程序对android程序中各层,目录,及所有的文件进行详细的解析。

首先,new一个Android的Project,声明包名,选择Android版本,我们选择的是Android的2.3.3版本,finish之后我们会看到这个项目的架构:


下面我们来一一介绍架构中各部分的含义及作用:

src

目录用于存放我们编写的java代码;

packagecn.sword.android.activity;

importandroid.app.Activity;

importandroid.os.Bundle;

publicclass MyFirstAndroidProjectActivity extends Activity {

/** Called when the activity is firstcreated. */

@Override

public void onCreate(BundlesavedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

}

}

1、继承了Activity这个类

2、重写了onCreate这个入口方法

1)方法中传递了一个BundlesavedInstanceState

2)方法中调用了父类的方法super.onCreate(savedInstanceState);

3)setContentView(R.layout.main);

R.layout.main中的R是gen目录下eclipse自动生成的一个final类,下面会有介绍

layout是类R中的一个静态内部类同样是eclipse自动生成的,main是内部类layout的一个静态的成员变量,这些是怎么来的,到底是什么玩意一会讲解下面的目录的时候会提到。

gen

gen 目录中存放所有由Android开发工具自动生成的文件。目录中最重要的就是R.java文件。 这个文件由Android开发工具自动产生的。Android开发工具会自动根据你放入res目录的xml界面文件、图标与常量,同步更新修改R.java文件。正因为R.java文件是由开发工具自动生成的,所以我们应避免手工修改R.java。R.java在应用中起到了字典的作用,它包含了界面、图标、常量等各种资源的id,通过R.java,应用可以很方便地找到对应资源。另外编绎器也会检查R.java列表中的资源是否被使用到,没有被使用到的资源不会编绎进软件中,这样可以减少应用在手机占用的空间。

在R.java中有四个静态内部类:

staticfinal class attr

将存放在res中values下xml中的数组对象生成唯一的十六进制ID

staticfinal class drawable

将存放在res中的图片生成唯一的十六进制ID

staticfinal class layout

将存放在res中layout下的布局文件生成唯一的十六进制ID

staticfinal class string

将存放在res中values下xml中的键值对生成唯一的十六进制ID

当我们在代码中用到res中各文件中的属性的时候直接以此类方法R.layout.main调用即可

Android2.3.3

存放Android程序开发的类库文件,此为系统自动添加

assets

是资源文件夹,其中存放应用中用高的类似于视频文件、MP3一些媒体文件

res

在这个目录中我们可以存放应用使用到的各种资源,如xml界面文件,图片或数据。该文件夹中所有资源均在gen目录下的R类中生成一个唯一的十六进制的ID,方便程序开发中对其调用

在该目录下有如下几个文件夹

drawable-hdpi---存放高分辨率的图片

drawable-ldpi---存放中分辨率的图片

drawable-mdpi---存放低分辨率的图片

因为根据手机屏幕的分辨率不同而设计的,在程序开发中所用到的图片一般均为 png格式

layout----------MVC架构中的V层,存放布局文件,作用是控制Activity中控件的位置

values----------放置程序中使用到的字符串,一般放在strings.xml中,但是也可以写自己的文件,只有遵循对应的约束即可。这样可以更方便的实现国际化和代码复用,节约内存。

AndroidManifest

功能清单文件,重点介绍一下这个文件:

这个文件列出了应用程序所提供的功能,在这个文件中,你可以指定应用程序使用到的服务(如电话服务、互联网服务、短信服务、GPS服务等等)。另外当你新添加一个Activity的时候,也需要在这个文件中进行相应配置,只有配置好后,才能调用此Activity。



<!—sdkandroid的版本 -->

<uses-sdk android:minSdkVersion="10" />

</manifest>

proguard.cfg

混淆器,对源代码进行一定的加密,压缩代码;

project.properties

项目环境信息,一般是不需要修改此文件

下面在模拟器上运行这个程序,右击项目名Run As--->Android Application,


运行成功

如有错误请帮忙指出,谢谢。


分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics