Android项目文件及应用程序—目录结构详解

目录结构
    今天要介绍的就是android的目录结构,在建立新项目的过程中,ADT会自动建立一些目录和文件,这些目录和文件有其固定的作用,有的允许修改,有的不能修改。一个新创建的Android项目,项目结构包含src目录、gen目录、assets目录、res目录、库文件android.jar、以及三个项目工程文件AndroidManifest.xml、default.properties、proguard.cfg如图:

一总体介绍:(后面有每个的详解)


 1. src目录:是源代码目录,所有允许用户修改的java文件和用户自己添加的  java文件都保存在这个目录中。如建立EditView工程,ADT根据用户在工 程向导中的“Create Activity”选项,自动建立 EditTextActivity .java文件

2.gen目录:是1.5版本之后新增的目录,用来保存ADT自动生成的R.java文件。 android.jar文件:是Android程序所能引用的函数库文件,Android通过平台所    支持API都包含在这个文件中

3.assets目录:用来存放原始格式的文件,例如音频文件、视频文件等二进制格式文 件。此目录中的资源不能被R.java文件索引。,所以只能以资截流的形式读取。 一般情况下为空

 4.res目录:是资源目录,有五个子目录用来保存Android程序所有资源。

 5.proguard.cfg文件:是Android混淆器,proguard.cfg用来防止程序被反编译,它
也其实就是将变量的名称混淆一下,降低程序的可读性。、

二详细介绍:
2.1AndroidManifest.xml文件简介:
      AndroidManifest.xml是XML格式的Android程序声明文件,是全局描述文件,包含了Android系统运行Android程序前所必须掌握的重要信息,这些信息包含应用程序名称、图标、包名称、模块组成、授权和SDK最低版本等。创建的每个Android项目应用程序必须在根目录下包含一个AndroidManifest.xml工程文件
AndroidManifest.xml文件的代码:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.hisoft"
android:versionCode="1"
android:versionName="1.0">
<uses-sdk android:minSdkVersion="10" />
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".EditTextActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
根据代码介绍:AndroidManifest.xml文件的根元素是manifest,包含了xmlns:androidpackageandroid:versionCodeandroid:versionName共4个属性:
xmlns:android定义了Android的命名空间,值为http://schemas.android.com/apk/res/android
package定义了应用程序的包名称
android:versionCode定义了应用程序的版本号,是一个整数值,数值越大说明版本越新,但仅在程序内部使用,并不提供给应用程序的使用者
android:versionName定义了应用程序的版本名称,是一个字符串,仅限于为用户提供一个版本标识
manifest元素仅能包含一个application元素,application元素中能够声明Android程序中最重要的四个组成部分,包括Activity、Service、BroadcastReceiver和ContentProvider,所定义的属性将影响所有组成部分

2.2可视化编辑器
双击AndroidManifest.xml文件,直接进入可视化编辑器,如图所示,用户可以直接编辑Android工程的应用程序名称、包名称、图标、标签和许可等相关属性


2.3gen目录 :

      R.java文件包含对drawable、layout和values目录内的资源的引用指针,Android程序能够直接通过R类引用目录中的资源。
Android系统中资源引用有两种方式:一种是在代码中引用资源;另一种是在资源中引用资源
代码中引用资源,需要使用资源的ID,可以通过[R.resource_type.resource_name]或[android.R.resource_type.resource_name]获取资源ID
resource_type代表资源类型,也就是R类中的内部类名称
resource_name代表资源名称,对应资源的文件名或在XML文件中定义的资源名称属性
资源中引用资源,引用格式:@ [package:]type:name
@表示对资源的引用
package是包名称,如果在相同的包,package则可以省略

2.4res目录:
      res目录中包含了5个子目录,它们分别是:
drawable-hdpi目录:里面主要放高分辨率的图片,如WVGA (480x800),FWVGA (480x854),默认存放的是icon.png图片
drawable-mdpi目录:里面主要放中等分辨率的图片,如HVGA (320x480) ,默认存放的是icon.png图片
drawable-ldpi目录:里面主要放低分辨率的图片,如QVGA (240x320) ,默认存放的是icon.png图片
系统会根据机器的分辨率来分别到这几个文件夹里面去找对应的图片
layout目录:用来保存与用户界面相关的布局文件,这些布局文件都是XML文件,默认存放的是main.xml文件
valuse目录:保存文件颜色、风格、主题和字符串等,默认存放的是strings.xml文件
main.xml文件,是界面布局文件,利用XML语言描述的用户界面界面布局的相关内容将在后续章节用户界面设计中进行详细介绍。

2.5main.xml文件代码:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView android:text="请输入:" 
android:id="@+id/textView1" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content">
</TextView>
<EditText android:layout_height="wrap_content" 
android:layout_width="match_parent" 
android:id="@+id/editText1"
android:hint="这里键入输入内容">
<requestFocus></requestFocus>
</EditText>


</LinearLayout>

2.6strings.xml文件代码:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">EditTextDemo羽哥制作</string>
</resources>

2.7default.properties文件:
        default.properties文件记录Android工程的相关设置,该文件不能手动修改,需右键单击工程名称,选择“Properties”进行修改
在default.properties文件中只有第12行是有效代码,说明Android程序的编译目标。


本文转载自 http://blog.csdn.net/heyuchang666/article/details/41542373
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值