废话不多说,上干货:
1. 下载兰贝壳儿Eclipse插件,下载后解压缩OrchidShell.rar
2. 安装兰贝壳儿插件,建立Android工程
安装Eclipse插件,将OrchidShell文件夹拷贝到Eclipse的dropins文件夹下后,启动(重启)Eclipse
在需要打包的Android工程上点击右键可看到菜单 “兰贝壳儿”,说明安装成功
3. 使用配置文件、默认配置文件
兰贝壳儿使用xml作为插件配置文件,当需要打包的工程根目录中不存在配置文件,插件会新建一个默认的配置文件,文件名为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> <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></project>
4. 使用”打包发布”功能
点击兰贝壳儿菜单中的“打包发布”菜单,可以对工程按渠道分别打包,打包的过程中可以对apk文件进行自动签名。
注意打包发布前,需要修改配置文件中对应的项目:
<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>的名称。例如:
<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的值:
ApplicationInfo appInfo = this.getPackageManager().getApplicationInfo(getPackageName(), PackageManager.GET_META_DATA); String channelId=appInfo.metaData.getInt("channelId"); Log.e(TAG, " msg == " + channelId );
大功告成,这就是神鸟凤凰,嘿嘿,还差个光圈