android apk多渠道打包

 


1. 下载兰贝壳儿Eclipse插件,下载后解压缩OrchidShell.rar


2. 安装兰贝壳儿插件,建立Android工程

安装Eclipse插件,将OrchidShell文件夹拷贝到Eclipse的dropins文件夹下后,启动(重启)Eclipse


在需要打包的Android工程上点击右键可看到菜单 “兰贝壳儿”,说明安装成功


3. 使用配置文件、默认配置文件

兰贝壳儿使用xml作为插件配置文件,当需要打包的工程根目录中不存在配置文件,插件会新建一个默认的配置文件,文件名为bom.xml。

  1. <?xml version="1.0" encoding="UTF-8"?> 
  2. <!-- 北京兰贝科技有限公司版权所有 --> 
  3. <project> 
  4.     <dependencies> 
  5.         <dependency> 
  6.             <groupId>com.marsor.android.common</groupId> 
  7.             <artifactId>MarsorUtils</artifactId> 
  8.             <version>1.0.0-SNAPSHOT</version> 
  9.         </dependency> 
  10.     </dependencies> 
  11.     <repositories> 
  12.         <repository> 
  13.             <id>MarsorRepository</id> 
  14.             <name>Marsor Maven Mirror</name> 
  15.             <url>http://maven.marsorstudio.cn:8088/</url> 
  16.         </repository> 
  17.     </repositories> 
  18.     <package> 
  19.         <channels keyname="channelId"> 
  20.             <pre style="text-align: justify; font-size: 16px;" class="html" name="code"><span style="white-space: pre;">            </span><channel value="baidu" /> 
  21.             <channel value="wandoujia" /> 
  22.             <channel value="91zhushou" /> 
  23.             <channel value="googleplay" /> 
  24.             <channel value="360zhushou" /></pre></channels><keystore path="E:\my\android.keystore" passwd="123456"><alias name="android.keystore" passwd="123456" /></keystore><outpath value="E:\Repos\output\" /></package></project> 
<?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>
		<channels keyname="channelId">
			
   
   
  1. <span style="white-space: pre;"> </span><channel value="baidu" />
  2. <channel value="wandoujia" />
  3. <channel value="91zhushou" />
  4. <channel value="googleplay" />
  5. <channel value="360zhushou" />
</channels><keystore path="E:\my\android.keystore" passwd="123456"><alias name="android.keystore" passwd="123456" /></keystore><outpath value="E:\Repos\output\" /></package></project>



4. 使用”打包发布”功能

点击兰贝壳儿菜单中的“打包发布”菜单,可以对工程按渠道分别打包,打包的过程中可以对apk文件进行自动签名。

注意打包发布前,需要修改配置文件中对应的项目:

  1. <package> 
  2.         <channels keyname="channelId"> 
  3.             <channel value="baidu" /> 
  4.             <channel value="wandoujia" /> 
  5.             <channel value="91zhushou" /> 
  6.             <channel value="googleplay" /> 
  7.             <channel value="360zhushou" /> 
  8.         </channels> 
  9.         <keystore path="E:\my\android.keystore" passwd="123456"> 
  10.             <alias name="android.keystore" passwd="123456" /> 
  11.         </keystore> 
  12.         <outpath value="E:\Repos\output\" /> 
  13.     </package>     
<package>
		<channels keyname="channelId">
			<channel value="baidu" />
			<channel value="wandoujia" />
			<channel value="91zhushou" />
			<channel value="googleplay" />
			<channel value="360zhushou" />
		</channels>
		<keystore path="E:\my\android.keystore" passwd="123456">
			<alias name="android.keystore" passwd="123456" />
		</keystore>
		<outpath value="E:\Repos\output\" />
	</package>	

其中channels 的keyname=””是指在你的AndroidManifest.xml文件中配置的Application级的<Meta-data>的名称。例如:

  1. <application 
  2.         android:icon="@drawable/ic_launcher" 
  3.         android:label="@string/app_name" 
  4.         android:theme="@style/AppTheme" > 
  5.         <meta-data android:name="channelId" android:value="10000" /> 
<application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <meta-data android:name="channelId" android:value="10000" />

是对应于你要打包的每个渠道名称,也就是统计SDK中渠道的标识符。对于写在这里的每个渠道,插件会自动为其修改meta-data中的value值,并且打包为一个apk文件。然后为这个apk文件进行签名。

这里的keystore就是你对apk文件进行签名时使用的个人密钥。需要你将path修改为你的密钥库路径,passwd为密钥库的密码。

下面的alias是指每个密钥对应的别名,以及对应的密码。如果你有多个alias,可以在这里指定,插件会选取第一个可用的alias以及密码对应的密钥Key对你的apk文件进行签名。

<outpath value="F:\Repos\android\keystore\output\" />

这个路径就是你的apk文件自动打包生成出来以后的存放路径。注意插件会在这个路径下创建以你的工程名为名称的文件夹。


代码中获取AndroidManifest.xml中生成的channelId的值:

  1. ApplicationInfo appInfo = this.getPackageManager().getApplicationInfo(getPackageName(), 
  2.             PackageManager.GET_META_DATA); 
  3.             String channelId=appInfo.metaData.getInt("channelId"); 
  4.             Log.e(TAG, " msg == " + channelId ); 
ApplicationInfo appInfo = this.getPackageManager().getApplicationInfo(getPackageName(),
            PackageManager.GET_META_DATA);
			String channelId=appInfo.metaData.getInt("channelId");
			Log.e(TAG, " msg == " + channelId );

大功告成,这就是神鸟凤凰,嘿嘿,还差个光圈


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值