NDK打包的ANT脚本(包含引入so文件)
2012-03-22 13:30
459 查看
<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>
<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>
相关文章推荐
- (转)[Android分享] Android中用Ant把ndk的so文件打包进apk
- android ant 打包全过程 包含library,so,jar,混淆,签名
- 包含so 文件到APK的小技巧 (这个内容不是合理的做法,请查阅我关于NDK 1.6的博文来讨论Google 的推荐做法)
- 基于NDK开发完JNI代码后,Android studio中引入对应的so文件的方法
- ndk开发打包.so文件到apk包的方法
- cocos2d-x 打包成so文件之后,假设出现错误,能够使用ndk-stack来查看里面的异常
- ant打包jar文件脚本分享
- ANT编译APK脚本,能多渠道打包,打包SO,很强大,增强版!
- [自动运维]ant脚本打包,上传文件到指定服务器,并部署
- gradle打包android (实现外部导入签名文件、多渠道打包、导入ant脚本)
- ant编译打包可运行的jar文件,并包含所依赖的第三方jar包
- Ant脚本封装ndk-build命令并执行打包启动-升级版
- gradle打包android (实现外部导入签名文件、多渠道打包、导入ant脚本)
- [ANT] Ant脚本封装ndk-build命令并执行打包启动
- gradle打包android (实现外部导入签名文件、多渠道打包、导入ant脚本)
- 用 Ant 打包Android项目时 ,因资源文件中包含.9.png 报错
- php怎么包含或引入多个文件或脚本
- Mac COCOS2D-X用NDK编译安卓项目,打包成.so文件总结
- 【转】如何把ndk编译出来的可执行文件伪装成so打包到apk中
- Android Studio之NDK环境搭建,so文件打包以及使用