• 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安装,如果加这句话就不会影响安装了
  • 相关阅读:
    世界编程大赛第一名编写的程序3D世界
    bool与BOOL
    防浪涌电路
    用户至上,体验第一
    VC菜菜鸟创建多线程任务HelloWorld
    Google,a good dog
    算法学习之路
    巧用VC工程下的rc文件
    堆与栈
    关于信息量的压缩
  • 原文地址:https://www.cnblogs.com/dongweiq/p/11465770.html
Copyright © 2020-2023  润新知