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 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:Android应用构建:16:使用gradle和Android SDK镜像构建安卓应用
下一篇:Android应用构建:14:构建Android SDK的自定义镜像

发表评论

最新留言

关注你微信了!
[***.104.42.241]2024年04月12日 22时21分19秒