接下来是以下这四个部分:
- Create projects and modules.
- Work with the project structure.
- Eidt build files to configure the build process.
- Build and run your app.
关于如何创建Project这里就不说了, 默认创建的Project中有一个app的Module。
接下来的部分说一下如何在Project中创建一个library module并且把该library变成程序的一个依赖module。
File菜单后选择New Module或在Project上右键选New Module. More Modules选择Android Library后Next. mylibrary后一直Next即可. Module中的build.gradle你会看到apply plugin: ‘com.android.library‘说明这是一个library. 上一步我们创建了mylibrary module, 现在我们想让app module依赖与mylibrary module, 但是构建系统还不知道,
我们需要修改app module下的build.gradle文件添加mylibrary module就可以了。
...
dependencies {
...
compile project(":mylibrary")
}
Android Studio中build project点击上面导航栏中的Build菜单然后选择Make Project, 这时窗口底部的状态栏就会显示build的进度。
点击窗口右边底部的
图标来显示Gradle Console.

在窗口右边栏点击Gradle窗口可以看到当前所有可用的build tasks, 双击里面的task即可执行。

点击Gradle tasks页面, 展开app中的task然后双击assembleRelease即可。
接下来以MyApplication Project说明以下几个部分:
- Use the syntax from the Android plugin for Gradle in build files.
- Declare dependencies.
- Configure ProGurad settings.
- Configure signing settings.
- Work with build variants.
Android Studio projects中包含一个build file,每个module中也有一个build file名字为build.gradle.
下面是Project中app module的build.gradle文件
apply plugin: ‘com.android.application‘
android {
compileSdkVersion 19
buildToolsVersion "21.1.1"
defaultConfig {
applicationId "com.charon.myapplication"
minSdkVersion 15
targetSdkVersion 19
versionCode 1
versionName "1.0"
}
buildTypes {
release {
runProguard false
proguardFiles getDefaultProguardFile(‘proguard-android.txt‘), ‘proguard-rules.pro‘
}
}
}
dependencies {
compile fileTree(dir: ‘libs‘, include: [‘*.jar‘])
compile project(":mylibrary")
}
apply plugin: ‘com.android.application’ 声明了Gradle的类型为Android应用程序,这样会在最高级的build tasks中添加
一个Android程序特有的build任务并且创建android {…}来声明Android程序特殊的build配置。
android {…}部分配置了所有Android程序的build配置:
- compileSdkVersion表明了编译的目标SDK版本。
- buildToolsVersion 声明了当前 build的版本, 可以使用SDK Manager来下载多个build版本。
注意:最好使用高版本的build工具或者是和编译是目标SDK版本对应的build版本。
- defaultConfig配置了AndroidManifest.xml中的重要设置。
- buildTyppes部分控制着如何去build和打包你的程序,默认时会定义两种build类型:debug 和 release. debug类型带有默认的
debugging标示,用debug key进行签名, release版本默认时没有签名,上面的配置中release时没有使用ProGuard.
dependencies部分是在android之外,该部分声明了依赖的module。
注意:当修改项目中得build files时,Android Studio需要进行项目同步来导入相应的build配置变化, 点击Android Studio中黄色通知部分的Sync Now
来进行变化的导入。
dependencies {
// Module dependency
compile project(":lib")
// Remote binary dependency
compile ‘com.android.support:appcompat-v7:19.0.1‘
// Local binary dependency
compile fileTree(dir: ‘libs‘, include: [‘*.jar‘])
}
Module. Android SDK仓库中所有的support v7包。 jar包,这些jar包是在项目中的libs目录中。 构建过程中可以使用ProGuard进行代码混淆, 修改build文件中的runProGuard选项为true即可。
...
android {
...
buildTypes {
release {
runProguard true
proguardFiles getDefaultProguardFile(‘proguard-android.txt‘), ‘proguard-rules.pro‘
}
}
}
...
getDefaultProguardFile(`proguard-android.txt`)包含了Android SDK安装时默认的ProGuard设置。Android Studio在module的根目录中
添加了proguard-rules.pro文件,可以在这里配置相应的ProGuard规则。
debug版本和release版本的应用区别在于应用程序能不能在一些稳定的设备上进行debug和APK是怎样进行签名的。 构建系统对debug版本使用默认的签名并且使用已知的
证书以便在构建过程中不会进行代码提示。如果你不指定签名配置时构建系统不会对release版本进行签名。
下面是如何让程序在release版本进行签名
- 拷贝签名文件到app module的根目录。
这样就可以保证当你在其他机器上构建项目的时候可以找到你的签名文件, 如果你没有签名文件,可以先创建一个。
- 在app module中的build file中配置签名选项。
java
...
android {
...
defaultConfig { ... }
signingConfigs {
release {
storeFile file("myreleasekey.keystore")
storePassword "password"
keyAlias "MyReleaseKey"
keyPassword "password"
}
}
buildTypes {
release {
...
signingConfig signingConfigs.release
}
}
}
...
Android Studio中的build task页面运行assembleRelease。 app/build/apk/app-release.apk下的包现在就是使用签名文件签过名的了。 build文件中不是很安全, 可以把密码配置到环境变量中或者是让其在构建的过程中提示输入密码。 这里我们就先不介绍如何配置了,可以自己搜索下。 至于开始所说利用Gradle可以很简单的进行多渠道打包会在以后专门讲解, 这里先到此为止了。
原文地址:http://blog.csdn.net/charon_chui/article/details/44979439