Android批量打不同的渠道包方法-使用第三方插件
来源:互联网 发布:老司机网络什么意思 编辑:程序博客网 时间:2024/05/22 10:38
一、简介:
Android的App开发好了,要上线不同的平台,那么需要打一个个的渠道包。如果一个一个打包,那是很麻烦且淡腾。比如我们之前的一个App,上线8个平台,91、anzhi、appchina、baidu、chinapnr、gfan、hiapk和tencent。所以我们考虑到使用批量打渠道包工具。
二、方法:
使用第三方插件打包,简单、快捷且速度。
第三方插件
大家可以看看他的帮助文档和插件的下载。
二、配置文件:
1.在bom.xml 文件中的配置
<?xml version="1.0" encoding="UTF-8"?><project> <dependencies> <dependency> <groupId>com.marsor.android.common </groupId> <artifactId>MarsorUtils </artifactId> <version>1.0.0-SNAPSHOT </version> </dependency> </dependencies> <repositories> <repository> <id>MarsorRepository </id> <name>Marsor Maven Mirror </name> <url>http://maven.marsorstudio.cn:8088/ </url> </repository> </repositories> <package> <!-- 不区分大小写,逗号隔开的metaName,代表不同SDK的渠道标识符 --> <channels keyname="channel" > <!-- channel的数量代表最终生成的apk文件的数量 --> <channel value="91" /> <channel value="anzhi" /> <channel value="appchina" /> <channel value="baidu" /> <channel value="chinapnr" /> <channel value="gfan" /> <channel value="hiapk" /> <channel value="tencent" /> </channels> <keystore passwd="chinapnr" path="E:\key\chinapnr_b2a.key" > <alias name="android.key" passwd="chinapnr" /> </keystore> <outpath value="E:\key_output\" /> </package></project>
注意:
1 需要指定渠道号的value和所有所有渠道
2 需要指定我的签名文件路径以及输出工程路径
2.在AndroidManifest.xml 文件中的配置
主要是在这里配置application中添加meta-data:注意name( android:name=”channel”) 要和bom.xml中指定的渠道号key保持一致(channels keyname=”channel”)。
<application android:allowBackup="true" android:icon="@drawable/app_icon" android:label="@string/app_name" android:theme="@style/AppTheme" > <meta-data android:name="channel" android:value="chinapnr" />
3.从代码中读取渠道号
由于我们在访问接口会使用到渠道号,那么需要在代码中从AndroidManifest.xml 动态的获取渠道号,也就是说要获取meta-data的值。下面贴出来方法:
/** * * @author kevin.li * @date 20150620 * @function 获取metaData数据 * @version 1.2.0 */public class MetaInfoUtils { private static final String key = "channel"; /** * 在application应用<meta-data>元素。 * * @param context * @param key * @return */ public static String getApplicationMetaInfo(Context context) { ApplicationInfo appInfo = null; String channel = ""; try { appInfo = context.getPackageManager().getApplicationInfo( context.getPackageName(), PackageManager.GET_META_DATA); channel = appInfo.metaData.getString(key); } catch (NameNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } if (TextUtils.isEmpty(channel)) { // 避免有91 这样的情况 因为meta-data中值不确定 channel = appInfo.metaData.getInt(key) + ""; } return channel; }}
四、总结:
第三方插件打包很方便,但是也有缺陷,比如不能批量的修改包名。当然还有其他打包方式比如Ant或者gradle,感兴趣的小伙伴也可以试试。
0 0
- Android批量打不同的渠道包方法-使用第三方插件
- Android使用Ant批量打渠道包
- ant 打批量渠道包,第三方项目作为library打包出错的问题
- Ant build.xml 批量打渠道包回顾!打第三方jar包总结
- android 批量打渠道包
- android 批量打渠道包
- android studio 使用gradle批量打渠道包
- 【Android打包】高效批量打渠道包
- iOS使用脚本批量打渠道包
- iOS使用脚本批量打渠道包
- 分享两种最简单的Android打渠道包的方法
- 分享两种最简单的Android打渠道包的方法
- 分享两种最简单的Android打渠道包的方法
- 两种Android打渠道包的方法
- Android studio 打渠道包,同一工程不同包名
- 使用Gradle打Android渠道包
- Android 使用Ant打渠道包
- Android Studio 使用Gradle 打渠道包
- Proc Means:Means过程介绍
- Python标准库01 正则表达式 (re包)
- Merge 和 SET 的不同
- 折腾SAS数据集 -- “in=”选项…
- iOS RunLoop 初识
- Android批量打不同的渠道包方法-使用第三方插件
- Android开发进阶,让我们一起站在别人肩膀上学习
- SAS 中if和where的区别
- 读《设计心理学》--日常操作心理学
- excel 合并单元格内容
- PROC REPORT基础
- SAS定义宏变量三种方法
- 如何缩放SpriteBuilder中的scene
- FLOWOVER/ MISSOVER/ TRUNCOVER/ S…