Android应用构建:15:使用gradlew和Android SDK镜像构建安卓应用
发布日期:2021-06-30 20:16:02
浏览次数:3
分类:技术文章
本文共 2350 字,大约阅读时间需要 7 分钟。
这篇文章以Android SDK 26.1.1 和gradle 5.4.1为例(在前面使用Android Studio 3.5.3的示例应用中所使用的版本),介绍如何安卓应用构建的容器化方式。Dockerfile
FROM liumiaocn/android:sdk.26.1.1COPY Demo/ /data/DemoRUN /data/Demo/gradlew --version
Dockerfile说明:
- 使用Android SDK 26.1.1版本作为基础镜像
- 将示例应用拷贝至/data/Demo下
- 执行gradlew --version从而初始化gradle在当前用户下的安装,后续直接使用此镜像可不再需要下载
Demo应用:https://github.com/liumiaocn/easypack/tree/master/containers/standard/android/Demo
镜像下载
下载命令:docker pull liumiaocn/android:sdk.26.1.1.gradlew.5.4.1
版本确认
liumiaocn:android liumiao$ docker run --rm liumiaocn/android:sdk.26.1.1.gradlew.5.4.1 /data/Demo/gradlew --version------------------------------------------------------------Gradle 5.4.1------------------------------------------------------------Build time: 2019-04-26 08:14:42 UTCRevision: 261d171646b36a6a28d5a19a69676cd098a4c19dKotlin: 1.3.21Groovy: 2.5.4Ant: Apache Ant(TM) version 1.9.13 compiled on July 10 2018JVM: 1.8.0_232 (Oracle Corporation 25.232-b09)OS: Linux 4.9.184-linuxkit amd64liumiaocn:android liumiao$
apk构建
liumiaocn:android liumiao$ docker run --rm -it liumiaocn/android:sdk.26.1.1.gradlew.5.4.1 sh# cd /data/Demo# lsDemo.iml app build.gradle gradle gradle.properties gradlew gradlew.bat keyReleaseV2.jks local.properties settings.gradle# find . -type f |grep apk# ./gradlew assembleReleaseStarting a Gradle Daemon (subsequent builds will be faster)> Task :app:lintVitalReleaseCalling mockable JAR artifact transform to create file: /root/.gradle/caches/transforms-2/files-2.1/053686f578beda34f83b61a336b8111f/android.jar with input /usr/local/android/platforms/android-29/android.jarDeprecated Gradle features were used in this build, making it incompatible with Gradle 6.0.Use '--warning-mode all' to show the individual deprecation warnings.See https://docs.gradle.org/5.4.1/userguide/command_line_interface.html#sec:command_line_warningsBUILD SUCCESSFUL in 1m 41s26 actionable tasks: 26 executed# find . -type f |grep apk./app/build/intermediates/apk_list/release/mainApkListPersistenceRelease/apk-list.gson./app/build/outputs/apk/release/app-release.apk./app/build/outputs/apk/release/output.json#
总结
如果项目本身自带gradlew的使用方式,实际上可以考虑不必在镜像中安装gradle,因为gradlew本身包含gradle的安装,目前gradlew的使用方式,首次必须使用zip包,此包要么从公网下载,要们本地提供,没有提供指定已安装的gradle的根目录的方式,所以本文的方式是直接在镜像构成时提供gradlew所需要的gradle环境,后续再执行时即可不必下载和设定gradle了。
转载地址:https://liumiaocn.blog.csdn.net/article/details/103641203 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
关注你微信了!
[***.104.42.241]2024年04月12日 22时21分19秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
【学习笔记】Android Fragments
2019-04-30
Android使用Retrofit_00_Getting Started
2019-04-30
Android使用Retrofit_01_OAuth2 + GitHub
2019-04-30
Django + REST学习笔记
2019-04-30
【转载】将Ubuntu16.04 中gedit在仅显示一个文件时显示文件名tab
2019-04-30
fstream 对象多次使用时注意clear
2019-04-30
调试 LenaCV 3D Camera (Linux)
2019-04-30
OpenCV杂记 - Mat in C++
2019-04-30
lnmp部署
2019-04-30
location区段
2019-04-30
nginx访问控制、基于用户认证、https配置
2019-04-30
用zabbix监控nginx
2019-04-30
SaltStack
2019-04-30
Jenkins 控制台输出中的奇怪字符
2019-04-30
Linux添加系统调用
2019-04-30
linux内存的寻址方式
2019-04-30