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
查看依赖
- 选择Select View > Tool Windows > Gradle 出现Gradle工具窗口。
- 展开 AppName > Tasks > android 然后双击androidDependencies.
- 选择View > Tool Windows > Gradle Console.
如下图:
参考
阅读全文
0 0
- Android studio 项目构建一|依赖
- Android studio依赖项目
- Android - Gradle项目构建依赖
- Android studio导入依赖项目
- 向基于Android Studio构建的项目中导入开源库(依赖)
- Android Studio Gradle 构建项目下载依赖包慢的解决方式
- jenkins构建android studio项目
- Android studio 项目构建四|构建变体
- Android Studio项目依赖Eclipse项目
- Android Studio jar、so、library项目依赖
- Android Studio 项目的导入以及依赖
- Android Studio 下项目的依赖配置
- Android Studio Jar、so、library项目依赖
- Android studio 依赖可运行项目
- Android Studio导入其他项目依赖
- android studio查看项目依赖情况
- Android studio项目依赖导入
- Android Studio jar、so、library项目依赖
- XML解析之PULL解析
- YUV格式学习:YUV420P、YV12、NV12、NV21格式转换成RGB24
- 《数据结构学习与实验指导》5-2:字符串关键字的散列映射
- vue-cli脚手架安装教程2017
- 多进程拷贝文件
- Android studio 项目构建一|依赖
- LeetCode- 125. Valid Palindrome
- nyoj-32 组合数
- poj 2096 Collecting Bugs(dp求数学期望)
- linux-du/df
- redis集群原理
- LIS(最长上升子序列)问题的三种求解方法以及一些例题
- 【必看】分析各大招聘网站
- NYOJ 811 变态最大值