欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Android studio 项目构建一|依赖

程序员文章站 2022-05-15 23:39:20
...

简介

这篇文章主要从目的出发,解决多市场平台的Apk打包如何配置。

背景

Android Studio 是使用Gradle构建整个项目,完成项目的代码编译、代码混淆成DEX、DEX和资源打包。这些步骤都可以看成一个个任务有序的进行,而Gradle就是工头。Gradle使用Groovy动态语言作为构建Gradle框架的语言。

Android studio 项目构建一|依赖

如图所示,典型 Android 应用模块的构建流程通常依循下列步骤:

  • 编译器将您的源代码转换成 DEX(Dalvik Executable) 文件(其中包括运行在 Android 设备上的字节码),将所有其他内容转换成已编译资源。
  • APK 打包器将 DEX 文件和已编译资源合并成单个 APK。不过,必须先签署 APK,才能将应用安装并部署到 Android 设备上。
  • APK 打包器使用调试或发布**库签署您的 APK:
    如果您构建的是调试版本的应用(即专用于测试和分析的应用),打包器会使用调试**库签署您的应用。Android Studio 自动使用调试**库配置新项目。
  • 如果您构建的是打算向外发布的发布版本应用,打包器会使用发布**库签署您的应用。要创建发布**库,请阅读在 Android Studio 中签署您的应用。
  • 在生成最终 APK 之前,打包器会使用 zipalign 工具对应用进行优化,减少其在设备上运行时的内存占用。

构建流程结束时,您将获得可用来进行部署、测试的调试 APK,或者可用来发布给外部用户的发布 APK。

构建不同applicationID的apk

当在上传市场时需要两个版本:免费和付费。
增加产品类型productFlavors

android {
    defaultConfig {
        applicationId "com.kunion.gradletest"
    }
    productFlavors {
        free {
            applicationIdSuffix ".free"
        }
        paid{
            applicationIdSuffix ".pro"
        }
    }
}

增加产品类型 free和paid,生成的apk的包名变为”com.kunion.gradletest.free”和”com.kunion.gradletest.pro”。

增加依赖

apply plugin: 'com.android.application'

android { ... }
dependencies {
    // Dependency on a local library module
    compile project(":mylibrary")

    // Dependency on local binaries
    compile fileTree(dir: 'libs', include: ['*.jar'])

    // Dependency on a remote binary
    compile 'com.example.android:app-magic:12.3'
}

增加本地依赖模块

compile project(":mylibrary")

增加本地依赖jar包

compile fileTree(dir: 'libs', include: ['*.jar'])

路径:project/app/libs/*

同事也可以单独加载jar包

compile files('libs/foo.jar', 'libs/bar.jar')

远程依赖包

Gradle会根据项目中设置的依赖仓库同步下载依赖包。
缩写写法

compile 'com.example.android:app-magic:12.3'

全名称写法

compile group: 'com.example.android', name: 'app-magic', version: '12.3'

常用依赖配置

compile 编译并打进apk
apk 打包进apk
provided 编译不打进apk
testCompile 测试编译使用 如JUnit工具
androidTestCompile android测试时使用 如esprosso

远程依赖配置

路径:project/build.gradle
增加仓库

allprojects {
    repositories {
        jcenter()
        mavenCentral()
        maven {
            url "https://repo.example.com/maven2"
        }
        maven {
            url "file://local/repo/"
        }
        ivy {
            url "https://repo.example.com/ivy"
        }
    }
}

google的一些依赖

需要仓库

repositories {
    maven {
        url 'https://maven.google.com'
        // Alternative URL is 'https://dl.google.com/dl/android/maven2/'
    }
}

依赖顺序

依赖的顺序有两个,1、按照依赖加入先后顺序;2、无重复依赖优先

如:加入依赖 libA和libB,libA先
libA依赖于libC和libD
libB也依赖于libC
所以最后的依赖顺序是 libA libD libB libC
libA优于libB 而libD因为libA也优于libB, libC因为libB也依赖于libC所以降序。故,下来是libB 和libC

查看依赖

  1. 选择Select View > Tool Windows > Gradle 出现Gradle工具窗口。
  2. 展开 AppName > Tasks > android 然后双击androidDependencies.
  3. 选择View > Tool Windows > Gradle Console.
    如下图:
    Android studio 项目构建一|依赖

参考

相关标签: android