- .gradle和.idea
这两个目录下的文件都是android studio自动生产的文件。 - app
项目中的代码和资源几乎都在这个文件中 - build
编译时自动生成的文件 - gradle
这个目录包含了 gradle wrapper的配置文件。使用gradle wrapper的方式不是提前将gradle下载好,而是根据本地缓存情况决定是否联网下载gradle,android studio默认是没有启用 gradle wrapper ,如果需要打点击 file->settings->build,
execution, deployment->gradle - .gitignore
这个文件用来将制定的文件或目录排除在控制版本之外 - builed.gradle
项目的全家gradle构建脚本。 - gradle.properties
全家gradle 配置文件,这里配置的属性将会影响项目中所有的gradle 编译脚本 - gradlew
- gradlew.bat
grdlew和gradlew.bat这两个文件用来在命令行界面中执行gradle命令的,其中gradlew在mac和linux中使用而gradew.bat在windows 中使用 - local.properties
这个文件用于指定本机中android SDK路径,通常内容是自动生成的。除非sdk路径变化,否则不用修改 - MyApplication.im
iml文件是所用inteliJ IDEA 项目都会自动生产的一个文件,用于标识这是一个InteliJ IDEA 项目。 - setings.gradle
这个文件用于制定项目中所引用的模板,通常情况下模板是自动引入的
- build
编译时自动生成的文件 - libs
项目中使用的第三方包就放在这个目录下 - src
项目的资源目录,如代码,图片 - adroidTest
此处用来编写android测试用例的。可以对项目进行一些自动化测试 - mian
android开发的目录 - java
java 代码目录 - res
资源目录。图片,字符串…… - AndroidManifest.xml
android 配置文件,此文件包含了 android 的活动注册,权限等等,非常重要 - test
编写Unit Test 测试用例。是对项目自动话测试的另一种方法 - .gitignore
这个文件将app模板内的制定目录或则文件排除在控制版本之外 - app.iml
inteliJ IDEA 项目自动生成文件 - build.gradle
app模板的gradle 构建脚本 - proguard-rules.pro
代码混淆规则,当代码开发完成之后打成安装包文件,如果不希望别人破解。可以将代码混淆,让人难以阅读。
#build.gradle#
gradle是一个非常先进的项目构建工具。基于groovy来声明项目的设置。摈弃了xml
##项目build.gradle##
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.2.2'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
jcenter()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
repositories 闭包声明了jcenter()这行这行配置。jcenter是一个代码托管库。很多android开源项目都会选择将代码托管到jcenter上。声明这行代码就可以轻松引用任何jcenter上的开源项目了
dependencies 闭包使用classpath声明gradle插件。这是因为gradle不仅可以构架android。java ,c++都是项目都是可以用gradle 构建的,因此要构建android 项目我们要声明’com.android.tools.build:gradle:2.2.2’(后面是版本号,可能不同)
##app build.gradle##
apply plugin: 'com.android.application'
android {
compileSdkVersion 24
buildToolsVersion "25.0.2"
defaultConfig {
applicationId "com.example.administrator.myapplication"
minSdkVersion 15
targetSdkVersion 24
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
compile 'com.android.support:appcompat-v7:24.2.1'
testCompile 'junit:junit:4.12'
}
apply plugin: 引用了一个插件,一般有两个可选值。
com.android.application表示是一个引用程序模块。
com.android.library表示是一个库模块
android闭包可以配置项目构建的各种属性。
compileSdkVersion 编译版本
buildToolsVersion 构建工具版本
defaultConfig 闭包项目的更多细节
applicationId 项目包名
minSdkVersion 最小兼容版本
targetSdkVersion 目标版本
versionCode 项目版本号
versionName 项目版本名
testInstrumentationRunner 测试用想起参考
http://wiki.jikexueyuan.com/project/android-gradle-guide/testing.html
buildTypes 闭包用于指定安装文件的相关配置。通常只会有两闭包。一个是debug,一个是release。debug闭包制定生成测试版安装文件的配置。release闭包用于指定生产正式版的安装文件的配置。debug闭包可以忽略不屑的。
minifyEnabled 制定混淆规则
proguardFiles getDefaultProguardFile(‘proguard-android.txt’), ‘proguard-rules.pro’ 这里制定了两个混淆规则’proguard-android.txt’在android sdk中,里面是所有项目通用的混淆规则。proguard-rules.pro是当前项目的根目录下的,里面可以编写当前项目特有的混淆规则。需要注意android studio直接运行的都是测试版安装文件。
dependencies 闭包它可以指定当前项目的所有的依赖关系。通常android studio 的项目一共有3种以来关系。本地依赖,库依赖远程依赖。
本地依赖可以对本地的jar包或目录添加依赖关系。库依赖可以对项目中的库添加依赖关系。远程依赖可以对jcenter库上的开源项目添加依赖关系。
compile fileTree(dir: ‘libs’, include: [’*.jar’])
compile fileTree添加本地依赖libs 下的所有.jar文件添加到项目构建路径中
compile ‘com.android.support:appcompat-v7:24.2.1’
compile 远程依赖。com.android.support域名部分,用于和其他公司的库做区分。appcompat-v7组名称。用于同一个公司的库做区分。24.2.1版本号
compile object (’:helper’)为库依赖
testCompile 'junit:junit:4.12’测试用的库例
【参考】《第一行代码》第一张