|
@ -2,7 +2,7 @@
|
2
|
2
|
<project name="apkTargets" default="apkpackaging" basedir=".">
|
3
|
3
|
<taskdef resource="net/sf/antcontrib/antlib.xml"/>
|
4
|
4
|
<!-- 指定配置文件 -->
|
5
|
|
<property file="build.properties" />
|
|
5
|
<property file="build.properties" />
|
6
|
6
|
<record name="${log_file}" loglevel="info" append="no" action="start" />
|
7
|
7
|
<!-- 识别编译环境 -->
|
8
|
8
|
<condition property="exe" value=".exe" else=""><os family="windows" /></condition>
|
|
@ -62,30 +62,27 @@
|
62
|
62
|
<target name="aapt_gererateR">
|
63
|
63
|
<foreach target="aapt_gererateR_library" list="${libraries}" param="library" delimiter=",">
|
64
|
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
|
69
|
<for list="${libraries}" param="library">
|
67
|
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
|
73
|
<if>
|
70
|
74
|
<equals arg1="${isExist_library_res}" arg2="true" />
|
71
|
75
|
<then>
|
72
|
|
<isset property="library_param"/>
|
73
|
|
-S ${library}/${res-dir}
|
74
|
|
|
|
76
|
<var name="p" value="${p} -S @{library}/${res-dir}"/>
|
75
|
77
|
</then>
|
76
|
78
|
</if>
|
|
79
|
|
77
|
80
|
</sequential>
|
78
|
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
|
83
|
<!-- 编译工程的的R文件 -->
|
87
|
84
|
<exec executable="${aapt}" failonerror="true">
|
88
|
|
<arg line="${param}" />
|
|
85
|
<arg line="${p}" />
|
89
|
86
|
</exec>
|
90
|
87
|
</target>
|
91
|
88
|
|
|
@ -103,12 +100,12 @@
|
103
|
100
|
</else>
|
104
|
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
|
104
|
-M ${library}/${manifest-xml} -I ${android-jar} ${param}"/>
|
108
|
105
|
<echo>aapt_gererateR_library param:${param}</echo>
|
109
|
106
|
|
110
|
|
<mkdir dir="${library}/gen"/>
|
111
|
|
|
|
107
|
<mkdir dir="${library}/gen"/>
|
|
108
|
|
112
|
109
|
<!-- 编译Libray的R文件 -->
|
113
|
110
|
<exec executable="${aapt}" failonerror="true">
|
114
|
111
|
<arg line="${param}" />
|
|
@ -129,48 +126,46 @@
|
129
|
126
|
|
130
|
127
|
<!-- 编译java文件为class文件 -->
|
131
|
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
|
169
|
</target>
|
175
|
170
|
|
176
|
171
|
<!-- 混淆 -->
|
|
@ -196,44 +191,51 @@
|
196
|
191
|
<!-- 打包dex文件 -->
|
197
|
192
|
<target name="dex-package">
|
198
|
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
|
213
|
</target>
|
211
|
214
|
|
212
|
215
|
<!-- aapt打包资源 -->
|
213
|
216
|
<target name="aapt-package-res">
|
214
|
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
|
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
|
239
|
</exec>
|
238
|
240
|
</target>
|
239
|
241
|
|
|
@ -241,33 +243,26 @@
|
241
|
243
|
<!-- APK打包 -->
|
242
|
244
|
<target name="apk-builder">
|
243
|
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
|
263
|
<java classpath="${android_apk_tools}/lib/sdklib.jar" classname="com.android.sdklib.build.ApkBuilderMain" fork="true" failonerror="true">
|
245
|
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
|
266
|
</java>
|
272
|
267
|
</target>
|
273
|
268
|
|