android studio 创建项目的一些配置
build.gradle文件
1 apply plugin: 'com.android.application' 2 apply plugin: 'org.greenrobot.greendao' // 使用greenDAO 3 4 def static releaseTime() {//获取当前时间 5 return new Date().format("MMdd", TimeZone.getTimeZone("UTC")) 6 } 7 android { 8 compileSdkVersion project.ext.compileSdkVersion//引用统一配置 9 buildToolsVersion '28.0.3' 10 11 compileOptions { 12 sourceCompatibility JavaVersion.VERSION_1_8//支持java8 13 targetCompatibility JavaVersion.VERSION_1_8 14 } 15 16 defaultConfig { 17 applicationId "xx.xx.xx" 18 minSdkVersion project.ext.minSdkVersion 19 targetSdkVersion project.ext.targetSdkVersion 20 versionCode 24 21 versionName "1.0.9.4" 22 23 testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" 24 ndk { 25 26 // 设置支持的SO库架构 27 abiFilters 'armeabi-v7a' //设置支持的arm架构 28 } 29 30 vectorDrawables.useSupportLibrary = true//是否使用svg 31 32 33 } 34 35 signingConfigs {//使用签名文件 36 debug { 37 storeFile file('xx.jks') 38 storePassword "xxxx" 39 keyAlias "xxxx" 40 keyPassword "xxxx" 41 } 42 43 release { 44 storeFile file('xxx.jks') 45 storePassword "xxx" 46 keyAlias "xxx" 47 keyPassword "xxxx" 48 } 49 } 50 51 buildTypes {//打包命名 52 release { 53 minifyEnabled false 54 proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 55 buildConfigField "boolean", "isNative", "false" 56 applicationVariants.all { variant -> 57 variant.outputs.all { output -> 58 def outputFile = output.outputFile 59 if (outputFile != null && outputFile.name.endsWith('.apk')) { 60 outputFileName = "${defaultConfig.versionName}.apk" 61 } 62 } 63 } 64 signingConfig signingConfigs.release 65 } 66 debug { 67 minifyEnabled false 68 proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 69 buildConfigField "boolean", "isNative", "true" 70 applicationVariants.all { variant -> 71 variant.outputs.all { output -> 72 def outputFile = output.outputFile 73 if (outputFile != null && outputFile.name.endsWith('.apk')) { 74 outputFileName = "${defaultConfig.versionName}_${versionNameSuffix}.apk" 75 } 76 } 77 } 78 versionNameSuffix "_debug_${releaseTime()}" 79 } 80 } 81 82 flavorDimensions "api" 83 84 85 productFlavors {//个性化配置 86 dev { 87 dimension "api" 88 buildConfigField "String", "BaseURL", '"http://192.168.10.175:3201"' 89 buildConfigField "String", "APIURL", '"http://192.168.10.175:3201"' 90 buildConfigField "String", "MQTT_SERVER", '"tcp://192.168.25.209:1883"' 91 92 } 93 94 95 normal { 96 dimension "api" 97 buildConfigField "String", "BaseURL", '"http://xxxx.com.cn"' 98 buildConfigField "String", "APIURL", '"http://xxxx.com.cn"' 99 buildConfigField "String", "MQTT_SERVER", '"ssl://xxxxx.com.cn:8883"' 100 } 101 } 102 103 104 sourceSets {//jniLib目录支持app/libs 105 main.jniLibs.srcDirs = ['libs'] 106 } 107 108 109 lintOptions { 110 checkReleaseBuilds false 111 // Or, if you prefer, you can continue to check for errors in release builds, 112 // but continue the build even when errors are found: 113 abortOnError false 114 } 115 116 117 } 118 119 greendao { 120 schemaVersion 4 121 daoPackage 'ai.yunji.delivery.greendao.gen' 122 targetGenDir 'src/main/java' 123 } 124 125 repositories { 126 flatDir { 127 dirs 'libs' 128 } 129 } 130 131 dependencies { 132 implementation fileTree(include: ['*.jar'], dir: 'libs') 133 testImplementation 'junit:junit:4.12' 134 implementation "com.android.support:appcompat-v7:${supportLibVersion}" 135 implementation 'com.android.support.constraint:constraint-layout:1.1.2' 136 // implementation 'org.glassfish.tyrus.bundles:tyrus-standalone-client:1.5' 137 // implementation('edu.wpi.rail:jrosbridge:0.2.0') { 138 // exclude group: 'org.glassfish.grizzly' 139 // exclude group: 'org.glassfish.tyrus' 140 // } 141 //log相关 142 implementation 'com.tencent.bugly:crashreport:latest.release' 143 //其中latest.release指代最新Bugly SDK版本号,也可以指定明确的版本号,例如2.1.9 144 implementation 'com.tencent.bugly:nativecrashreport:latest.release' 145 //其中latest.release指代最新Bugly NDK版本号,也可以指定明确的版本号,例如3.0 146 implementation 'com.trello.rxlifecycle2:rxlifecycle:2.1.0' 147 implementation 'com.trello.rxlifecycle2:rxlifecycle-android:2.1.0' 148 implementation 'com.trello.rxlifecycle2:rxlifecycle-components:2.1.0' 149 implementation 'com.tbruyelle.rxpermissions2:rxpermissions:0.9.3@aar' 150 implementation 'com.jakewharton:butterknife:8.8.1' 151 implementation "com.android.support:design:${supportLibVersion}" 152 annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1' 153 // implementation 'com.github.bumptech.glide:glide:4.7.1' 154 // annotationProcessor 'com.github.bumptech.glide:compiler:4.7.1' 155 implementation "com.android.support:recyclerview-v7:${supportLibVersion}" 156 // implementation 'com.jcodecraeer:xrecyclerview:1.5.9' 157 // implementation 'com.orhanobut:logger:2.2.0' 158 implementation 'com.elvishew:xlog:1.4.0' 159 implementation 'org.greenrobot:eventbus:3.0.0' 160 debugImplementation 'com.squareup.leakcanary:leakcanary-android:1.3' 161 releaseImplementation 'com.squareup.leakcanary:leakcanary-android-no-op:1.3' 162 implementation 'com.github.bumptech.glide:glide:4.8.0' 163 implementation 'com.zhy:okhttputils:2.6.2' 164 //greenDao 165 implementation 'org.greenrobot:greendao:3.1.0' 166 //logger 167 // implementation 'com.orhanobut:logger:2.2.0' 168 169 170 implementation 'com.squareup.retrofit2:retrofit:2.4.0' 171 // Retrofit库 172 implementation('com.squareup.retrofit2:converter-gson:2.1.0') { 173 exclude group: 'com.google.code.gson', module: 'gson' 174 } 175 implementation 'com.alibaba:fastjson:1.2.58' 176 implementation 'com.belerweb:pinyin4j:2.5.1' 177 178 implementation 'io.reactivex.rxjava2:rxandroid:2.1.1' 179 implementation 'io.reactivex.rxjava2:rxjava:2.1.1' 180 181 debugImplementation 'com.amitshekhar.android:debug-db:1.0.3' 182 implementation project(path: ':logger') 183 // implementation project(path: ':Water') 184 185 configurations { 186 all*.exclude group: 'com.google.code.gson' 187 } 188 189 }
项目的build.gradle
// Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { repositories { google()//如果网络不好,可以使用阿里服务器的镜像地址 maven { url 'http://maven.aliyun.com/nexus/content/groups/public/' } maven { url 'http://maven.aliyun.com/nexus/content/repositories/jcenter' } jcenter() mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:3.2.1' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files classpath 'com.novoda:bintray-release:0.8.0' // classpath 'com.jakewharton:butterknife-gradle-plugin:8.8.1-rc1' //GreanDao classpath 'org.greenrobot:greendao-gradle-plugin:3.1.0' } }/* ext { compileSdkVersion = 27 buildToolsVersion = '27.0.3' minSdkVersion = 14 targetSdkVersion = 27 supportLibraryVersion = '27.0.2' versionCode = 113 versionName = "1.1.3" }*/ ext { minSdkVersion = 8 targetSdkVersion = 27 compileSdkVersion = 27 buildToolsVersion = '27.0.3' } ext.deps = [ junit : 'junit:junit:4.12', truth : 'com.google.truth:truth:0.28', robolectric : 'org.robolectric:robolectric:3.3', mockito : "org.mockito:mockito-core:2.8.9", json : "org.json:json:20160810", supportAnnotations: "com.android.support:support-annotations:27.1.0", ] subprojects { apply from: "${rootProject.rootDir}/common_config.gradle" } allprojects { repositories { google() maven { url 'http://maven.aliyun.com/nexus/content/groups/public/' } maven { url 'http://maven.aliyun.com/nexus/content/repositories/jcenter' } jcenter() mavenCentral() } } task clean(type: Delete) { delete rootProject.buildDir }
gradle.properties
android.injected.testOnly=false#一般情况下debug包给用户是安装不了的,因为打包的时候会自动在androidmenifest.xml中添加testOnly=true,这种情况下只能使用adb install -t xxx.apk安装,如果加这句话就不会影响安装了