1:Project Structure 项目配置介绍
上面的配置都会在项目的build.gradle文件中显示出来
- Sdk Location中可以配置AS的SDK,NDK,JDK
2:build.gradle构建文件介绍
构建文件分为整个项目的和单个module的
**单个module的构建文件**
apply plugin: 'com.android.application'
apply plugin: 'com.getkeepsafe.dexcount' //统计整个app方法数的插件
android {
compileSdkVersion 25 //编译版本号
buildToolsVersion '26.0.2' //构建工具版本
dexOptions {
// incremental true
javaMaxHeapSize "4g"
preDexLibraries = false
}
defaultConfig {
applicationId "com.app.xx" //包名
minSdkVersion 17 //手机最低系统版本
targetSdkVersion 25 //目标版本号
versionCode 2017122103 //app版本号
versionName "4.3.1" //app版本名称
multiDexEnabled true //是否分包dex
ndk {
abiFilters "armeabi", "armeabi-v7a", "x86", "mips" //
}
}
signingConfigs { //签名配置
release {
keyAlias 'keyAlias ' //别名
keyPassword 'keyAlias ' //密码
storeFile file('.\\keyAlias .keystore') //路径一般放在module的根路径下面
storePassword 'keyAlias '
}
}
buildTypes { //构建app
release { //正式版本
pseudoLocalesEnabled true //如果没有提供混淆规则文件,则设置默认的混淆规则文件
// shrinkResources true // 移除无用的resource文件
zipAlignEnabled true //Zipalign优化
minifyEnabled true //开启关闭混淆
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'//引入混淆配置文件
signingConfig signingConfigs.release //签名
}
debug { //测试版本
pseudoLocalesEnabled true //如果没有提供混淆规则文件,则设置默认的混淆规则文件
// shrinkResources true // 移除无用的resource文件
zipAlignEnabled true //Zipalign优化
minifyEnabled false //开启关闭混淆
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'//引入混淆配置文件
signingConfig signingConfigs.release //签名
}
}
sourceSets { //引入jar包 一般是在module根目录创建一个libs文件夹存储jar和第三方so
main {
jniLibs.srcDir 'libs'
}
}
}
dependencies { //引入引用的第三方库
compile project(':commonlibs')//引入某个项目作为公用的
compile 'cn.yipianfengye.android:zxing-library:2.1'
compile 'com.qiniu.pili:pili-android-qos:0.8.+'
compile 'com.qiniu:qiniu-android-sdk:7.3.+'
compile 'com.daimajia.swipelayout:library:1.2.0@aar'
compile 'com.daimajia.androidanimations:library:1.1.2@aar'
}
android {
useLibrary 'org.apache.http.legacy'
}
1:module中配置的某些选项,在build.gradle中也会显示出来(sdk版本,build tools等)
在module或者build.gradle修改配置都会生效
2:Compile Sdk Version:开发和编译时用到的Sdk的版本号,这个就好比我们开发时选择那个 级别的sdk进行开发和编译。原则上是高版本开发,低版本编译。这样才能保证在我们支持 最低sdk版本的手机上不会出错
Build Tools Version:安卓构建工具的版本号,选择最新的即可
Min Sdk Version:支持安卓手机系统最低的版本
Max Sdk Version:支持安卓手机系统最高的版本
Target Sdk Version:app运行时系统是否以兼容模式运行app,设置为最新sdk即可
这个是什么意思呢?比如你指定target sdk version 为18,当系统运行时版本小于或者等于这个级别系统都默认不会兼容的模式来运行您的app,但是当你的手机系统升级到23完全高于18的时候,系统则会开启兼容模式来运行您的app。这个兼容简单来说比23系统有了新的默认主题他就会运用到你的app中。
一般来说Target Sdk Version设置为最新稳定sdk,然后在这个级别上测试自己的应用
注意:总结—以前总误会min sdk 就是开发时用到的最低sdk版本则完全不是,min sdk只是支持手机系统的最低级别,Compile Sdk Version才是我们开发和编译时用到的sdk。至于target sdk可以理解成target sdk==max sdk。一般平时开发只是测试了min sdk,很少测试max sdk。以后开发中有条件还是测试下,一般来说谷歌的sdk兼容还是不错,一把低版本在高版本运行是不会出错的。