第一个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。

 

<?xml version="1.0"encoding="utf-8"?>
<manifestxmlns:android="http://schemas.android.com/apk/res/android"
     package="cn.sword.Activity"    <!-- 当前应用所在包 -->
     android:versionCode="1"
     android:versionName="1.0">
 
      <!-- @:次标记可以理解为读取R.java中的资源 
android:icon="@drawable/icon"为应用程序的图标
android:label="@string/app_name"为应用程序的名称  -->
<applicationandroid:icon="@drawable/icon"android:label="@string/app_name">
 
    <!--用以描述一个activity
        .MainActivity中的“.”意思是当前包路径下的MainActivity,此时可以省略
        必须是上面package中所生明的路径,或其下面的子路径
        如果是多级路径,“.”不能省略,如.sub.MainActivity
    -->
       <activity android:name=".MainActivity"
                  android:label="@string/app_name">
            <!--意图过滤器:安装android应用时系统读取此信息
                下面的信息用以声明当前应用的启动activity,它会被系统显示在程序菜单栏中 ,如果是其它意图,可以修改为别的内容
当activity中配置有<intent-filter>意图过滤器时在程序启动后会首先进入这个Activity
            -->
           <intent-filter>
                <actionandroid:name="android.intent.action.MAIN" />
                <categoryandroid:name="android.intent.category.LAUNCHER" />
           </intent-filter>
       </activity>
 
        <!--另外两个activity -->
        <activityandroid:name=".OtherActivity" />
        <activityandroid:name=".ThreeActivity" android:theme="@android:style/Theme.Dialog"/>
</application>


<!—sdkandroid的版本 -->

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

</manifest>

proguard.cfg

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

project.properties

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

 

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


运行成功

 

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


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值