您当前的位置: 首页 >  gradle

暂无认证

  • 0浏览

    0关注

    92582博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Android应用构建:15:使用gradlew和Android SDK镜像构建安卓应用

发布时间:2019-12-22 05:48:41 ,浏览量:0

在这里插入图片描述 这篇文章以Android SDK 26.1.1 和gradle 5.4.1为例(在前面使用Android Studio 3.5.3的示例应用中所使用的版本),介绍如何安卓应用构建的容器化方式。

Dockerfile
FROM liumiaocn/android:sdk.26.1.1
COPY Demo/ /data/Demo
RUN /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 UTC
Revision:     261d171646b36a6a28d5a19a69676cd098a4c19d

Kotlin:       1.3.21
Groovy:       2.5.4
Ant:          Apache Ant(TM) version 1.9.13 compiled on July 10 2018
JVM:          1.8.0_232 (Oracle Corporation 25.232-b09)
OS:           Linux 4.9.184-linuxkit amd64

liumiaocn:android liumiao$
apk构建
liumiaocn:android liumiao$ docker run --rm -it liumiaocn/android:sdk.26.1.1.gradlew.5.4.1 sh
# cd /data/Demo
# ls
Demo.iml  app  build.gradle  gradle  gradle.properties	gradlew  gradlew.bat  keyReleaseV2.jks	local.properties  settings.gradle
# find . -type f |grep apk
# ./gradlew assembleRelease
Starting a Gradle Daemon (subsequent builds will be faster)

> Task :app:lintVitalRelease
Calling 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.jar

Deprecated 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_warnings

BUILD SUCCESSFUL in 1m 41s
26 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了。

关注
打赏
1653961664
查看更多评论
立即登录/注册

微信扫码登录

1.0598s