安卓项目日渐稳定,遂学了一周的python(小菜鸡一个)。想找个项目,无奈网上的项目都不符合我实用的需求(看不懂...)。刚好最近安卓的项目频繁需要打包,于是就有了今天的找个标题,最后在不懈的努力(百度),只花了50行左右代码就搞定了。
代码写的很菜大家见谅就是发出来交流下,目前还没有实现多渠道分包和自动上传蒲公英
或者fir
,有需要大家可以自己补上。
准备工作
-
配置好
gradle
环境变量-
你的项目
app
模块中的gradle
要配置好打包签名android { signingConfigs { config { //省略部分 } } buildTypes { debug { //省略部分 signingConfig signingConfigs.config } release { //省略部分 signingConfig signingConfigs.config } } } 复制代码
-
把
grale的bin目录
加到到系统变量path
中 -
打开
cmd
输入gradle
测试是否成功
-
-
安装python
- 安装
python
3.x.x版本 - 选一个你喜欢的编辑器
- 安装
脚本代码
-
具体实现看代码,如有不行大家见谅(语言能力不行啊),主要的流程就是先利用
gradle
打包后用360加固
-
360加固打包命令官方地址大家有需要可以看看
-
gradle
命令代码里有大家可以百度 -
成功截图
import os
import argparse
# 加固路径
jgPath = 'D:\\360jiagubao_windows\jiagu\\' #改成你的3650加固文件夹地址
output_path = 'C:\\Users\\Desktop' #改成你要输出的目录
# 获取命令行的参数
parse = argparse.ArgumentParser(description='请输入android项目全路径')
parse.add_argument('input', type=str, help='需要自动化的项目路径地址')
args = parse.parse_args()
input_path = args.input
# 查找当前目录apk文件
def get_apk_path(path):
dirs = os.listdir(path)
for f in dirs:
print('遍历文件:', f)
if f.endswith('.apk'):
return f
return None
# 启动加固
def auto_360_jg():
print('开始编译文件')
# 进入项目地址
os.chdir(input_path)
# 执行编译命令
r = os.system('gradle assembleRelease')
if r == 0:
# 安装包地址
build_path = input_path + '\\app\\build\\outputs\\apk\\release'
apk_path = get_apk_path(build_path)
if apk_path:
print('开始加固文件')
# 进入加固目录
os.chdir(jgPath)
# 执行加固命令
os.system('java -jar jiagu.jar -showconfig')
cmd = 'java -jar jiagu.jar -jiagu ' + build_path + '\\' + apk_path + ' ' + output_path + ' -autosign'
os.system(cmd)
print('恭喜,加固apk放置到桌面')
else:
print('哦哦,没有找到apk文件')
else:
print('哦哦,编译apk失败')
if input_path:
auto_360_jg()
else:
print('请输入apk地址')
复制代码
运行脚本
-
打开
cmd
-
输入
python xxx.py [项目目录]
例如
python test.py D:\AndroidProject\Example
-
想用
exe
可以自行打包