• 【Android】【Gradle】


     运行app:stripDebugDebugSymbols:
         ./gradlew.bat app:stripDebugDebugSymbols -PreactNativeDevServerPort=8081  --stacktrace
    
    • 1
    • 2
    gradlew用于命令行安装Gradle,解决了用正确版本的Gradle来构建项目的问题
    执行构建时: 执行 .		/gradlew.bat  //Gradle startup script for Windows
    输出的apk安装包: 		app/build/outputs/apk:
    输出签名:				Gradle:app-Tasks-android-signingReport 
    手动添加依赖, 先把jar复制到libs目录下, 再在 [项目结构-Modules-app-Dependencies-加号]	
    最上面是ActionBar, 取而代之的是ToolBar
    
    gradle的解析顺序:    
        ==Project 的	setting.gradle
        ==Project 的	build.gradle
        ==》app	的	build.gradle
    
    //settings.gradle 
    include ':app'     //指示Gradle在构建应用时应将哪些模块包括在内
    
    //gradle-wrapper.properties 
    gradle-wrapper 允许您构建Android项目,而无需先安装Gradle。
    gradle wrapper task 利用此文件来下载指定的gradle
    //Project 顶级构建文件
    //bulid.gradle
    buildscript {//配置Gradle自己的依赖
        dependencies {
            classpath 'com.android.tools.build:gradle:3.4.0'
            //谷歌做的AS的插件 Android Gradle Plugin 3.4.0是插件版本
            //提供了Android 编译、测试、打包等等的所有task,Gradle使用它来构建项目
        }   
         //Gradle 搜索和下载自身依赖的库,Android Studio 3.0以上包括google()Maven库
        repositories {
            google{ url 'https://maven.aliyun.com/repository/google'}
            maven { url 'https://maven.aliyun.com/nexus/content/groups/public/' }Error:SSL peer shut down incorrectly解决。
            jcenter{url 'https://maven.aliyun.com/repository/public'}
        }
    }	
    allprojects {//被所有模块引用的依赖
       repositories {
            google{ url 'https://maven.aliyun.com/repository/google'}
            maven { url 'https://maven.aliyun.com/nexus/content/groups/public/' }
            jcenter{url 'https://maven.aliyun.com/repository/public'}
       }
    }
    //app  模块级构建文件
    //build.gradle
    apply plugin: 'com.android.application' //这将“应用”Android插件
    //Groovy语言, 这段代码其实就是调用了project对象的apply方法,传入了一个以plugin为key的map。完整写出来就是这样的:
    //project.apply([plugin: 'com.android.application'])
    
    android {//android:这是编译文件中最大的代码块,关于android 的所有特殊配置都在这里,这就是由我们前面的声明的 plugin 提供的。
        compileSdkVersion 25 //告诉gradle 用哪个SDK版本来编译,
        buildToolsVersion "26.0.0"//buildToolsVersion需要>=CompileSdkVersion; 高版本的build-tools 可以构建低版本编译的android程序
        defaultConfig {
           //defaultConfig就是程序的默认配置,注意,如果在AndroidMainfest.xml里面定义了与这里相同的属性,会以这里的为主。
            applicationId "test.alexander.ru.testapp"
            /*这里最有必要要说明的是applicationId的选项:在我们曾经定义的AndroidManifest.xml中,那里定义的包名有两个用途:
           // 作为程序的唯一识别ID,防止在同一手机装两个一样的程序,        作为我们R资源类的包名
            //在以前我们修改这个ID会导致所有用引用R资源类的地方都要修改,
           // 但是现在我们如果修改applicationId只会修改当前程序的ID,而不会去修改源码中资源文件的引用。*/
            //这applicationId是基于创建应用程序时指定的域名和项目名称,并且在Google Play商店中必须是唯一的。
            minSdkVersion 19//该值minSdkVersion是您愿意为此应用程序支持的最小Android API,
            targetSdkVersion 25//而targetSdkVersion应该是最新的Android版本。
            versionCode 1//该值versionCode应该是在将新版本的应用上传到Google Play商店之前递增的整数。与此同时,这个值applicationId告诉Google,这是一个现有应用程序的新版本,而不是一个新的应用程序。
            versionName "1.0"//该versionName值用于您自己的内部版本跟踪。
            testInstrumentationRunner//该testInstrumentationRunner属性配置为使用为Android应用程序配置的JUnit 4测试运行器。
                "android.support.test.runner.AndroidJUnitRunner"
        }
        buildTypes {
        //buildTypes:定义了编译类型,针对每个类型我们可以有不同的编译配置,不同的编译配置对应的有不同的编译命令。
        //默认的有debug、release 的类型。
             release {//默认情况下,Android应用程序支持两种构建类型,debug和release。debug正在使用的所有默认设置。
                minifyEnabled false
                proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            }
        }
    }
    
    dependencies {//dependencies:是属于gradle 的依赖配置。它定义了当前项目需要依赖的其他库。
        compile fileTree(dir: 'libs', include: ['*.jar'])//是一个fileTree依赖,它将文件libs夹中的任何jar文件添加到编译类路径中
    //testCompile依赖关系只包含最新稳定的JUnit 4分发
        androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {//该androidTestCompile依赖性是指咖啡的测试库,用于Android应用程序的集成测试。在这种情况下,请求没有support-annotations通常包含的库的Espresso ,因为已经通过其他依赖关系包含不同的版本。
            exclude group: 'com.android.support', module: 'support-annotations'//JUnit类和测试注释将在编译时在src/test/java层次结构中可用。
        })
        compile 'com.android.support:appcompat-v7:25.3.1'
        //将Android兼容性库添加到项目中。这允许您在任何Android应用程序中使用与SDK版本7一样的材料设计主题和其他功能
        testCompile 'junit:junit:4.12'
        compile 'com.android.support.constraint:constraint-layout:1.0.2'//将新的约束布局添加到项目中。结合兼容性库,您可以创建具有最新布局功能的应用程序
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78
    • 79
    • 80
    • 81
    • 82
    • 83
    • 84
    • 85
  • 相关阅读:
    javascript检测网页缩放演示代码
    redis能否替代threadlocal
    响应系统的作用与实现
    mysql整库备份表结构和数据
    casaos app下载失败。求指导
    QT软件开发-基于FFMPEG设计视频播放器-支持软解与硬解(三)
    自控力前言
    力扣每日一题-第31天-13.罗马数组转整数
    Java中的IO操作
    Android SurfaceFlinger导读(04)理解BufferQueue
  • 原文地址:https://blog.csdn.net/a571574085/article/details/126100013