Jenkins+Gradle+Android+多渠道包 (一)
来源:互联网 发布:綦美合 知乎 编辑:程序博客网 时间:2024/05/22 03:30
目的是QA可以自己登陆Jenkins选择要构建的版本,结果以邮件的方式通知(包括构建信息,静态代码分析结果,APK下载链接,二维码等),然后存档。
- 构建使用Gralde。
- 打包,生成二维码,存档是Python脚本实现。
打多渠道包
打多渠道包有很多方法,我用的是,生成一个签名后的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)
0 0
- Jenkins+Gradle+Android+多渠道包 (一)
- Jenkins+Gradle+Android+多渠道包 (二)
- android gradle 实例教程一(同时打多渠道包)
- Android实战-使用gradle打多渠道包
- 搭建jenkins+gradle自动化打android包
- android studio 多渠道打包,调试正式包,build.gradle解析
- Jenkins项目实战之-Android基于Gradle参数化打不同环境安装包(一)
- android Gradle多渠道打包
- Gradle Android 多渠道打包
- android gradle 多渠道打包
- Android Gradle多渠道打包
- ANDROID --GRADLE多渠道打包
- Android---Gradle 多渠道打包
- android开发之Jenkins+Gradle实现android开发持续集成、多渠道打包
- Android Studio Gradle配置,代码混淆,多渠道一键打包
- Android开发之Jenkins+Gradle实现持续集成、apk多渠道打包
- 使用Jenkins+Git+Gradle自动化构建Android APK包
- Android Studio Gradle 多渠道打包
- hdu 1045 Fire Net 二分匹配
- 一元多项式的求导---使用链表实现的代码
- Android中的Drawable资源
- Android开发效率—Eclipse快捷键
- 如何使用VS创建SharePoint自定义Ribbon菜单(图文和代码)
- Jenkins+Gradle+Android+多渠道包 (一)
- cocos2dx-js学习笔记、官方tests示例
- C语言中动态分配数组
- 使用MFC的CArray自定义数据类型,编译报错的解决方法
- SQL游标详解
- stun探测过程
- 微软收购R语言开发公司 强化云计算业务
- URL 和 URI 区别
- 设置PopWindow显示在某控件之上和无法获取PopWindow高度问题解决方法