之前打包项目使用蓝贝壳打包,或者用Eclipse自带的环境打包,或者直接扔给第三方给别人打包(这里是指的爱加密打包)。接下来老于就带你们走进ant打包的时代。

每次完成一个应用后。就要上市场。上市场呢就要有很多的渠道。有很多的渠道呢。意味着要打很多个渠道包。我哩个去。

记得有个项目。100多个渠道。打到手软。回去飞机打不起来了。android就是这么屌丝。不像ios高富帅一样。就打几个而已。
以前一直认为ant自动渠道打包很复杂。其实说难也不难。说复杂也不复杂。最要就是配置环境问题。环境配好了。生成的build.xml中的配置弄好了。
就基本可以打包了。
一。首先呢要把电脑的java环境配置到环境变量中PATH中。不懂的人可以参考http://blog.csdn.net/huanghm88/article/details/3965218转帖
二,把android的SDK也配置到环境变量中PATH中不懂的人可以参考http://jingyan.baidu.com/article/17bd8e52f514d985ab2bb800.html转帖
三。下载ant环境包。地址在http://ant.apache.org/manualdownload.cgi下载。记得也配置到环境变量中PATH,我的地址是这样的D:\apache-ant-1.9.2\bin;具体大家自己设置,配置成功的话点击运行。输入cmd。输入ant -version回车
表示配置成功了。
四,使用ant,对项目生成build.xml文件具体可以查看http://www.xmumu.com/post/2011-11-22/7022215转帖。
如果说命令打不出来。或者提示找不到的话。说明Android SDK环境配置有问题。要去配置好。网上查找下
五,如果在项目中生成出build.xml等文件时候。就可以进行下一步的配置了如下图目录
ant.properties文件是我们等下要自己创建的文件。是稍后给大家介绍。另外两个文件是build.xml和local.properties
关于ant打包,大家可以先看看这两篇文章http://www.cnblogs.com/MrShi/archive/2013/04/16/3023311.html,http://www.cnblogs.com/MrShi/archive/2013/04/16/3023485.html转帖
六,接下来介绍下ant.properties的内容吧

其中的proguard.config=proguard.cfg是混淆文件。相信大家都懂得自己定义个混淆文件吧。
key.store=E:\\androidkey.keystore是签名文件的绝对地址。我这里是window系统。所以这样写。l
key.alias=androidkevin.keystore签名文件的别名。如果忘了话。可以用eclipse打包时候最后一次输入密码时候。有个Alias的就是你的别名了。
key.store.password=123455签名密码
key.alias.password=123455签名密码
market_channels打包的渠道列表。用逗号隔开。不懂得话前面两篇都有说明

以下我把我的build.xml文件的内容晒出来:
<?xml version="1.0" encoding="UTF-8"?><project name="BABYRECORD" default="release">    <property file="local.properties" />    <property file="ant.properties" />    <property environment="env" />    <condition property="sdk.dir" value="${env.ANDROID_HOME}">        <isset property="env.ANDROID_HOME" />    </condition>   <property name="outdir" value="bin" />      <property name="outdir-classes" value="${outdir}/classes" />     <property name="proguard-home" value="D:\\proguard4.2\\lib\\" />    <property name="sdk-folder" value="D:\android-sdk_r16-windows\android-sdk_r16-windows\android-sdk-windows" />     <property name="android-jar" value="${sdk-folder}\platforms\android-3\android.jar" />      <loadproperties srcFile="project.properties" />       <fail            message="sdk.dir is missing. Make sure to generate local.properties using 'android update project' or to inject it through the ANDROID_HOME environment variable."            unless="sdk.dir"    />    <import file="custom_rules.xml" optional="true" />    <import file="${sdk.dir}/tools/ant/build.xml" />       <property name="out.unaligned.dir" value="F:\BABYRECORD_${app_version}\" />    <mkdir dir="${out.unaligned.dir}" />    <target name="modify_update_file">               <echo>*********************** make channel ${channel}</echo>                <replaceregexp file="AndroidManifest.xml"            match='channel'            replace='${channel}'            byline="false"            encoding="utf-8"        />        <property name="out.unaligned.file" location="${out.unaligned.dir}\babyrecord_${app_version}_release_build${app_date}_${channel}.apk"/>         <antcall target="release" />    </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>    <taskdef name="foreach" classname="net.sf.antcontrib.logic.ForEach" classpath="D:\android-sdk_r16-windows\android-sdk_r16-windows\android-sdk-windows\tools\ant-contrib-1.0b3.jar" />    <target name="make_channels">        <foreach target="make_one_channels" list="${market_channels}" delimiter="," param="channel">                  </foreach>    </target></project>


大家看到里面的变量env.ANDROID_HOME没有。这里是用了我们之前java在电脑环境变量的配置名称。所以大家在配置时候。要先new一个。取名为ANDROID_HOME
配置到是android SDK的地址其他配置的话。大家一看就了然了。有些是自己的的文件夹地址。有些是配置到ant.properties中。如果大家遇到报错的话。可以留言回复我。我会尽量帮助大家解答

更多相关文章

  1. android--------根据文件路径使用File类获取文件相关信息
  2. android取得账户(邮件地址)
  3. 安卓4.X系统 增加蓝牙接收文件类型
  4. 用SAX解析xml文件
  5. NFS挂载android文件系统
  6. android 9.0 SD卡权限问题 文件管理器没有权限
  7. Android 多版本多渠道打包

随机推荐

  1. Android(安卓)build system note
  2. Android(安卓)Context原理分析
  3. Android(安卓)编程下 Touch 事件的分发和
  4. VMware中安装Linux-kali(详细图文教程)
  5. 怎么P身份證、改手持报图片内容、换头像
  6. PS怎么P卡号数字内容
  7. 2013.03.19(5)———android 获取状态栏的
  8. Android快速开发框架dyh详解(三)---网络
  9. android 通过schema唤起应用指定页面
  10. android系统中运行jar文件