This action will force synchronization from Ajava攻城师/AjavaAndroidLib, which will overwrite any changes that you have made since you forked the repository, and can not be recovered!!!
Synchronous operation will process in the background and will refresh the page when finishing processing. Please be patient.
# 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()
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。