几乎所有的程序员在接触一门新的技术写的第一个应用程序都是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,
运行成功
如有错误请帮忙指出,谢谢。
分享到:
相关推荐
第一个Android程序 HelloWord.zip
android helloword
helloword
NULL 博文链接:https://java110eye.iteye.com/blog/968942
storm1.2.1-helloword storm1.2.1-helloword storm1.2.1-helloword storm1.2.1-helloword
Android基础——Android Studio2.1配置NDK运行HelloWord
gef的入门程序helloword 详细讲解说明见博客 http://blog.csdn.net/wm198966/article/details/9813615
Android-10-拨号器,非常简单,一个Helloword程序而已
arcgis forandroid helloword 。 第一个程序!
storm1.2.1-helloword可靠消息storm1.2.1-helloword可靠消息storm1.2.1-helloword可靠消息storm1.2.1-helloword可靠消息
mybatis的helloword程序代码,mybatis的helloword程序代码
hello world视频教程,希望能够学习者提供帮助,实现对Android基础知识的掌握与理解,为后续学习做好铺垫,实现Android知识的灵活运用
hibernate helloword annotation version
Android环境搭配及简单HelloWord 做为入门者不得不看的教程
我的第一个Delphi7程序 新手联系程序
android入门示例,讲解了从strings.xml配置文件中读取变量显示在界面上,在界面上显示helloworld以及代码入口的基础
arcgis for android helloword demo 一个非常简单的arcgis demo 本人测试成功上传的 异常花费了本人一上午时间
tomacat6 + helloword程序,tomacat6绿色版 做个备份
java 入门 几乎是所有学习java的编写的第一个java程序
你好字 HelloWord程序HelloWord程序