Android Studio 项目结构
Android Studio 的一个 project (项目)下可以包含多个独立的 module(模块),图中 Bugtags-Android-Demo 便是一个项目,app 便是一个 module。结构如下。
adle:项目的 adle 文件,主要是全局的远程库配置、gradle 插件版本等信息
project/app:名字为 app 的模块
adle:模块的 adle 文件,是最关键的配置文件,后续会有文章继续专门介绍 gradle build system
project/app/src:源码文件夹
project/app/src/java:放置代码文件
project/app/src/jniLibs:默认的.so 库放置的位置,可以在模块的 adle 中通过jniLibs.srcDirs 值来修改所在位置
project/app/libs:放置 .jar 库
与gradle相关的文件:
1.gradle.properties:
从名字上就知道它是一个配置文件,没错,这里面可以定义一些常量供adle使用,比如可以配置签名相关信息如keystore位置,密码,keyalias等。
adle:
这个文件是用来配置多模块的,比如你的项目有两个模块module-a,module-b,那么你就需要在这个文件中进行配置,格式如下:
1 | include ':module-a',':module-b' |
| |
3.gradle文件夹:
这里面有两个文件,gradle-wrapper.jar和gradle-wrapper.properties,它们就是gradle wrapper。gradle项目都会有,你可以通过命令gradle init来创建它们(前提是本地安装了gradle并且配置到了环境变量中)。
4.gradlew和gradlew.bat:
这分别是linux下的shell脚本和windows下的批处理文件,它们的作用是根据gradle-wrapper.properties文件中的distributionUrl下载对应的gradle版本。这样就可以保证在不同的环境下构建时都是使用的统一版本的gradle,即使该环境没有安装gradle也可以,因为gradle wrapper会自动下载对应的gradle版本。
gradlew的用法跟gradle一模一样,比如执行构建gradle build命令,你可以用gradlew build。gradlew即gradle wrapper的缩写。
1.导入本地jar包:
跟eclip不太一样,android studio导入本地jar除了将jar包放到模块的libs目录中以外,还得在该模块的adle中进行配置,配置方式是在dependencies结点下进行如下声明:
1 | compile files('libs/xxx.jar') |
| |
如果libs下有多个jar文件,可以这样声明:
1 | compile fileTree(dir: 'libs', include: ['*.jar']) |
| |
2.导入maven库:
1 | compile 'com.android.support:appcompat-v7:21.0.3' |
| |
可见,格式为
1 郑南宁 | compile 'groupId:artifactId:version' |
| |
3.导入某个数学类专业project:
你的app是多模块的,假设有两个模块app和module-A,并且app模块是依赖module-A的,这时候我们就需要在app模块的adle中的dependencies结点下配置依赖:
1 | compile project(':module-A') |
| |
毛语录并且你需要在adle中把module-A模块包含进来:
发明小故事
1 | include ':module-A',':app' |
| |
长筱之战
此外,这种情况下module-A肠开头的成语模块是作为库存在的,因而它的adle中的插件声明通常
应该是这样的:
1 | apply plugin: 'com.android.library'阿弥陀佛头 |
| | 男主是医生的小说
而且,作为library的模块module-A的adle文件的defaultConfig中是不允许声明applicationId的,这点需要注意。