Ant编译打包Android工程流程

一、Ant编译打包android工程步骤


二、Ant apk签名

1.keystore签名    定义自己的签名文件
生成keystore文件:keytool -genkey -alias android.keystore -keyalg RSA - validity 20000 -keystore android.keystore 
对应的java命令:jarsigner -verbose -keystore android.keystore -signedjar android_signed.apk android.apk
对应的ant脚本命令:
	<target name="sign">
		<echo>Begin sign unobfuscated package...</echo>
		<exec executable="${signer}" failonerror="true">
			<arg value="-verbose" />
			<arg value="-keystore" />
			<arg value="${keystore}" />
			<arg value="-storepass" />
			<arg value="${store_pass}" />
			<arg value="-keypass" />
			<arg value="${key_pass}" />
			<arg value="-signedjar" />
			<arg value="${temp}\${file_name}_unobfs_signed.apk" />
			<arg value="${temp}\${file_name}_unobfs.apk" />
			<arg value="${key_name}" />
		</exec>
	</target>

<property name="keystore" value="${project_path}\pada_keystore_formal" />
	<!-- 签名的密钥名称设置-->
	<property name="key_name" value="padaapp" />
	<!-- 签名的密码设置-->
	<property name="key_pass" value="padaeaglenet" />
	<!-- 签名的密码设置-->
	<property name="store_pass" value="padaeaglenet" />

2.系统签名(platform.pk8 , platform.x509.pem)   有些应用需要系统签名,比如定义了sharedUserId="android.uid.system".
系统签名文件:platform.pk8 , platform.x509.pem
存放目录:build/target/product/security/
对应的java命令:java -jar SignApk.jar platform.x509.pem platform.pk8 app_unsigned.apk app_signed.apk
对应的ant脚本命令:
<exec executable="java" failonerror="true">
            <arg value="-jar"/>
            <arg value="${project.dir}/STBsign/signapk.jar"/>
            <arg value="${project.dir}/STBsign/platform.x509.pem"/>
            <arg value="${project.dir}/STBsign/platform.pk8"/>
            <arg value="${buildtemp.dir}/unsigntest.apk"/>
            <arg value="${buildtemp.dir}/TVJUSIGN.apk"/>
        </exec> 


三、Ant apk多渠道打包

目前主流的多渠道打包方法是在AndroidManifest.xml中的Application下添加一个渠道元数据节点。比如,使用友盟统计,它配置AndroidManifest.XML添加下面代码:

      <meta-data
            android:name="UMENG_CHANNEL"
            android:value="channelcode" />

使用自动化方式替换channelcode的值,可以用正则表达式,代码如下:

<target name="alter_umeng_channel">
		<property name="umeng_channel" value="${public_umeng_channel}"/>
		<echo> alter_umeng_channle_id... "${umeng_channel}" </echo>
		 <replaceregexp file="${auto.project.tmp.dir}/AndroidManifest.xml"
	           match="<meta\-data(\s+)android:name="UMENG_CHANNEL"(\s+)android:value="[a-zA-Z0-9]+""
	           replace="<meta\-data android:name="UMENG_CHANNEL" android:value="${umeng_channel}""
	        />
	</target>




Ant编译打包Android工程流程,,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。