<?xml version="1.0" encoding="UTF-8"?>
<project name="xxx_android" default="zipalign" basedir=".">
<property file="build.properties" />
<property name="proguard-home" value="D:/service/proguard4.2/lib"/>
<property name="outdir" value="bin" />
<!-- ************************************************************************************* -->
<!-- No user servicable parts below. -->
<property name="android-framework" value="${sdk.folder}/framework.aidl" />
<!-- Input directories -->
<property name="resource-dir" value="res" />
<property name="asset-dir" value="assets" />
<property name="srcdir" value="src" />
<condition property="srcdir-ospath" value="${basedir}\${srcdir}" else="${basedir}/${srcdir}">
<os family="windows" />
</condition>
<property name="external-libs" value="lib" />
<condition property="external-libs-ospath" value="${basedir}\${external-libs}" else="${basedir}/${external-libs}">
<os family="windows" />
</condition>
<!-- Output directories -->
<property name="outdir-classes" value="${outdir}" />
<condition property="outdir-classes-ospath" value="${basedir}\${outdir-classes}" else="${basedir}/${outdir-classes}">
<os family="windows" />
</condition>
<condition property="zipalign-package-ospath" value="${basedir}\${output.dir}\${app.name}_for_android_${android_version}_${temp.dir}.apk" else="${basedir}/${output.dir}">
<os family="windows" />
</condition>
<!-- Create R.java in the source directory -->
<property name="outdir-r" value="src" />
<!-- Intermediate files -->
<property name="dex-file" value="classes.dex" />
<property name="intermediate-dex" value="${outdir}/${dex-file}" />
<condition property="intermediate-dex-ospath" value="${basedir}\${intermediate-dex}" else="${basedir}/${intermediate-dex}">
<os family="windows" />
</condition>
<!-- The final package file to generate -->
<property name="resources-package" value="${outdir}/resources.ap_" />
<condition property="resources-package-ospath" value="${basedir}\${resources-package}" else="${basedir}/${resources-package}">
<os family="windows" />
</condition>
<property name="out-debug-package" value="${outdir}/${ant.project.name}-debug.apk" />
<condition property="out-debug-package-ospath" value="${basedir}\${out-debug-package}" else="${basedir}/${out-debug-package}">
<os family="windows" />
</condition>
<property name="out-unsigned-package" value="${outdir}/${ant.project.name}-unsigned.apk" />
<property name="out-signed-package" value="${outdir}/${ant.project.name}.apk" />
<condition property="out-unsigned-package-ospath" value="${basedir}\${out-unsigned-package}" else="${basedir}/${out-unsigned-package}">
<os family="windows" />
</condition>
<condition property="out-signed-package-ospath" value="${basedir}\${out-signed-package}" else="${basedir}/${out-signed-package}">
<os family="windows" />
</condition>
<!-- Tools -->
<condition property="aapt" value="${android.tools}/aapt.exe" else="${android.tools}/aapt">
<os family="windows" />
</condition>
<condition property="zipalign" value="${apk.tools}/zipalign.exe" else="${apk.tools}/zipalign">
<os family="windows" />
</condition>
<condition property="jarsigner" value="${jdk.home}/bin/jarsigner.exe" else="${jdk.home}/bin/jarsigner">
<os family="windows" />
</condition>
<condition property="aidl" value="${android.tools}/aidl.exe" else="${android.tools}/aidl">
<os family="windows" />
</condition>
<condition property="adb" value="${apk.tools}/adb.exe" else="${apk.tools}/adb">
<os family="windows" />
</condition>
<condition property="dx" value="${android.tools}/dx.bat" else="${android.tools}/dx">
<os family="windows" />
</condition>
<condition property="apk-builder" value="${apk.tools}/apkbuilder.bat" else="${apk.tools}/apkbuilder">
<os family="windows" />
</condition>
<property name="android-jar" value="${sdk.folder}/android.jar" />
<property name="outdir" value="bin" />
<property name="outdir-classes" value="${outdir}" />
<target name="optimize" >
<echo message="${outdir-classes}" />
<jar basedir="${outdir-classes}" destfile="temp.jar"/>
<java jar="${proguard-home}/proguard.jar" fork="true" failonerror="true">
<jvmarg value="-Dmaximum.inlined.code.length=32"/>
<arg value="-injars temp.jar"/>
<arg value="-outjars optimized.jar"/>
<arg value="-libraryjars ${android-jar}"/>
<!-- <arg value="-libraryjars ${external-libs}/*.jar"/>-->
<arg value="-dontpreverify"/>
<arg value="-dontoptimize"/>
<arg value="-dontusemixedcaseclassnames"/>
<arg value="-repackageclasses ''"/>
<arg value="-allowaccessmodification"/>
<!--<arg value="-keep public class ${exclude-activity}"/>-->
<!--<arg value="-keep public class ${exclude-provider}"/>-->
<arg value="-keep public class * extends android.app.Activity"/>
<arg value="-keep public class * extends android.content.ContentProvider"/>
<arg value="-keep public class * extends android.view.View"/>
<arg value="-keep public class * extends android.preference.Preference"/>
<arg value="-optimizationpasses 7"/>
<arg value="-verbose"/>
<arg value="-dontskipnonpubliclibraryclasses"/>
<arg value="-dontskipnonpubliclibraryclassmembers"/>
</java>
<delete file="temp.jar"/>
<delete dir="${outdir-classes}"/>
<mkdir dir="${outdir-classes}"/>
<unzip src="optimized.jar" dest="${outdir-classes}"/>
<delete file="optimized.jar"/>
</target>
<target name="dex" depends="optimize">
<echo>Converting compiled files and external libraries into ${outdir}/${dex-file}...</echo>
<apply executable="${dx}" failonerror="true" parallel="true">
<arg value="--dex" />
<arg value="--output=${intermediate-dex-ospath}" />
<arg path="${outdir-classes-ospath}" />
<fileset dir="${external-libs}" includes="*.jar" />
</apply>
</target>
<target name="debug" depends="dex">
<echo>Packaging ${out-debug-package}, and signing it with a debug key...</echo>
<exec executable="${apk-builder}" failonerror="true">
<arg value="${out-debug-package-ospath}" />
<arg value="-z" />
<arg value="${resources-package-ospath}" />
<arg value="-f" />
<arg value="${intermediate-dex-ospath}" />
<arg value="-rf" />
<arg value="${srcdir-ospath}" />
<arg value="-rj" />
<arg value="${external-libs-ospath}" />
</exec>
</target>
<target name="package-res-no-assets">
<echo>Packaging resources...</echo>
<exec executable="${aapt}" failonerror="true">
<arg value="package" />
<arg value="-f" />
<arg value="-M" />
<arg value="AndroidManifest.xml" />
<arg value="-S" />
<arg value="${resource-dir}" />
<!-- No assets directory -->
<arg value="-I" />
<arg value="${android-jar}" />
<arg value="-F" />
<arg value="${resources-package}" />
</exec>
</target>
<target name="package-res-and-assets">
<echo>Packaging resources and assets...</echo>
<exec executable="${aapt}" failonerror="true">
<arg value="package" />
<arg value="-f" />
<arg value="-M" />
<arg value="AndroidManifest.xml" />
<arg value="-S" />
<arg value="${resource-dir}" />
<arg value="-A" />
<arg value="${asset-dir}" />
<arg value="-I" />
<arg value="${android-jar}" />
<arg value="-F" />
<arg value="${resources-package}" />
</exec>
</target>
<target name="package-res">
<available file="${asset-dir}" type="dir" property="res-target" value="and-assets" />
<property name="res-target" value="no-assets" />
<antcall target="package-res-${res-target}" />
</target>
<target name="release" depends="dex,package-res">
<echo>Packaging ${out-unsigned-package} for release...</echo>
<exec executable="${apk-builder}" failonerror="true">
<arg value="${out-unsigned-package-ospath}" />
<arg value="-u" />
<arg value="-z" />
<arg value="${resources-package-ospath}" />
<arg value="-f" />
<arg value="${intermediate-dex-ospath}" />
<arg value="-rf" />
<arg value="${srcdir-ospath}" />
<arg value="-rj" />
<arg value="${external-libs-ospath}" />
</exec>
<echo>It will need to be signed with jarsigner before being published.</echo>
</target>
<target name="jarsigner" depends="release">
<exec executable="${jarsigner}" failonerror="true">
<arg value="-verbose" />
<arg value="-storepass" />
<arg value="${password}" />
<arg value="-keystore" />
<arg value="xxxx.keystore" />
<arg value="-signedjar" />
<arg value="${out-signed-package-ospath}" />
<arg value="${out-unsigned-package-ospath}" />
<arg value="android.keystore" />
</exec>
</target>
<target name="zipalign" depends="jarsigner">
<exec executable="${zipalign}" failonerror="true">
<arg value="-v" />
<arg value="-f" />
<arg value="4" />
<arg value="${out-signed-package-ospath}" />
<arg value="${zipalign-package-ospath}" />
</exec>
</target>
</project>
build.properties
android.tools=${sdk.folder}tools
android_version=2.1
apk.sdk.home=D:/service/android-sdk_r06-windows/android-sdk-windows/
apk.tools=${apk.sdk.home}tools/
application.package=src
bin.dir=${jde.home}bin
app.name=xxx
app.source.path=F:/xxxx_android/xxx_android/
jdk.home=D:/Java/jdk1.6.0_05/
output.dir=../outputDir
password=111111
sdk.folder=D:/service/android-sdk_r06-windows/android-sdk-windows/platforms/android-7/
temp.dir=xxxdir
分享到:
相关推荐
android proguard5.3.3混淆包 替换Jar包以后使 混淆的类名方法名变成空白 使用方法 直接 替换 5.3.3版本的 混淆jar包 Mac 路径为 Contents/gradle/m2repository/net/sf/proguard/proguard-base Win gradle/m2...
安卓打包混淆的proguard,其中本文档保存的是基础部分,其他混淆规则需要自己添加
Android proguard4.5.1 代码混淆
android proGuard,防止你辛苦写出来的代码被轻易的反编译,你,值得拥有
ProGuard的主要作用就是混淆。当然它还能对字节码进行缩减体积、优化等,但那些对于我们来说都算是次要的功能。 引用ProGuard官方的一段话来介绍就是: ProGuard is a free Java class file shrinker, optimizer, ...
Android混淆 各个版本proguard文件 Android混淆 各个版本proguard文件
Android Java代码混淆工具:ProGuard简介及使用.docx
#android-proguard-configs ##Introduction android configs - proguard ##How To Use 克隆 repo,并将所有 proguard 配置文件复制到 /tools/proguard。 对于 App,建议使用 proguard-android-app-optimize.txt。 ...
ProGuard最新版本 5.2.1
Android proguard 实例
proguard5.2.1混淆lib库
java,jar包最新混淆工具,proguard5.3.3 使用方法: 打开 proguard5.3.3\proguard5.3.3\bin\proguardgui.bat启动
官方sourceforge最新版本,2017-04-02更新
为了保护我们的JAVA/Android代码,我们常使用proguard对代码进行混淆(http://proguard.sourceforge.net/)。 默认情况下,proguard混淆时将类/变量/方法重命名为a,b,c,...的格式。 我们可以通过配置-...
android-proguard-snippets, 通用Android库的混淆器配置 android-proguard-snippets通用Android库的混淆器配置。这个项目假设你的混淆器配置是基于最新的官方 proguard-android.txt 配置,如下所示。 每个库配置应该...
android-sdk目录下tools文件夹下的proguard文件夹,proguard文件夹资料不全的,可以下载本资料包覆盖原文件夹
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } 混淆文件里面添加 (自行选择) # 修改包名 -repackageclass "" # 忽略访问修饰符,配合上一句使用 -...
网上介绍的混淆方法都不完整,此附件为基于Android SDK 1.5 + eclipse 3.5 的完整实例.具体请参考项目中的build.xml文件. 熬了一个通宵,就当赚个通宵钱了...
其中包括第三方jar混淆报错及解决办法,以及普通的代码混淆办法,相信能给你帮助