标签:
目的是QA可以自己登陆Jenkins选择要构建的版本,结果以邮件的方式通知(包括构建信息,静态代码分析结果,APK下载链接,二维码等),然后存档。
打多渠道包有很多方法,我用的是,生成一个签名后的APK,然后在APK包种META-INF目录下添加一个空文件,文件名包含渠道信息,Android中读这个文件来获取信息,通过代码的方式设置给友盟。这样可以避免反复编译,签名。
修改脚本 Python:
def generate( channel_name ):
shutil.copy(apk_file, target_apk)
zipped = zipfile.ZipFile(target_apk, 'a', zipfile.ZIP_DEFLATED)
content_file = "META-INF/Channel_"+channel_name+".txt"
zipped.write(empty_content, content_file)
zipped.close()
return target_apk
Android中读取
private static String getContent(Context context, String channelKey){
String sourceDir = context.getApplicationInfo().sourceDir;
String key = "META-INF/" + channelKey;
String ret = "";
ZipFile zipfile = null;
try {
zipfile = new ZipFile(sourceDir);
Enumeration<?> entries = zipfile.entries();
while (entries.hasMoreElements()) {
ZipEntry entry = ((ZipEntry) entries.nextElement());
String entryName = entry.getName();
if (entryName.startsWith(key)) {
ret = entryName;
break;
}
}
} catch (IOException e) {
e.printStackTrace();
} finally {
if (zipfile != null) {
try {
zipfile.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
String[] split = ret.split("_");
String channel = "DEV";
if (split != null && split.length >= 2) {
channel = ret.substring(split[0].length() + 1);
}
return channel;
}
AnalyticsConfig.setChannel(String channel)
Jenkins+Gradle+Android+多渠道包 (一)
标签:
原文地址:http://blog.csdn.net/ddaitest/article/details/43150277