应用场景 现在大多数公司都是在svn上面存放项目 而且不少公司都是用Eclipse来开发的 所以目录结构有所不同
如果不熟悉想熟悉gradle的推荐“gradle插件用户指引中文版”
下文的android studio 用AS代替
如果你现在是1.0版本的AS 可以忽略本博客,因为1.0版本的导入后直接会拷贝成AS格式的Proect 但是密钥读取这快还是可以参考下
首先 New一个Project
- 这里普及一下 android Studio里的Project类似于Eclipse里的 workspace 里面的moudle类似Eclipse里的Project
Project里面的build.gradle文件主要是定义了repositories 和 gradle的dependencies 可以大致看下
- 然后 VCS——CheckOut Form Verson Control SVN
Subversion 然后输入SVN地址 选择项目
然后 选择Checkout然后选择呢自己的Project下面 然后选择Upgrade
Automtically
- 然后选择gradle构建 里面会为每个svn上的 project生成 .iml文件
这个文件主要是为了对module的描述 未深究过 例如导入的项目名字为app,就会生成一个app.iml同时会为app生成一个build.gradle
这时候 你需要在AS的Project里面的bulid的settings.gradle里面 include你的moudle 例如:include ‘:app’(lib也要添加)
重点来了 重点是你需要在自己app下面的build.gradle里面定义你的sourceSets
因为 gradle遵循约定优于配置的原则 默认的目录结构跟maven类似 所以你要配置成适用的结构
如:
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = ['src']
resources.srcDirs = ['src']
aidl.srcDirs = ['src']
renderscript.srcDirs = ['src']
res.srcDirs = ['res']
assets.srcDirs = ['assets']
jniLibs.srcDirs = ['libs']
}
}
同时里面的
dependencies需要添加如下配置
compile fileTree(include: '*.jar',dir: 'libs')
#####记得jar和libs的顺序 不要反了 否则会出问题
如果有其引用的lib,除了在project的setting里面引用,也需要在这里添加
如
compile project(':applib')
签名配置如下
signingConfigs {
coyoteConfig{
storeFile file("秘钥文件")
storePassword "秘钥密码"
keyAlias "别名"
keyPassword "别名密码"
}
}
如果想动态使用密码可以这样从控制台读取 这是从Stackoverflow上面学到的
signingConfigs {
release {
storeFile file(System.console().readLine("\n\$ Enter keystore path: "))
storePassword System.console().readPassword("\n\$ Enter keystore password: ")
keyAlias System.console().readLine("\n\$ Enter key alias: ")
keyPassword System.console().readPassword("\n\$ Enter key password: ")
}
}
或者从环境变量中读取
signingConfigs {
release {
storeFile file(System.console().readLine("\n\$ Enter keystore path: "))
storePassword System.console().readPassword("\n\$ Enter keystore password: ")
keyAlias System.console().readLine("\n\$ Enter key alias: ")
keyPassword System.console().readPassword("\n\$ Enter key password: ")
}
}
构建配置里面如下
//构建配置
buildTypes{
release {
//使用签名配置
signingConfig signingConfigs.coyoteConfig
// shrinkResources true
minifyEnabled true
proguardFile 'proguard-project.txt'
}
}
这里的minifyEnabled为true说明使用混淆文件proguard-project.txt
这里要注意的是proguard-project.txt里面的配置 因为ant的个gradle的有些区别
所以被坑过
如果你有annotation 必须要使用
-keepattributes *Annotation*
例外了 否则会出错
也要使用
-keep public class * extends android.support.v4.**
来保持fragment的使用
同时 由于上面gradle配置文件使用了 compile fileTree
所以 不用使用libraryjars来例外jar包
android的主project使用
apply plugin: 'com.android.application'
lib项目使用
apply plugin: 'com.android.library'
其余的基本无差