Android项目结构(翻译)

2016-07-06  本文已影响0人  半黑月缺

原文链接

项目概述

一个Android Studio的项目包含了一个应用的所有资源,包括源码、依赖资源、测试代码、build的配置等。创建一个新的项目,Android Studio创建了所有必要的文件并显示在左边的"Project"窗口里(点击View>Tool Windows>Project)。下面介绍了项目的核心组件。

Modules###

一个module是一个源文件和build的配置的集合,可以让你将项目分割成不同的功能模块。一个项目可以有一个或多个module,一个module可以依赖另一个module。每个module可以独立的build,测试,调试。

另外,module经常被用作项目的代码库,或者是不同设备如手机、手表等对应的不同的代码集合。需要注意的是要保证所有的的module在同一个项目下,且除了主module,其它module要被依赖且用到依赖里的代码或资源。

你可以点击File>New>New Module,在项目中添加一个新的module。

Android Studio提供了一些不同的module类型:

Android app module#####

为应用的源码、资源文件和app的设置层级例如:module-level的build文件、Android Manifest文件等提供一个容器。创建一个新的项目,默认的module名字是"app"。

在"Create New Module"窗口,Android Studio提供了下面的app module类型:

添加module的更多信息,阅读 Add a Module for a New Device

Library module#####

提供了一个可以复用的代码容器,可以作为其它项目的依赖或者从其它的项目中导入。"library module"和一个"app module"结构上相同,但当在build时,它创建的是代码归档文件而不是一个apk,所以不能被安装在设备上。

在"Create New Module"窗口,Android Studio提供了下面的library module:

Google Cloud module#####

这种module提供一个谷歌云端后台代码库。它为简单使用HTTP的Java应用引擎、云端点和云信息提供了必要的代码和依赖来连接你的应用。你可以在后台开发来提供你的应用需要的云服务。

用Android Studio来创建开发Google Cloud module可以让你管理同一个项目的后台和应用的代码。你也可以在本地运行和测试后台代码。

查看添加Google Cloud module的更多信息 Adding an App Engine Java Servlet Module。查看更多的运行开发Google Cloud module查看Running, Testing, and Deploying the Backend

一些人把module作为子项目是可以的,因为Gradle也可以把module引用为工程。例如,当创建一个library module并把它作为app module的依赖时,你必须的build文件里声明:

dependencies {
  compile project(':my-library-module')
}

Android显示类型###

默认Android Studio显示项目文件以"Android"类型显示方式展示。它不会影响硬盘上实际的文件层级,但以module和文件类型的形式来简洁明了展示项目的核心文件,隐藏不常用的文件和文件夹。和物理实际的文件结构相比有下面一些变化:


ProjectStructure

每个Android的app module,文件按下面的分组显示:

manifests######

包含AndroidManifest文件。

java######

包含java的源码文件,按不同的包名划分,包好JUnit测试代码。

res######

包含所有的非代码资源,如xml layout,界面的strings,bitmap图片,按对应的子文件夹划分。更多的资源类型信息,查看Providing Resources

Android的Project类型视图###

查看项目的真实文件结构的所有文件,包括Android视图下隐藏的文件,选择在顶层的Project下拉框中选择Project类型。

ProjectView2

当你选择了Project视图,就可以看到更多的文件和文件夹。其中最终要的如下:

module-name/
    build/ 包含build的输出文件
    libs/ 包含私有的库
    src/ 包含所有的代码和相应模块下子文件下的所有资源文件
        androidTest/包含运行在Android设备上的测试代码。
        main/ 包含主要的代码集合:有Android代码和各种build变形共享的资源(其它build的变体文件在统计的目录下,比如src/debug/是调试build类型)
            AndroidManifest.xml 描述应用的特性和它的组件。
            java/ 包含Java代码。
            jni/ 包含用Java Native Interface(JNI)生成的原生代码。
            gen/ 包含Android Studio生成的Java文件,例如R.java文件和根据AIDL文件创建的接口等。
            res/ 包含应用的资源,比如drawable文件,layout文件,界面的string。
            assets/ 包含要被编译在.apk文件的资源文件。你可以用URI和通过AssetManager读取字节流文件的形式来使用这个文件夹下的资源。比如像游戏的数据、texture可以放在改目录下。
        test/ 包含运行在JVM上的本地测试代码。
    build.gradle(module) 定义了特定的module的build配置。
build.gradle(project) 定义了所有module的build的配置。这个文件是项目不可缺少的,所以应该保持该配置与所有源码的一致。

Project Structure Settings###

改变Android Studio项目的各种设置,可以点击File>Project Structure。它包含了下面的部分:

Developer Services#####

这部分包含应用使用的一些服务的配置页。包含下面一些部分:

应用中打开上面任一项服务会是Android Studio添加必要的依赖和权限。如果你想启动哪项服务,每个配置页面列出了这些和其它的Android Studio的行为配置。

Modules#####

可以在该部分改变项目中每个module的配置。每个module的设置页面包含下面的分类:

查看更多资源信息###

上一篇下一篇

猜你喜欢

热点阅读