NDK打包的ANT脚本(包含引入so文件)

来源:互联网 发布:送外卖的软件 编辑:程序博客网 时间:2024/06/04 22:46



<target name="native_android_init">
<property name="PROJECT_NAME" value="ProjrectName" />
<property name="ENCODEING_CHARSET" value="GBK" />
<property file="./build/tools.properties" />
<property file="./build/devices/native/targetres.properties" />
<property file="./build/release.properties" />


<property name="android-outdir" value="${PROJECT_NATIVE_DIR}/android" />
<property name="pkres" value="${android-outdir}/${PROJECT_NAME}.ap_" />
<property name="android-assets" value="${android-outdir}/assets"/>
<property name="android-src" value="${android-outdir}/src"/>
<property name="android-gen" value="${android-outdir}/gen"/>
<property name="android-res" value="${android-outdir}/res"/>
<property name="android-libs" value="${android-outdir}/libs"/>
<property name="android-library" value="${android-outdir}/library"/>
<property name="android-key" value="${android-outdir}/key"/>
<property name="android-bin" value="${android-outdir}/bin"/>
<property name="android-dx" value="${ANDROID_SDK_PLATFORM_TOOLS}/dx.bat" />
<property name="android-aapt" value="${ANDROID_SDK_PLATFORM_TOOLS}/aapt.exe" />
<property name="android-builder" value="${ANDROID_SDK_DIR}/tools/apkbuilder.bat" />
<property name="android-apk-dir" value="${RELEASE}" />
 
</target>

<target name="native_android-aapt" depends="native_android_init">
<mkdir dir="${android-gen}"/>
<exec executable="${android-aapt}">
<arg line="package" />
<arg line="-f" />
<arg line="-m" />
<arg line="-M ${android-outdir}/AndroidManifest.xml" />
<arg line="-J ${android-gen}" />
<arg line="-S ${android-res}" />
<arg line="-A ${android-assets}" />
<arg line="-I ${ANDROID_JAR_PATH}" />
<arg line="-F ${android-outdir}/${PROJECT_NAME}.ap_" />
</exec>
</target>

<target name="native_android_complete" depends="native_android-aapt">


<delete dir="${android-bin}" />
<delete dir="${android-outdir}/srctmp" />
<mkdir dir="${android-bin}"/>
<mkdir dir="${android-outdir}/srctmp"/>
<copy todir="${android-outdir}/srctmp" overwrite="true">
<fileset dir="${android-gen}">
<exclude name="*svn" />
</fileset>
</copy>

<copy todir="${android-outdir}/srctmp" overwrite="true">
<fileset dir="${android-src}">
<exclude name="*svn" />
</fileset>
</copy>

<javac encoding="${ENCODEING_CHARSET}" srcdir="${android-outdir}/srctmp" destdir="${android-bin}">
<bootclasspath path="${ANDROID_BUILD_JAR_PATH}" />
</javac>

<antcall target="native_android_dx"/>

</target>





<target name="native_android_dx">
 
<exec executable = "${android-dx}">
<arg value="--dex" />
   <arg value="--output=${android-bin}/classes.dex" />
   <arg path="${android-bin}" />
</exec>
</target>


<target name="naitve_android_builder" depends="native_android_complete">
<exec executable = "${android-builder}">
<arg value="${android-bin}/${PROJECT_NAME}.apk" />
<arg value="-v" />
<arg value="-u" />
<arg value="-z" />
<arg value="${android-outdir}/${PROJECT_NAME}.ap_" />
<arg value="-f" />
<arg value="${android-bin}/classes.dex" />
<arg value="-rf" />
<arg value="${android-src}" />
<arg value="-nf" />  <!--这个参数就是要求打入so文件,后面的参数是具体路径-->
<arg value="${android-libs}/" />
</exec>
</target>

<target name="naitve_android_signer" depends="naitve_android_builder">
<exec executable = "jarsigner">
<arg value="-verbose" />
<arg value="-keystore" />
<arg value="${android-key}/ProjectName.keystore" />
<arg line="-storepass" />
<arg value="ProjectName" />
<arg value="-keypass" />
<arg value="ProjectName" />
<arg value="-signedjar" />
<arg value="${android-bin}/${PROJECT_NAME}_signed.apk" />
<arg value="${android-bin}/${PROJECT_NAME}.apk" />
<arg value="ProjectName" />
</exec> 

<copy file="${android-bin}/${PROJECT_NAME}_signed.apk"
 tofile="${android-outdir}/deploy/${PROJECT_NAME}_${VERSION_NAME}_${RELEASE_VERSION}.apk" />
<delete file="${android-bin}/${PROJECT_NAME}.apk" />
 
</target>

原创粉丝点击