Android项目结构(翻译)

原文链接

项目概述

一个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类型:

  • Phone & Table Module 手机、pad module
  • Android Wear Module 手表module
  • Android TV Module 电视module
  • Glass Module 眼镜module

    上面的每一种都提供一些适合对应的应用或设备类型的基本的文件和代码模板。

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

Library module

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

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

  • Android Library:该类型包含一个Android项目支持的所有文件类型,包括源码、资源文件、清单文件等。Build的结果是一个归档文件(Android Archive file AAR),可以作为app module的依赖。
  • Java Library:该类型只包含java源文件。Build的结果是一个java归档文件(Java Archive file JAR),可以作为Android app module或java项目的依赖。
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和文件类型的形式来简洁明了展示项目的核心文件,隐藏不常用的文件和文件夹。和物理实际的文件结构相比有下面一些变化:

  • 显示所有的工程的build-related的配置文件在一个顶层的Gradle Script组。
  • 将每个module的manifest文件展示在模块分组(不同的产品build类型有不同的清单文件)。
  • 将所有可选择性的资源文件放在一个单独的分组,替换掉分类文件夹的修饰符。例如,所有不同像素的应用icon可以并排显示。

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

manifests

包含AndroidManifest文件。

java

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

res

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

Android的Project类型视图

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

当你选择了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。它包含了下面的部分:

  • SDK Location: 设置项目的JDK, Android SDK, Android NDK的位置。
  • Project: 设置Gradle、Android plugin for Gradle的版本,库的名字。
  • Developer Services:包含从谷歌和其他第三方添加Android Studio add-in组件的设置。
  • Modules: 允许你编辑特定module的配置,包括目标、最小版本的SDK,应用的签名,依赖库等。
Developer Services

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

  • AdMob:允许你打开谷歌的AdMob组件,帮助你了解用户并展示定性的广告。
  • Analytics:允许你打开谷歌的Analytics,帮助你观测应用在不同的设备环境上的用户交互情况。
  • Authentication:允许你使用谷歌账号登录应用。
  • Cloud:允许你为应用打开Firebase云基础服务。
  • Notifications:允许你使用谷歌云信息来实现应用与服务的交互。

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

Modules

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

  • Properties:指定编译该module的SDK和build tools的版本。
  • Signing:指定应用的签名证书
  • Flavors: 创建多个build的偏好,每个偏好指定了一些列的配置设置,比如module的最小和目标SDK的版本、版本的名字、版本号。比如:可以设置偏好为minimun SDK=15,target SDK=21;另一个偏好设置为minimum SDK=19, target SDK=23。
  • Build Type:可以创建和修改build的配置。默认的每个module有debug和release的build类型,但你可以定义更多需要的。
  • Dependencies:列出该模块依赖的类库,文件和模块。你可以在改部分添加,修改、删除依赖。

查看更多资源信息

时间: 2024-11-04 09:54:27

Android项目结构(翻译)的相关文章

Android项目结构 以及体系结构

学习Android平台的人一般对Android的平台的应该有点认识 其它的就不多讲了 Android项目一般由以下几个部分构成 以上是一个简单的Android项目结构目录图 1. src  主要是 源文件目录 放置业务逻辑代码以及相应的UI代码 2. gen 下面有个R.java文件夹 该文件是建立Android项目自动生成的  该文件是只读文件 不可以更改 里面有很多静态 类名字与res的中资源文件一一对应 一般有attr ,drawable id raw layout string xml

Android之什么是Activity和常用的ADB命令以及Android项目结构的认识

总结一下之前学习Android的一些内容 一:  Android常用的ADB命令(adb android调试桥)      1.adb devices   查看模拟器设备并重新连接. 2.adb kill-server   关掉所有模拟器设备. 3.adb install-r  url(安装路径),安装,-r表示替换. 4. adb uninstall url(卸载路径) ,卸载. 5.adb push<本地文件><远程路径>   上传文件. 6.adb pull <远程路径

&#167;1.2 Android项目结构及“Hello World”应用解析

书接上文,我们创建一个新的Android项目,进入Android Studio开发页面,如下图: 左侧为项目工具窗口,通过项目工具窗口可以管理整个项目的相关文件右侧为代码编辑区,我们可以在这里进行Android程序的开发工作底部为调试区,在调试区可以进行程序的断点调试.日志打印,可以监视整个程序的内存消耗,从而有针对性的进行性能优化. 首先,通过查看左侧的项目工具窗口区,为大家介绍一个Android项目的基本结构: 如上图所示,在这里我们只需要关注图中app目录下的内容: build目录:构建目

重新规划Android项目结构

我们需要重新规划Android项目的目录结构,分两步走: 第一步:建立AndroidLib类库,将与业务无关的逻辑转移到AndroidLib. AndroidLib中应该包括哪些业务无关的逻辑呢?应至少包括五大部分. 这几部分的说明如下: activity包中存放的是与业务无关的Activity基类.Activity基类要分两层,如图1-3所示. AndroidLib下的基类BaseActivity封装的是业务无关的公用逻辑,主项目中的AppBaseActivity基类封装的是业务相关的公用逻辑

Android项目结构

近期说要上手Android项目所以看了一些资料.新建项目以后.看见项目结构真的好多东西啊,瞬间有点儿蒙圈,带大家来了解一下. 总体结构如图: 接下来一步一步的介绍: (1)src:java源码存放文件夹,java代码文件就存放到这个里面.如图: (2)gen:自己主动生成文件夹,存放全部由Android开发工具自己主动生成文件.文件夹中最重要的就是R.java文件.这个文件由Android开发工具自己主动产生的.Android开发工具会自己主动依据你放入res文件夹的资源,同步更新改动R.jav

Android项目结构介绍

src/存放Java源代码gen/中存放系统自动生成的配置文件Android 4.4.2下包含android.jar文件,这是一个Java归档文件,其中包含构建应用程序所需的所有的Android SDK库(如Views.Controls)和APIsassets/存放资源文件,不会自动升恒id且不会自动占用空间bin/存放应用被编译后生成的可执行文件(.apk),以及应用被打包到apk中的资源文件drawable/存放不同密度的图片资源res/存放应用用到的所有资源,如图片布局等 layout/存

android第一行代码-1.项目结构

0.项目结构 一个简单的android项目结构大致如下 入口就是MainActivity这个类,如果对于一个陌生的项目,最好的办法是看AndroidMainifest.xml,如下 <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="act

Android系列教程之Android项目的目录结构

一: Android 项目的目录结构 Android 项目结构概览.其实 Android 项目的目录结构和 Java 的差不多,没有太大变化,如下图:  可以看到 src 文件夹里的是源文件, Android2.2 是引用的类库,这些和 java 的都一样,那么下面的这个 gen 是什么呢?这个里面的类就是 ADT 自动生成的啦,一般只有一个 R.java 文件,是不能修改的,那么他是怎么生成的呢,看到下面的 res 文件夹了吗? R.java 就是根据资源文件夹 res 生成的 ,R.java

Android项目文件结构

一.Project项目结构 app/build/ app模块build编译输出的目录 app/build.gradle app模块的gradle编译文件 app/app.iml app模块的配置文件 app/proguard-rules.pro app模块proguard文件 build.gradle 项目的gradle编译文件 settings.gradle 定义项目包含哪些模块 gradlew 编译脚本,可以在命令行执行打包 local.properties 配置SDK/NDK MyAppl