Day 2:Android项目的目录结构详解

时间:2021-08-12 05:21:22

前面Day1:eclipse创建Android模拟器,我们学会了如何在eclipse上创建Android模拟器。本着“穷根究底”的黑客精神,我们将较为详细地了解App项目——

BigLottery的目录结构

在eclipse的左侧展开BigLottery项目,本文主题如下所示:
Day 2:Android项目的目录结构详解
下面将分节介绍上面的各级目录结构。

目录结构分析

1. src目录(关键词:源代码)

src,即”source code”。顾名思义,src是存储Java源文件的目录。打开MainActivity.java文件会看到如下代码:

package com.example.biglottery;

import android.os.Bundle; //传递数据
import android.app.Activity; //活动
import android.view.Menu; //组件

public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to
// the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}

当我们新建一个Android项目,系统自动生成了一个MainActivity.java文件。它导入了三个类:
android.os.Bundle、android.app.Activity、android.view.Menu。
MainActivity类继承了Activity类且需重写onCreate方法。
In a word, src是存储编写程序的目录。

2. gen目录(关键词:资源索引)

该目录用于保存自动生成的R.java文件(只读模式,不能更改)。
R.java文件是由AAPT工具根据应用中的资源文件自动生成的,包含了Android的资源文件的标识符。随着我们不断向项目中添加资源,R.java文件的内容也会越来越多。
因此,我们可以把R.java理解成Android应用的资源字典。

3. Android 4.3(关键词:Android版本)

Android版本资源,其中包含构建应用程序所需的所有的Android SDK 库(如Views、Controls)和APIs。通过android.jar将自己的应用程序绑定到Android SDK和Android Emulator,这允许你使用所有Android的库和包,且使你的应用程序在适当的环境中调试。

4. assets/res(关键词:资源)

Android应用可以将资源存储在两个目录:assets和res
assets:资源可以任意存放,也可以建立任意层次的子目录。
res:资源只能存储在相应的子目录(如res/layout、res/values等)中,不能直接将资源存储在res目录中。如图所示:
Day 2:Android项目的目录结构详解
两者具体区别:android res与assets资源的区别

5. bin(关键词:目标文件)

Day 2:Android项目的目录结构详解
bin文件夹中包含编译生成apk的应用程序:xxx.apk。

6. Android Private Libraries/libs(关键词:类库)

两者皆储存Android项目所需的第三方库。
Android Private Libraries引用的是第三方jar包,表示放在libs里面的jar包引用,视为私有引用。添加jar包到libs里面,系统自动把jar加载到android private libraries中。我们把libs中的jar包移除 Private Libraries中也就没有了。
简而言之,Private Libraries 就是libs里面的jar包的映射

7. AndroidManifest.xml(关键词:配置)

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

8. project.properties (关键词:默认属性)

该文件记录了项目中所需要的环境信息,比如Android的版本等。(注意:其不可修改!)

# This file is automatically generated by Android Tools.
# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
#
# This file must be checked in Version Control Systems.
#
# To customize properties used by the Ant build system edit
# "ant.properties", and override values to adapt the script to your
# project structure.
#
# To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home):
#proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt

# Project target.
target=android-18

【文章小结】

  1. src(开发的程序)
  2. gen(资源文件的标识符)
  3. Android 4.3(Android SDK)
  4. assets/res(资源文件)
  5. bin(编译生成安装包)
  6. Android Private Libraries/libs(第三方类库的jar包)
  7. AndroidManifest.xml(系统清单文件)
  8. project.properties (默认属性文件)

【编辑推荐】