浏览代码

完善ant打包脚本

wangxl 8 年之前
父节点
当前提交
9592f87179
共有 1 个文件被更改,包括 111 次插入116 次删除
  1. 111 116
      display-client/build/build.xml

+ 111 - 116
display-client/build/build.xml

2
<project name="apkTargets" default="apkpackaging"  basedir=".">
2
<project name="apkTargets" default="apkpackaging"  basedir=".">
3
	<taskdef resource="net/sf/antcontrib/antlib.xml"/>
3
	<taskdef resource="net/sf/antcontrib/antlib.xml"/>
4
	<!-- 指定配置文件 -->  
4
	<!-- 指定配置文件 -->  
5
    <property file="build.properties" /> 
5
    <property file="build.properties" />
6
    <record name="${log_file}" loglevel="info" append="no" action="start" />
6
    <record name="${log_file}" loglevel="info" append="no" action="start" />
7
	<!-- 识别编译环境 -->
7
	<!-- 识别编译环境 -->
8
	<condition property="exe" value=".exe" else=""><os family="windows" /></condition>
8
	<condition property="exe" value=".exe" else=""><os family="windows" /></condition>
62
  	<target name="aapt_gererateR">
62
  	<target name="aapt_gererateR">
63
		<foreach target="aapt_gererateR_library" list="${libraries}" param="library" delimiter=",">
63
		<foreach target="aapt_gererateR_library" list="${libraries}" param="library" delimiter=",">
64
		</foreach>
64
		</foreach>
65
  		<!--
65
66
        <!-- auto-add-overlay 这个重要,覆盖资源,不然报错-->
67
        <var name="p" value="package -m --auto-add-overlay -J ${host-gen} -M ${project_home}/${manifest-xml}
68
			-I ${android-jar} -S ${project_home}/${res-dir}"/>
66
  		<for list="${libraries}" param="library">
69
  		<for list="${libraries}" param="library">
67
            <sequential>
70
            <sequential>
68
            	<available property="isExist_library_res" file="${library}/res" type="dir" />
71
            	<available property="isExist_library_res" file="@{library}/res" type="dir" />
72
69
    			<if>
73
    			<if>
70
    			    <equals arg1="${isExist_library_res}" arg2="true" />
74
    			    <equals arg1="${isExist_library_res}" arg2="true" />
71
    			    <then>
75
    			    <then>
72
    			    	<isset property="library_param"/>
73
    			    	-S ${library}/${res-dir}
74
	
76
                        <var name="p" value="${p} -S @{library}/${res-dir}"/>
75
    			    </then>
77
    			    </then>
76
    			</if>
78
    			</if>
79
77
            </sequential>
80
            </sequential>
78
        </for>
81
        </for>
79
		-->
80
  		<!-- auto-add-overlay 这个重要,覆盖资源,不然报错-->
81
		<var name="param" value="package -m --auto-add-overlay -J ${host-gen} -M ${project_home}/${manifest-xml} 
82
			-I ${android-jar} -S ${project_home}/${res-dir} -S ${library_1}/${res-dir}"/>
83
  		
84
  		<mkdir dir="${library}/gen"/><!--仓库通常忽略此目录-->
85
		<echo>aapt_gererateR param:${param}</echo>
82
86
		<!-- 编译工程的的R文件 -->
83
		<!-- 编译工程的的R文件 -->
87
		<exec executable="${aapt}" failonerror="true">
84
		<exec executable="${aapt}" failonerror="true">
88
            <arg line="${param}" />
85
            <arg line="${p}" />
89
        </exec>
86
        </exec>
90
    </target>
87
    </target>
91
	
88
	
103
			</else>
100
			</else>
104
		</if>
101
		</if>
105
		
102
		
106
		<var name="param" value="package -m --non-constant-id --auto-add-overlay -J ${library}/gen 
103
		<var name="param" value="package -m --non-constant-id --auto-add-overlay -J ${host-gen}
107
			-M ${library}/${manifest-xml} -I ${android-jar} ${param}"/>
104
			-M ${library}/${manifest-xml} -I ${android-jar} ${param}"/>
108
		<echo>aapt_gererateR_library param:${param}</echo>
105
		<echo>aapt_gererateR_library param:${param}</echo>
109
		
106
		
110
		<mkdir dir="${library}/gen"/>  
111
		
107
		<mkdir dir="${library}/gen"/>
108
112
		<!-- 编译Libray的R文件 -->
109
		<!-- 编译Libray的R文件 -->
113
		<exec executable="${aapt}" failonerror="true">
110
		<exec executable="${aapt}" failonerror="true">
114
            <arg line="${param}" />
111
            <arg line="${param}" />
129
    
126
    
130
	<!-- 编译java文件为class文件 -->
127
	<!-- 编译java文件为class文件 -->
131
	<target name="compile">
128
	<target name="compile">
132
		<path id="project.libs">
133
	        <fileset dir="${project_home}/${libs-dir}">
134
	            <include name="*.so" />
135
	            <include name="**/*.so" />
136
	            <include name="*/*.so" />
137
	            <include name="**/*.jar" />
138
	            <include name="*.jar" />
139
	        </fileset>
140
		</path>
141
	      
142
	  	<path id="library1.libs">
143
	         <fileset dir="${library_1}/libs">
144
	             <include name="*.so" />
145
	             <include name="**/*.so" />
146
	             <include name="*/*.so" />
147
	             <include name="**/*.jar" />
148
	             <include name="*.jar" />
149
	         </fileset>
150
	    </path>
151
	    
152
	  	<path id="library2.libs">
153
	          <fileset dir="${library_2}/libs">
154
	              <include name="*.so" />
155
	              <include name="**/*.so" />
156
	              <include name="*/*.so" />
157
	              <include name="**/*.jar" />
158
	              <include name="*.jar" />
159
	          </fileset>
160
	    </path>
161
	    
162
		<javac debug="true" extdirs="" srcdir="." includeantruntime="on" 
163
	        destdir="${host-classes}" bootclasspath="${android-jar}" encoding="UTF-8" 
164
			source="${jdk_version}" target="${jdk_version}" >
165
	          <compilerarg line="-encoding UTF-8 " />
166
	          <src path="${host-src}" />
167
	          <src path="${host-gen}" />
168
	          <!--<src path="${library_1}/${src-dir}" />--><!-- Library1的src文件 -->
169
			  <!--<src path="${library_2}/${src-dir}" />--><!-- Library2的src文件 -->
170
			  <!-- jar文件 -->          
171
	          <classpath refid="library1.libs" />
172
	          <classpath refid="library2.libs" />
173
		</javac>
129
        <copydir src="${project_home}/libs"
130
                 dest="${host-bin}/libs"
131
            />
132
        <for list="${libraries}" param="library">
133
            <sequential>
134
                <available property="isExist_library_libs" file="@{library}/libs" type="dir" />
135
136
                <if>
137
                    <equals arg1="${isExist_library_libs}" arg2="true" />
138
                    <then>
139
                        <copydir src="@{library}/libs"
140
                                 dest="${host-bin}/libs"
141
                            />
142
                    </then>
143
                </if>
144
145
            </sequential>
146
        </for>
147
148
        <path id="library.libs">
149
            <fileset dir="${host-bin}/libs">
150
                <include name="*.so" />
151
                <include name="**/*.so" />
152
                <include name="*/*.so" />
153
                <include name="**/*.jar" />
154
                <include name="*.jar" />
155
            </fileset>
156
        </path>
157
158
        <javac debug="true" extdirs="" srcdir="." includeantruntime="on"
159
               destdir="${host-classes}" bootclasspath="${android-jar}" encoding="UTF-8"
160
               source="${jdk_version}" target="${jdk_version}" >
161
            <compilerarg line="-encoding UTF-8 " />
162
            <src path="${host-src}" />
163
            <src path="${host-gen}" />
164
165
            <classpath refid="library.libs" />
166
167
        </javac>
168
174
	</target>
169
	</target>
175
	
170
	
176
	<!-- 混淆 -->
171
	<!-- 混淆 -->
196
	<!-- 打包dex文件 -->
191
	<!-- 打包dex文件 -->
197
	<target name="dex-package">
192
	<target name="dex-package">
198
	    <echo>Packaging dex...</echo>
193
	    <echo>Packaging dex...</echo>
199
		<apply executable="${dx}" failonerror="true" parallel="true">
200
		    <arg value="--dex" />
201
		    <arg value="--output=${intermediate-dex}" />
202
		    <arg path="${host-classes}" />
203
		    <!--<arg path="${host-libs}" />-->
204
			<!--<fileset dir="${project_home}/${libs-dir}" />-->
205
		    <!-- Library1 -->
206
		    <fileset dir="${library_1}/libs" />
207
		    <!-- Library2 -->
208
		    <fileset dir="${library_2}/libs" />
209
		</apply>
194
        <var name="dex_p" value="--dex --output=${intermediate-dex} ${host-classes} ${host-libs}"/>
195
196
        <for list="${libraries}" param="library">
197
            <sequential>
198
                <available property="isExist_library_libs" file="@{library}/libs" type="dir" />
199
200
                <if>
201
                    <equals arg1="${isExist_library_libs}" arg2="true" />
202
                    <then>
203
                        <var name="dex_p" value="${dex_p} @{library}/libs"/>
204
                    </then>
205
                </if>
206
207
            </sequential>
208
        </for>
209
210
		<exec executable="${dx}" failonerror="true" >
211
		    <arg line="${dex_p}"/>
212
		</exec>
210
	</target>
213
	</target>
211
	
214
	
212
	<!-- aapt打包资源 -->
215
	<!-- aapt打包资源 -->
213
	<target name="aapt-package-res">
216
	<target name="aapt-package-res">
214
		<echo>Packaging resources and assets...</echo>
217
		<echo>Packaging resources and assets...</echo>
218
219
220
        <var name="temp" value=""/>
221
        <for list="${libraries}" param="library">
222
            <sequential>
223
                <available property="isExist_library_res" file="@{library}/res" type="dir" />
224
225
                <if>
226
                    <equals arg1="${isExist_library_res}" arg2="true" />
227
                    <then>
228
                        <var name="temp" value="${temp} -S @{library}/${res-dir}"/>
229
                    </then>
230
                </if>
231
232
            </sequential>
233
        </for>
234
235
        <var name="res_p" value="package -f -M ${project_home}/${manifest-xml} -S ${project_home}/${res-dir} ${temp} -A ${project_home}/${asset-dir} -I ${android-jar} -F ${resources-package} --auto-add-overlay"/>
236
215
		<exec executable="${aapt}" failonerror="true">
237
		<exec executable="${aapt}" failonerror="true">
216
		    <arg value="package" />
217
		    <arg value="-f" />
218
		    <arg value="-M" />
219
		    <arg value="${project_home}/${manifest-xml}" />
220
		    <arg value="-S" />
221
		    <arg value="${project_home}/${res-dir}" />
222
		    
223
			<arg value="-S" />
224
	        <arg value="${library_1}/${res-dir}" /><!-- 包含Library的资源 -->
225
	        
226
		    <!-- <arg value="-S" />
227
	        <arg value="${library_2}/${res-dir}" /> --><!-- 包含Library2的资源 -->
228
		    
229
		    <arg value="-A" />
230
		    <arg value="${project_home}/${asset-dir}" /><!-- assets文件 -->
231
		    
232
		    <arg value="-I" />
233
		    <arg value="${android-jar}" />
234
		    <arg value="-F" />
235
		    <arg value="${resources-package}" /><!-- 输出资源压缩包 -->
236
		    <arg value="--auto-add-overlay" /> <!-- 这个重要,覆盖资源,不然报错-->
238
		   <arg line="${res_p}"/>
237
		</exec>
239
		</exec>
238
	</target>
240
	</target>
239
	
241
	
241
	<!-- APK打包 -->
243
	<!-- APK打包 -->
242
	<target name="apk-builder">
244
	<target name="apk-builder">
243
	    <echo>Building apk...</echo>
245
	    <echo>Building apk...</echo>
246
247
        <var name="temp" value=""/>
248
        <for list="${libraries}" param="library">
249
            <sequential>
250
                <available property="isExist_library_libs" file="@{library}/libs" type="dir" />
251
252
                <if>
253
                    <equals arg1="${isExist_library_libs}" arg2="true" />
254
                    <then>
255
                        <var name="temp" value="${temp} -nf @{library}/libs -rj @{library}/libs"/>
256
                    </then>
257
                </if>
258
            </sequential>
259
        </for>
260
261
        <var name="apkBuild_p" value="${out-unsigned-package} -u -z ${resources-package} -f ${intermediate-dex} -rf ${host-src} ${temp}"/>
262
244
	    <java classpath="${android_apk_tools}/lib/sdklib.jar" classname="com.android.sdklib.build.ApkBuilderMain" fork="true" failonerror="true">
263
	    <java classpath="${android_apk_tools}/lib/sdklib.jar" classname="com.android.sdklib.build.ApkBuilderMain" fork="true" failonerror="true">
245
            <sysproperty key="file.encoding" value="UTF-8" />
264
            <sysproperty key="file.encoding" value="UTF-8" />
246
            <!-- 创建未签名的包 -->
247
	        <arg value="${out-unsigned-package}" />
248
	        <arg value="-u" />
249
            <arg value="-z" />
250
            <arg value="${resources-package}" />
251
            <!-- dex中间文件 -->
252
            <arg value="-f" />
253
            <arg value="${intermediate-dex}" />
254
            <!-- Adds the java resources found in that folder -->
255
            <arg value="-rf" />
256
            <arg value="${host-src}" />
257
            <!-- add native libraries -->
258
            <!--<arg value="-nf" />
259
            <arg value="${host-libs}" />-->
260
            <arg value="-nf" />
261
            <arg value="${library_1}/libs" />
262
            <arg value="-nf" />
263
            <arg value="${library_2}/libs" />
264
            <!-- Adds the java resources found in the jar file(s) -->
265
            <!--<arg value="-rj" />
266
            <arg value="${host-libs}" />-->
267
            <arg value="-rj" />
268
            <arg value="${library_1}/libs" />
269
            <arg value="-rj" />
270
            <arg value="${library_2}/libs" />
265
            <arg line="${apkBuild_p}"/>
271
	    </java>
266
	    </java>
272
	</target>
267
	</target>
273
	
268