Android之路之三(第一个Android应用HelloWorld(下)——工程文件结构概述)

之前我们创建了第一个Android项目HelloWorld.下面就以HelloWorld应用为基础进行目录结构概述。下面为HelloWorld应用在Eclipse中的目录层次结构:

 

 

其中,各个目录及文件的详解如下:

src/            用来存放编写的java源代码的包。

gen/     用来存放由Android开发工具所生成的目录。该目录下的所有文件都不是由开发人员创建的,而是由ADT自动生成的。

           R.java      文件中默认有attr、drawable、layout、string四个静态内部类。其内容如下:

       package cn.class3g.activity;

       public final class R {
             public static final class attr {
             }
             public static final class drawable {
                public static final int ic_launcher=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静态内部类对应res/drawable中的文件,“  publicstaticfinalintic_launcher=0x7f020000;”则对应res/drawable目录下的ic_launcher.png文件,同时将in_launcher.png文件转意为16进制的整型;同样的,layout静态内部类对应res/layout中的文件,“publicstaticfinalintmain=0x7f030000;”对应的是main.xml文件,同时将main.xml文件转意为16进制的整型;而,string静态内部类对应的是res/values中的文件,“publicstaticfinalintapp_name=0x7f040001;  publicstaticfinalinthello=0x7f040000;”对应的是strings文件中的string标签声明的字符串的引用名。当,res/资源目录中的文件更改时,R.java文件内容将自动更新。

 

android/    用来存放Android自身的jar包

asstes/       用来存放应用中用到的类似于视频、MP3的一些媒体文件。

bin/     程序自动生成的应用文件夹,用来存放应用文件。

res/      res为resource的缩写。该目录为资源目录。用来存放图标、界面文件、应用中用到的文字信息。

                 res/drawable       res/目录下的三个drawable文件夹——【drawable-*dpi】,区别只是将图标按分辨率高低来存放入不同的目录,【drawable-hdpi】用来存放高分辨率图标,【drawable-mdpi】用来存放中等分辨率图标,【drawable-ldpi】用来存放低分辨率图标。

             res/values/       用来存放strings.xml等类似于定义属性值的资源文件。                     

                                      strings.xml   用来定义字符串和数值, HelloWorld项目中的string.xml文件内容如下:

                                   <?xml version="1.0" encoding="utf-8"?>
                                   <resources>
                                          <string name="hello">Hello World World, HelloWorldActivity!</string>
                                          <string name="app_name">HelloWorld</string>
                                   </resources>

   其中,string 标签声明一个字符串,name属性指定其引用名。

   把应用中出现的文字单独存放在string.xml文中的原因有二:一是为了国际化。二是为了减少应用体积,降低数据冗余。

              res/layout/        用来存放布局文件。

                                       main.xml    布局文件。下面是HelloWorld项目的main.xml的内容:

                      <?xml version="1.0" encoding="utf-8"?>
                      <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
                             android:layout_width="fill_parent"
                             android:layout_height="fill_parent"
                             android:orientation="vertical" >
                      <TextView
                             android:layout_width="fill_parent"
                             android:layout_height="wrap_content"
                             android:text="@string/hello" />
                      </LinearLayout>

                  其中,Linearlayout元素为线性布局,这里,规定了xmlns:android的命名空间。

                  TextView元素中android:layout_width属性为页面布局的宽度,android:layout_height属性为页面布局的高度,android:text属性显示文字内容,而这里的文字内容是在strings.xml中进行定义的,在这里通过“@string/hello”的方式进行引用。

AndroidManifest.xml/      该文件是功能清单文件,该文件列出了应用中所使用的所有组件。

 下面是HelloWorld项目的AndroidMainfest.xml文件的内容:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="cn.class3g.activity"
    android:versionCode="1"
    android:versionName="1.0" >

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

    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name" >
        <activity
            android:label="@string/app_name"
            android:name=".HelloWorldActivity" >
            <intent-filter >
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
</manifest>

其中, <uses-sdk android:minSdkVersion="7" />为应用运行的最低Android版本号。

            package="cn.class3g.activity"为当前应用所在包。

            android:icon="@drawable/ic_launcher"为应用程序的图标。

            android:label="@string/app_name"为设定应用的名称。

            在activity标签中,android:name=".HelloWorldActivity"属性中,“.”的意思是当前包路径下的MainActivity,也即package="cn.class3g.activity"

 

proguard.cfg /      该文件为混淆器,加密代码、压缩代码。

default.properties/         用来存放一些环境配置,如应用要求运行的最低Android版本。

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值