同步操作将从 Ajava攻城师/AjavaAndroidLib 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
# coding=utf-8import zipfileimport shutilimport osimport time#获取系统时间def gainDateTime():return time.strftime("%Y-%m-%d %H:%M:%S",time.localtime(time.time()))# 空文件 便于写入此空文件到apk包中作为channel文件src_empty_file = 'info/chennel_empty.txt'# 创建一个空文件(不存在则创建)f = open(src_empty_file, 'w')f.close()# 获取当前目录中所有的apk源包src_apks = []# python3 : os.listdir()即可,这里使用兼容Python2的os.listdir('.')for file in os.listdir('.'):if os.path.isfile(file):extension = os.path.splitext(file)[1][1:]if extension in 'apk':src_apks.append(file)# 获取渠道列表channel_file = 'info/channel_list.txt'f = open(channel_file)lines = f.readlines()f.close()for src_apk in src_apks:# file name (with extension)src_apk_file_name = os.path.basename(src_apk)# 分割文件名与后缀temp_list = os.path.splitext(src_apk_file_name)# name without extensionsrc_apk_name = temp_list[0]# 后缀名,包含. 例如: ".apk "src_apk_extension = temp_list[1]# 创建生成目录,与文件名相关output_dir = 'output_' + src_apk_name + '/'# 目录不存在则创建if not os.path.exists(output_dir):os.mkdir(output_dir)print('开始生成渠道-->'+gainDateTime())# 遍历渠道号并创建对应渠道号的apk文件for line in lines:# 获取当前渠道号,因为从渠道文件中获得带有\n,所有strip一下target_channel = line.strip()# 拼接对应渠道号的apktarget_apk = output_dir + src_apk_name + "_" + target_channel + src_apk_extension# 打印Logprint('生产渠道包'+ gainDateTime() +'-->'+ target_apk )# 拷贝建立新apkshutil.copy(src_apk, target_apk)# zip获取新建立的apk文件zipped = zipfile.ZipFile(target_apk, 'a', zipfile.ZIP_DEFLATED)# 初始化渠道信息empty_channel_file = "META-INF/ChannelName_{channel}".format(channel = target_channel)# 写入渠道信息zipped.write(src_empty_file, empty_channel_file)# 关闭zip流zipped.close()
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。