Android studio 项目构建一|依赖

来源:互联网 发布:软件调试什么意思 编辑:程序博客网 时间:2024/05/21 14:46

简介

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

背景

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

这里写图片描述

如图所示,典型 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的一些依赖

  • Android Support Library
  • Architecture Components Library
  • Constraint Layout Library
  • Android Test Support Library
  • Databinding Library
  • Android Instant App Library

需要仓库

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.
    如下图:
    这里写图片描述

参考

原创粉丝点击