`

android混淆build.xml文件

阅读更多

<?xml version="1.0" encoding="UTF-8"?>
<project name=".Test" default="debug-obf">
	<!-- Echo the Java JDK version. 
		If needed, link /System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK to 1.6 -->
	<echo message="ant is using Java sdk ${ant.java.version}" />

	<!-- Some properties. Change paths as needed -->
	<property name="JAVA_HOME" value="C:\Program Files\Java\jdk1.6.0_10\bin" />
	<property name="sdk-location" value="E:/android-sdk-windows" />
	<property name="sdk-folder" value="E:/android-sdk-windows" />
	<property name="proguard-home" value="E:/android-sdk-windows/proguard4.5.1/lib" />
	<property name="proguard-jar" value="E:/android-sdk-windows/proguard4.5.1/lib" />
	<property name="outdir" value="bin" />
	<property name="outdir-classes" value="${outdir}/classes" />
	<property name="library-jar" value="libs" />
	<property name="android-jar" value="${sdk-folder}/platforms/android-3/android.jar" />

	<echo>${java.home}</echo>

	<!-- Template from command 'android create project' 
		Uses: ${sdk-folder}/platforms/android-1.5/templates/android_rules.xml -->
	<property file="local.properties" />
	<property file="build.properties" />
	<property file="default.properties" />

	<path id="android.antlibs">
		<pathelement path="${sdk-location}/tools/lib/anttasks.jar" />
		<pathelement path="${sdk-location}/tools/lib/sdklib.jar" />
		<pathelement path="${sdk-location}/tools/lib/androidprefs.jar" />
		<pathelement path="${sdk-location}/tools/lib/apkbuilder.jar" />
		<pathelement path="${sdk-location}/tools/lib/jarutils.jar" />
	</path>

	<taskdef name="setup" classname="com.android.ant.SetupTask" classpathref="android.antlibs" />

	<setup />
	<setup />

	<!-- Package the application and sign it with a debug key, with obfuscation
	         This is the default target when building. It is used for debug. -->
	<target name="debug-obf" depends="dex-obf, package-resources">
		<apkbuilder outfolder="${out-folder}" basename="${ant.project.name}" signed="true" verbose="false">
			<file path="${intermediate-dex}" />
			<sourcefolder path="${source-folder}" />
			<jarfolder path="${external-libs-folder}" />
			<nativefolder path="${native-libs-folder}" />
		</apkbuilder>
	</target>


	<!-- Package the application without signing it, with obfuscation
	         This allows for the application to be signed later with an official publishing key. -->
	<target name="release-obf" depends="dex-obf, package-resources">
		<apkbuilder outfolder="${out-folder}" basename="${ant.project.name}" signed="false" verbose="false">
			<file path="${intermediate-dex}" />
			<sourcefolder path="${source-folder}" />
			<jarfolder path="${external-libs-folder}" />
			<nativefolder path="${native-libs-folder}" />
		</apkbuilder>
		<echo>All generated packages need to be signed with jarsigner before they are published.</echo>
	</target>


	<!-- Using proguard for the actual obfuscation. 
			Referenced from: http://code.google.com/p/zxing/source/browse/trunk/android-m3/build.xml?r=321 -->
	<target name="optimize" depends="compile">
		<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 ${library-jar}/some_lib_used.jar"/> -->
			<arg value="-dontpreverify" />
			<arg value="-dontoptimize" />
			<arg value="-dontusemixedcaseclassnames" />
			<arg value="-repackageclasses ''" />
			<arg value="-allowaccessmodification" />
			<arg value="-keep public class com.demo.Test" />
			<!-- <arg value="-keep public class com.just2me.obfapp.receiver.*"/> -->
			<arg value="-optimizationpasses 1" />
			<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>


	<!-- Convert into .dex -->
	<target name="dex-obf" depends="compile, optimize">
		<echo>Converting compiled files and external libraries into ${out-folder}/${dex-file}...</echo>
		<apply executable="${dx}" failonerror="true" parallel="true">
			<arg value="--dex" />
			<arg value="--output=${intermediate-dex-location}" />
			<arg path="${out-classes-location}" />
			<fileset dir="${external-libs-folder}" includes="*.jar" />
		</apply>
	</target>

	<!-- Cleaning up the house -->
	<target name="clean">
		<delete dir="${outdir}" />
	</target>
</project>
 
分享到:
评论

相关推荐

    Android-一款自动对dex文件中的字符串进行加密Android插件工具

    在使用StringFog插件时,首先需要将其集成到Android项目的构建系统中,通常是在Gradle配置文件(build.gradle)中添加依赖。这将使得在编译过程中,StringFog会自动扫描并加密所有的字符串常量。这样,即使攻击者...

    android studio 打包.jar到unity调用 unity工程

    3. 配置build.gradle:打开app模块下的build.gradle文件,确保配置了正确的目标版本,并在`defaultConfig`块中添加`minifyEnabled false`,避免混淆代码。同时,在`buildTypes`块中添加`jars`任务,如下: ```...

    浅析Android中build.gradle的实用技巧

    在Android开发中,`build.gradle`文件是构建系统的核心,它定义了项目的构建配置,包括编译选项、依赖管理、打包设置等。掌握一些实用技巧可以显著提高开发效率和项目维护性。以下是一些常见的`build.gradle`技巧: ...

    Android项目的Ant配置

    下面将详细解释Android项目的Ant配置及其关键文件`build.properties`和`build.xml`。 首先,`build.properties`文件是Ant构建系统中的配置文件,它存储了项目特定的属性,如版本信息、库依赖等。例如: ```...

    详解OkSocket与Android的简单使用

    为了避免OkSocket被混淆,需要在Proguard混淆文件中增加以下配置: -dontwarn com.xuhao.android.libsocket. -keep class com.xuhao.android.socket.impl.abilities. { *; } -keep class ...

    android build tool

    5. **资源编译**:Android Build Tool负责编译XML资源文件、图片以及其他非代码资源。它会将资源文件转换为Dalvik Executable (DEX)文件格式,以便在Android设备上运行。 6. **AAPT(Android Asset Packaging Tool...

    android-sdk-build-tools27.0.1.rar

    1. **AAPT(Android Asset Packaging Tool)**:处理Android应用的资源文件,如图片、XML布局等,将其编译为二进制格式,以便于运行时快速加载。 2. **dx/d8 Dex Compiler**:将Java字节码转换为Dalvik或ART格式的....

    使用ant打包android

    在Android项目的根目录下创建一个名为build.xml的文件。这个文件会包含构建过程的所有指令。Android SDK提供了一个示例模板,可以通过`android update project -p .`命令自动生成。这个命令会根据项目结构填充build...

    android ant 多渠道混淆打包

    在Android项目根目录下创建`build.xml`文件,这是Ant的构建脚本。配置基本的Android项目构建,包括编译源码、生成R.java文件、打包资源等。例如: ```xml &lt;property name="sdk.dir" value="/path/to/your/android...

    Android代码混淆及签名.doc

    - Ant构建:通过在项目的build.xml文件中配置ProGuard任务来执行混淆。 3. 配置ProGuard: - proguard.cfg或proguard-project.txt:这是Android项目的混淆配置文件,用于指定混淆规则。 - 添加外部jar包:确保...

    Android studio tool.zip

    1. **启用混淆**:在`build.gradle`文件中找到`android`块,启用ProGuard规则: ```groovy buildTypes { release { minifyEnabled true proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'...

    maven 代码混淆.zip

    对于Android项目,由于使用了Gradle构建系统,混淆通常在`build.gradle`文件中配置,但原理与上述Maven配置相似。R8的配置也类似,只是使用`com.android.tools.build:gradle`插件,并在`buildTypes`或`...

    ant混淆打包

    在`android-build-in-ant`这个压缩包中,可能包含了用于Ant构建的示例`build.xml`文件、ProGuard配置文件以及必要的库文件。开发者可以根据这些资源自定义自己的构建过程,实现混淆打包。 总之,Ant混淆打包是...

    android ant build脚本代码

    在`Android`项目中,通常会有一个默认的`build.xml`,它包含了编译、打包、测试等基础任务。 2. **自动化多渠道打包** 在Android应用发布时,往往需要为不同的市场或渠道创建定制的APK,例如内置不同的渠道参数。...

    微博Android SDK使用指南_v11.11.11

    参数配置需要在AndroidManifest.xml中添加权限和混淆配置,并在build.gradle文件中添加依赖和属性配置。 8. 权限和混淆配置 权限和混淆配置需要在AndroidManifest.xml中添加INTERNET、WRITE_EXTERNAL_STORAGE和...

    生成aar或者jar以及混淆的工具类.zip

    首先,`aar`文件是Android专用的库格式,它包含了编译后的类文件、资源文件、AndroidManifest.xml等,适用于Android项目。`aar`文件可以作为一个完整的模块被其他Android项目依赖,提供了对资源和依赖管理的支持。 ...

    build.zip安卓编译版本

    "build.zip安卓编译版本" 提供了特定构建环境下的编译产物,这些产物包括了编译后的APK文件、资源文件、库文件等,它们是开发者将源代码转化为可以在Android设备上运行的应用程序所需的所有组成部分。下面我们将详细...

    android_build-tools_22.0.1.rar

    1. **AAPT (Android Asset Packaging Tool)**:AAPT是Android资源处理工具,负责编译、压缩、打包资源文件,如图片、XML布局文件等。在Build-Tools 22.0.1中,AAPT会将资源文件转换为二进制格式,并生成R.java文件,...

    Android “遇见”android应用源码.zip

    6. **库和依赖**: Android应用经常依赖第三方库,这些库在build.gradle文件中被引用,例如Glide用于图片加载,Retrofit用于网络请求,Room用于数据库操作等。 7. **Services**: 如果应用需要在后台运行任务,如音乐...

    aprendiendo-android-main.rar

    对于Android应用来说,源代码通常包含Java或Kotlin语言编写的类,XML布局文件,以及可能的资源文件等。 【压缩包子文件的文件名称列表】: "aprendiendo-android-main.zip" 这个文件名与主压缩文件相同,只是扩展名...

Global site tag (gtag.js) - Google Analytics