gradle打包android注意事项

生成签名

keytool -genkey -alias duanyiwen -keyalg RSA -validity 20000 -keystore duanyiwen.jks

  • 密码相关:dyiwen
  • 组织相关:dyiwen
  • 配置文件:./app/build.gradle
android {
    compileSdkVersion 26
    signingConfigs {
        config {
            keyAlias 'dyiwen'
            keyPassword 'dyiwen.com'
            storeFile file('/root/dyiwen.jks')
            storePassword 'dyiwen.com'
        }
    }
...

gradle切国内源

  • 注释代理:(如果配置)
    在这里插入图片描述
  • 配置国内源
    • change:./build.gradle,注释 jcenter()加入maven两行改为阿里源。
      -

Dockerfile

FROM gradle:jdk8-slim
MAINTAINER duanyiwen dyiwen@aliyun.com

ENV ANDROID_HOME=/opt/app/android-sdk
ENV ANDROID_TOOLS=/opt/app/android-sdk-tools
ENV REPO_OS_OVERRIDE=linux
ENV JAVA_HOME=/usr/local/openjdk-8
ENV JRE_HOME=/usr/local/openjdk-8/jre
ENV CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
ENV PATH=$ANDROID_TOOLS/tools/bin:$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOME/bin


USER root

#配置apt国内源,网易的debian
#RUN echo "deb http://mirrors.163.com/debian/ jessie main non-free contrib" > /etc/apt/sources.list && \
  #echo "deb http://mirrors.163.com/debian/ jessie-proposed-updates main non-free contrib" >>/etc/apt/sources.list && \
  #echo "deb-src http://mirrors.163.com/debian/ jessie main non-free contrib" >>/etc/apt/sources.list
  #echo "deb-src http://mirrors.163.com/debian/ jessie-proposed-updates main non-free contrib" >>/etc/apt/sources.list
#
#RUN apt-get update && \
  #apt-get install -y libc6-i386 lib32stdc++6 lib32gcc1 lib32ncurses5 lib32z1 && \
  #mkdir -p /root/.android/ && touch /root/.android/repositories.cfg

RUN mkdir -p /root/.android/ && touch /root/.android/repositories.cfg && \
  mkdir -p ${ANDROID_HOME} && mkdir -p ${ANDROID_TOOLS}

WORKDIR /home/workspace

#android sdk 命令行工具 https://developer.android.google.cn/studio?hl=zh_cn#downloads
ADD commandlinetools-linux-6200805_latest.tar ${ANDROID_TOOLS}

# 安装sdk
#RUN /opt/app/android_sdk/tools/bin/sdkmanager "build-tools;26.0.3" --sdk_root=${ANDROID_HOME} && \
# /opt/app/android_sdk/tools/bin/sdkmanager "platforms;android-26" --sdk_root=${ANDROID_HOME}

# 生成签名
RUN keytool -genkey -alias dyiwen -keyalg RSA -validity 20000 -keystore /root/dyiwen.jks -storepass dyiwen.com -keypass dyiwen.com -dname "CN=dyiwen,OU=dyiwen,O=dyiwen,L=dyiwen,ST=dyiwen,C=dyiwen" && \
  apt-get clean && apt-get autoclean

docker-compose

version: '3.1'

services:
  verdaccio:
    image: registry.cn-hangzhou.aliyuncs.com/dyiwen-common/gradle:jdk8-slim-self
    container_name: android-work
    restart: always
    # networks:
    #   - node-network
    # environment:
    #   - VERDACCIO_PORT=4873
    # ports:
    #   - "4873:4873"
    network_mode: "host"
    volumes:
      - "./android-sdk:/opt/app/android-sdk"#sdk版本安装目录,持久化
      - "./gradle:/home/gradle"#缓存
      - "./workspace:/home/"
      - "./.gradle:/root/.gradle"#gradle缓存
    logging:
      driver: "json-file"
      options:
          max-size: "20m"
          max-file: "1"
  • 安装sdk不同版本环境
    docker exec android-work sh -c "yes | sdkmanager 'build-tools;26.0.3' --sdk_root=/opt/app/android-sdk"
    docker exec android-work sh -c "yes | sdkmanager 'platforms;android-26' --sdk_root=/opt/app/android-sdk"
  • 集成命令
    • 打包: docker exec android_work sh -c "cd 项目名称 && ./gradlew aR"

打包命令

./gradlew clean  clean项目
 
./gradlew build  构建项目
 
/gradlew assembleDebug or /gradlew aD 编译并打Debug包
 
./gradlew assembleRelease or /gradlew aR 编译并打Release的包
 
./gradlew installRelease or /gradlew iR Release模式打包并安装
 
./gradlew installDebug or /gradlew iD Debug模式打包并安装
 
./gradlew uninstallRelease or ./gradlew uR 卸载Release模式包
 
./gradlew uninstallDebug or ./gradlew uD 卸载Debug模式包

GradleDaemon(守护进程)

在这里插入图片描述
Gradle 启动比较耗时,Gradle 通过守护进程解决该问题。

  • JVM 自身的优化,JVM自带有运行时代码优化功能,通过反复构建5-10次可以获得最优的运行速度;
  • 资源缓存;
    通过这种方式可以将构建构建时间降低 15-75%.
  • 禁用
echo "org.gradle.daemon=false" >> USER_HOME/.gradle/gradle.properties

结论:GradleDaemon守护进程有助于提升多次构建的速度,大概节省了25s的启动速度。但守护进程会一致占用约1.05G的内存空间。对于没有频繁构建安卓需求,对构建效率需求较低的服务器上建议关闭守护进程。
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值