设为首页 收藏本站 662p开源网
开启辅助访问 切换到宽版

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

切换风格 立即注册 找回密码

安卓教程网

查看: 152|回复: 0

解决 apk 批量打包

[复制链接]
发表于 2018-2-1 11:28:34 | 显示全部楼层 |阅读模式
更多
  • 解决 android apk 的批量打包,支持渠道号替换或者服务器地址替换(字符串替换)、资源替换、指定文件修改、修改包名
  • 轻量级: 使用 shell 脚本编写,方便开发者修改实现逻辑
  • 基于 gradle 打包 apk
使用说明
注: 需要依赖 shell 环境,mac 和 linux 可以直接使用;如果是 windows 需要装模拟 linux 环境的 shell 工具(xshell、cygwin)
1. 把 multiple-apk-generator.sh 复制到 gradle 的项目根目录2. 在项目根目录下新建 zz-targets 目录,保存 apk 的配置信息3. zz-targets 中新建代表一个打包任务的文件夹,名字是(对应的 module 的名字 + 下划线 + xxxx)4. 在第一步新建的目录下面创建 makefile 文件,使用规定的描述语言(参考下面一节)描述输出 apk 之前做的一些资源替换操作描述语言说明
目前支持的插件有 6 种
  • 修改目标 app 的包名
  • 修改目标 app 的名字
  • 递归替换某个文件夹的所有文件中的某个字符串
  • 替换某个文件中的某个字符串
  • 替换某个文件
  • 替换某个文件中的指定行内容
以下是 samples 项目其中一个 makefile 内容(详情可以参考 samples 项目)
#修改目标包名package com.example.samples2#修改 app 的名字app_name 测试项目#复制文件(如果对应的文件存在就覆盖掉)copy_file app_icon.png ${res}/drawable-hdpi/ic_launcher.png#(全局字符串替换)把 src/main/目录下所有文件中包含的字符串 testString,替换为 testString2(可用于替换渠道号、服务器地址)match_all src/main testString pretestStringsub#把 config.java 的中的字符串 github 修改为 aagithubbbmatch_file ${src}/com/example/samples/Config.java github multiple-apk-generator#把 src/main/assets/test.txt 文件的第 5 行内容替换成 replace-line5ffgdgreplace_line ${assets}/test.txt 5 multiple-apk-generator#参数 3 的内容如果包含空格使用${space}代替replace_line ${res}/values/strings.xml 6 <string${space}name="prompt_email">multiple-apk-generator</string>
描述语言内置常量
   ${src}      代替 src/main/java   ${res}      代替 src/main/res   ${assets}   代替 src/main/assets   ${space}    代替 空格
注意事项
  • 最终输出的 apk,在 zz-targets/out 目录下
  • 在描述文件中以#开头的是注释,会被忽略掉
  • 描述语言以行为单位 ,按空格分隔,第一个单词为动作,后面的依次为${1} ${2} ${3} ......
  • target 目录名字以 module 的名字加下划线开头,再加上数字或字母(例如: app_1)
  • 描述文件(makefile)参数中如果需要使用空格,用${space}代替
  • 暂时不需要打包的 target,可以把名字放在 zz-targets 下面的.zzignore 文件中


源码下载:https://github.com/typ0520/multiple-apk-generator

您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Archiver|手机版|小黑屋|安卓教程网 ( 粤ICP备12089784号  

GMT+8, 2018-6-26 03:07 , Processed in 0.490531 second(s), 44 queries .

Powered by Discuz X3.1

© 2001-2013 IOS教程网

快速回复 返回顶部 返回列表