<span style="font-size:18px;"><!--Android 分渠道打包步骤-->
<!--打包之前请确定-->
ANDROID_HOME 环境变量 即ANDROID_SDK的安装路径
如:F:\adt-bundle-windows-x86_64-20140702\adt-bundle-windows-x86_64-20140702\sdk
<!-- 1,在AndroidManifest.xml文件中添加以下代码 -->
<meta-data android:name="qudao" android:value="anzhuoshichang" />
<!-- 2,将ant-contrib-1.0b3.jar文件copy到 Android SDK/tools/lib (android sdk路径)文件夹下-->
添加ANT的环境变量
如:F:\资料\ANT\apache-ant-1.9.4-bin;
<!-- 3,控制台cmd命令-->
<sdk路径>/android update project -p <要打包项目的绝对路径> -t <要打包项目的API版本 <project.properties文件中target对应的值>>
如:E:/android-sdk/tools/android update project -p D:\workspaceforandroid\HelloWorld -t android-17
<!-- 4,执行完毕之后刷新项目 会发现项目的根目录下多了两个文件:build.xml和local.properties -->
<!-- 5,手动创建与build同级目录的文件 ant.properties并添加以下代码-->
key.store=<!--您签名文件的绝对路径 如 C:\Users\Administrator\Desktop\test.keystore -->
key.alias=<!-- 证书名称 -->
key.store.password=<!-- 密钥口令-->
key.alias.password=<!-- 证书密码-->
market_channels=<!--渠道名称集合,以" , "隔开,后面有用到。 如:anzhuoshichang,jifengshichang,baiduyingyongzhongxin 或者是1.0.1.0001,1.0.1.0002,1.0.1.0003。。。。。-->
app_version=1.0.2<!-- 版本显示-->
<!-- 6,修改build.xml文件 在build文件下面添加以下代码 -->
<!-- 需要改动的地方 values值对应打包apk输出的文件夹 即打包完成后apk文件的放置处 -->
<property name="out.unaligned.dir" value="C:/Users/Administrator/Desktop/HelloWorld_${app_version}/" />
<mkdir dir="${out.unaligned.dir}" />
<target name="modify_update_file">
<echo> make channel ${channel}</echo>
<replaceregexp file="AndroidManifest.xml"
match='abcdefg'//要替换的字段值即meta_data节点的value对应的值,打包时会把该默认值修改成ant.proterties文件中的渠道版本名称 ---------需要修改的地方
replace='${channel}'
byline="false"
encoding="utf-8"
/>
<!--打包apk放置路径及个渠道名称 HelloWorld_版本号_渠道名称_android.apk -->
<property name="out.unaligned.file" location="${out.unaligned.dir}/HelloWorld_${app_version}_${channel}_android.apk"/>
</target>
<target name="make_one_channels" depends="savemanifest,modify_update_file,release,replacemanifest,deletebin" description="description">
</target>
<target name="replacemanifest">
<echo>replacemanifest</echo>
<delete file="${basedir}\AndroidManifest.xml"/>
<copy file="..\temp\build\META-INF\AndroidManifest.xml" todir="${basedir}" encoding="utf-8"/>
</target>
<target name="savemanifest">
<echo>savemanifest</echo>
<copy file="${basedir}\AndroidManifest.xml" todir="..\temp\build\META-INF" encoding="utf-8" />
</target>
<target name="deletebin">
<delete dir="${basedir}\bin" />
</target>
<!-- classpath的值为ant循环类库 ant-contrib-1.0b3.jar文件的绝对路径--> //-------------需要修改的地方
<taskdef name="foreach" classname="net.sf.antcontrib.logic.ForEach" classpath="E:\\android-sdk\\android-sdk\\tools\\lib\\ant-contrib-1.0b3.jar" />
<target name="make_channels">
<foreach target="make_one_channels" list="${market_channels}" delimiter="," param="channel">
</foreach>
</target>
<!--7,开始打包 -->
<在eclipse中右键build文件选择 run as 选择 external Tools Configurations进入配置 点开Targets选项 只选择 make_channels选项,然后 run >
<!-- 8,代码获取meta_data节点中的渠道版本名称-->
PackageInfo p = getPackageManager().getPackageInfo(
getPackageName(),PackageManager.GET_META_DATA);
Object value =(Object)p.applicationInfo.metaData.get("test");//test为meta_data 节点中的key值
结果value即为该渠道的版本名称 如1.0.1.0001
如:
<meta-data
android:name="test"
android:value="abcdefg" />
<!--打完 收工 -->
若是使用的是Google集成的android Eclipse,其中包含的有ANT插件但是eclipse中没有显示出来则需要使用命令行来使其出现;1,cd eclipse的安装目录
2, eclipse -application org.eclipse.equinox.p2.director -repository http://download.eclipse.org/releases/juno -installIU org.eclipse.ant.ui
Installing org.eclipse.ant.ui 3.5.400.v20130514-1341.
3,执行完之后eclipse会重启,如果还是没有出现,重启下电脑试试(前提是eclipse\plugins下真的有ant插件哦!
若是项目有外部依赖包 ,则需修改SDK/tools/ant/build.xml 文件 ;
name为aapt.ignore.assets
value的值是 “<dir>crunch:!.svn:!.git:.*:<dir>_*:!CVS:!thumbs.db:!picasa.ini:!*.scc:*~”
这样就解决了依赖吧无法打进去的问题;
最后附上资源下载地址:http://download.csdn.net/detail/li352558693/8314529