- 浏览: 868395 次
- 性别:
- 来自: 上海
最新评论
-
waterflow:
感谢分享
简单的ChartDirector生成图表例子 -
YQuite:
写到最后一种文件才看到这个,洼的一声哭了出来 - - !
java简单解析docx、pptx、xlsx文档 -
q394469902:
Android通过selector改变界面状态 -
db6623919:
直接粘贴别人帖子还是英文的,有意思?
实现RTSP协议的简单例子 -
ykou314:
请问下,这些超级命令,是否需要android root权限,尤 ...
Android系统在超级终端下必会的命令大全(七)
《Obfuscate an Android application》 这篇文章的作者介绍了如何在Android平台下混淆程序,并且给出ant的build.xml文件,经过自己的测试,发现里面少了一些target项,在Eclips会出错,后来结合zxing开源项目的build.xml文件,终于混淆成功,项目包减少了不少。
这里主要提一些注意事项,不提供源代码
1、创建build.xml文件
直接在项目的目录下新建一个名为build.xml的文件
2、创建Ant打包方式
项目 –> properties –> builders –> new –> ant builder
接着Buildfile选择项目build.xml文件,Base Dir选择项目目录就行了,记得勾上你的builders
3、build.xml文件修改
zxing这个文件没有加入混淆包选项,所以得做一些修改,如下示例
<property name="proguard-home" value="D:\\Program Files\\proguard4.2\\lib\\"/> <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.iwidsets.WidsetsActivity"/> <!-- <arg value="-keep public class com.just2me.obfapp.receiver.*"/> --> <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>
注意:keep public class com.iwidsets.WidsetsActivity需改成你的主Activity
并修改target dex
<!-- Convert this project's .class files into .dex files. --> <target name="dex" 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="${outdir-classes-location}" /> <fileset dir="${external-libs-folder}" includes="*.jar"/> </apply> </target>
评论
9 楼
s123451
2013-05-30
[list]
[*]
[/list]
[*]
引用
[/list]
8 楼
fonter
2011-08-23
caitiancai 写道
BUILD FAILED
D:\personal\eclipse\S2\build.xml:188: src 'D:\personal\eclipse\core\core.jar' doesn't exist.
请问这个怎么解决呀????
D:\personal\eclipse\S2\build.xml:188: src 'D:\personal\eclipse\core\core.jar' doesn't exist.
请问这个怎么解决呀????
现在的android sdk已支持混淆了,直接通过eclipse就可以混了,不用再写xml了..你可以试试... http://fonter.iteye.com/blog/942714
7 楼
caitiancai
2011-08-23
BUILD FAILED
D:\personal\eclipse\S2\build.xml:188: src 'D:\personal\eclipse\core\core.jar' doesn't exist.
请问这个怎么解决呀????
D:\personal\eclipse\S2\build.xml:188: src 'D:\personal\eclipse\core\core.jar' doesn't exist.
请问这个怎么解决呀????
6 楼
songfantasy
2011-04-28
sdk8以后,google已经给提供很方便的混淆方法。
不过,楼主不错。总结的很好
不过,楼主不错。总结的很好
5 楼
sunburst
2010-10-02
fonter 写道
No resource found that matches the given name (at 'icon' with value '@drawable/icon').
No resource found that matches the given name (at 'icon' with value '@drawable/icon').
在drawable没有icon吧,“No resource found that matches the given name ”这个
sunburst 写道
非常感谢你的回答,现在出现了新问题,当我开始build的时候,显示下面的错误,应该如何解决?
resource-src:
[echo] Generating R.java / Manifest.java from the resources...
[exec] E:\Android App\sms\MyPrivateMessages\AndroidManifest.xml:26: ERROR Error: No resource found that matches the given name (at 'icon' with value '@drawable/icon').
[exec] E:\Android App\sms\MyPrivateMessages\AndroidManifest.xml:26: ERROR Error: No resource found that matches the given name (at 'label' with value '@string/app_name').
[exec] E:\Android App\sms\MyPrivateMessages\AndroidManifest.xml:28: ERROR Error: No resource found that matches the given name (at 'label' with value '@string/app_name').
BUILD FAILED
resource-src:
[echo] Generating R.java / Manifest.java from the resources...
[exec] E:\Android App\sms\MyPrivateMessages\AndroidManifest.xml:26: ERROR Error: No resource found that matches the given name (at 'icon' with value '@drawable/icon').
[exec] E:\Android App\sms\MyPrivateMessages\AndroidManifest.xml:26: ERROR Error: No resource found that matches the given name (at 'label' with value '@string/app_name').
[exec] E:\Android App\sms\MyPrivateMessages\AndroidManifest.xml:28: ERROR Error: No resource found that matches the given name (at 'label' with value '@string/app_name').
BUILD FAILED
No resource found that matches the given name (at 'icon' with value '@drawable/icon').
在drawable没有icon吧,“No resource found that matches the given name ”这个
实际是有的,不然project本身也会报错,现在情况是不用ant是正常编译的,说明资源指向是正确的
4 楼
fonter
2010-10-01
No resource found that matches the given name (at 'icon' with value '@drawable/icon').
No resource found that matches the given name (at 'icon' with value '@drawable/icon').
在drawable没有icon吧,“No resource found that matches the given name ”这个
sunburst 写道
非常感谢你的回答,现在出现了新问题,当我开始build的时候,显示下面的错误,应该如何解决?
resource-src:
[echo] Generating R.java / Manifest.java from the resources...
[exec] E:\Android App\sms\MyPrivateMessages\AndroidManifest.xml:26: ERROR Error: No resource found that matches the given name (at 'icon' with value '@drawable/icon').
[exec] E:\Android App\sms\MyPrivateMessages\AndroidManifest.xml:26: ERROR Error: No resource found that matches the given name (at 'label' with value '@string/app_name').
[exec] E:\Android App\sms\MyPrivateMessages\AndroidManifest.xml:28: ERROR Error: No resource found that matches the given name (at 'label' with value '@string/app_name').
BUILD FAILED
resource-src:
[echo] Generating R.java / Manifest.java from the resources...
[exec] E:\Android App\sms\MyPrivateMessages\AndroidManifest.xml:26: ERROR Error: No resource found that matches the given name (at 'icon' with value '@drawable/icon').
[exec] E:\Android App\sms\MyPrivateMessages\AndroidManifest.xml:26: ERROR Error: No resource found that matches the given name (at 'label' with value '@string/app_name').
[exec] E:\Android App\sms\MyPrivateMessages\AndroidManifest.xml:28: ERROR Error: No resource found that matches the given name (at 'label' with value '@string/app_name').
BUILD FAILED
No resource found that matches the given name (at 'icon' with value '@drawable/icon').
在drawable没有icon吧,“No resource found that matches the given name ”这个
3 楼
sunburst
2010-09-30
非常感谢你的回答,现在出现了新问题,当我开始build的时候,显示下面的错误,应该如何解决?
resource-src:
[echo] Generating R.java / Manifest.java from the resources...
[exec] E:\Android App\sms\MyPrivateMessages\AndroidManifest.xml:26: ERROR Error: No resource found that matches the given name (at 'icon' with value '@drawable/icon').
[exec] E:\Android App\sms\MyPrivateMessages\AndroidManifest.xml:26: ERROR Error: No resource found that matches the given name (at 'label' with value '@string/app_name').
[exec] E:\Android App\sms\MyPrivateMessages\AndroidManifest.xml:28: ERROR Error: No resource found that matches the given name (at 'label' with value '@string/app_name').
BUILD FAILED
resource-src:
[echo] Generating R.java / Manifest.java from the resources...
[exec] E:\Android App\sms\MyPrivateMessages\AndroidManifest.xml:26: ERROR Error: No resource found that matches the given name (at 'icon' with value '@drawable/icon').
[exec] E:\Android App\sms\MyPrivateMessages\AndroidManifest.xml:26: ERROR Error: No resource found that matches the given name (at 'label' with value '@string/app_name').
[exec] E:\Android App\sms\MyPrivateMessages\AndroidManifest.xml:28: ERROR Error: No resource found that matches the given name (at 'label' with value '@string/app_name').
BUILD FAILED
2 楼
fonter
2010-09-28
sunburst 写道
注意:keep public class com.iwidsets.WidsetsActivity需改成你的主Activity
这里只用添加主Activity?其他的不用添加?那我引用的jar包是否需要添加?
这里只用添加主Activity?其他的不用添加?那我引用的jar包是否需要添加?
看你需不需要啊。。。比如重要的代码不想让人知道,就混淆。包的话也是这样啊。。。。
1 楼
sunburst
2010-09-28
注意:keep public class com.iwidsets.WidsetsActivity需改成你的主Activity
这里只用添加主Activity?其他的不用添加?那我引用的jar包是否需要添加?
这里只用添加主Activity?其他的不用添加?那我引用的jar包是否需要添加?
发表评论
-
One省电卫士 - Android内核级省电App
2013-02-03 19:32 3571One省电卫士是一款androi ... -
(转)Windows下Eclipse集成Cygwin配置Android NDK环境编译JNI库程序步骤
2012-05-09 16:11 5598前戏准备: 1. 搭建Eclipse Android ... -
Android-Task和Activity相关的一些属性[转]
2011-08-23 09:21 3059android:allowTaskReparenting用来标 ... -
GC_FOR_MALLOC
2011-07-01 11:44 2293GC_FOR_MALLOC means that the ... -
ProgressBar 样式
2011-05-01 23:06 3167The four attributes that you me ... -
ShellCommand.java
2011-04-07 19:38 1583/** * ShellCommand.java runs co ... -
Android任务管理终极发布AndTask 3.1(安安任务管理)
2011-04-04 07:50 1659安安任务管理是一款android任务管理软件,可通过手动或自动 ... -
AndMemory 安安内存管理 1.1 发布
2011-03-08 23:42 1898AndMemory is an android memory ... -
预测今年将是android应用普及年和android安全年
2011-03-06 21:53 1974经过去年一年的实践,预测今年将是android应用 ... -
Android之混淆(Obfuscate)
2011-03-06 16:07 2899下载Android安安软件请到:http://code. ... -
Android内存信息
2011-02-21 21:40 2167下载Android安安软件请到:http://code.goo ... -
How to decompile .dex file on Android(转)如何反编译.dex文件
2011-02-20 11:34 2885下载Android安安软件请到:http://code.goo ... -
(转)android JNI 学习笔记1
2011-02-17 10:08 2803下载Android安安软件请到:http://code.goo ... -
(转)Android内存管理机制之一:lowmemory killer
2011-02-15 15:00 2634下载Android安安软件请到 ... -
(转)内存管理Memory Management in Android
2011-02-14 23:31 4190下载Android安安软件请到:http://code.goo ... -
转-Andriod被排出Linux内核的原因
2011-01-12 22:36 1534下载Android安安软件请到:http://code.goo ... -
Ubuntu 开启 Android 的 USB 调试模式
2011-01-06 20:51 7790在Android开发者网站中, 它提供了在 Ubuntu 下实 ... -
解决Conversion to Dalvik format failed: Unable to execute dex: null
2010-12-12 23:17 2405解决Conversion to Dalvik format f ... -
AndBox发布最新版AndRootFile(安安文件管理) 3.0 beta 版
2010-11-27 09:56 1776The ultimate file manager for r ... -
(转)区分Activity的四种加载模式
2010-11-20 10:09 1787在多Activity开发中,有可能是自己应用之间的Activi ...
相关推荐
5. 代码混淆级别:ProGuard提供了三种混淆级别:简单(shrink),中级(optimize)和高级(obfuscate)。在实际项目中,通常选择最高级别的混淆,即同时进行代码压缩、优化和混淆。 6. 测试混淆后的代码:在发布前...
在Android开发过程中,为了保护应用的安全性和优化代码大小,开发者通常会使用Proguard工具进行代码混淆。Proguard是一个强大的Java类文件 shrinker、optimizer、 obfuscator 和 preverifier,它能够删除未使用的...
在Java开发领域,尤其是涉及到Android应用开发时,代码混淆是一个重要的步骤,用于保护源代码的安全性和优化应用程序的体积。本文将深入探讨`maven`与`代码混淆`的相关知识点,帮助开发者理解如何在Maven项目中实现...
- **混淆(Obfuscate)**:使用无意义的名称对类、字段和方法进行重命名。 - **预检(Preverify)**:对处理后的代码进行预检,主要在Java平台上进行。 Proguard工具已经内置在Android Studio中,每当创建一个新...
因为Java代码是非常容易反编码的,况且Android开发的应用程序是用Java代码写的,为了很好的保护Java源代码,我们需要对编译好后的class文件进行混淆。 ProGuard是一个混淆代码的开源项目,它的主要作用是混淆代码,...
gradle clean obfuscate安装具有包装结构 -/--AndroidAppRoot/--FoodObfuscator/将此行添加到顶级Android应用包装器gradle中的依赖项maven { url uri( " ../repo " )} 对于每个单独的android应用build.gradle 最小...
ProGuard提供了多种混淆策略,例如“-obfuscate”选项,它会自动重命名类、方法和字段,使得原始代码难以理解。此外,用户还可以通过配置文件自定义混淆规则,确保关键类和方法不被混淆。 其次,代码优化是ProGuard...
3. **混淆(Obfuscate)**:混淆是 ProGuard 的关键特性,它将类、字段和方法的名字转换为简短的、无意义的名称,使得代码难以被反编译和理解,从而增加破解的难度。这对于保护商业逻辑和防止知识产权泄露至关重要。...
此外,还可以使用Lint检查代码潜在问题,以及使用Shrink, Obfuscate, and Optimize功能减小APK大小。 通过以上步骤,开发者可以在Android Studio中创建一个功能完善的“简单音乐播放器”。整个过程涉及了Android...
- `-obfuscate`:启动混淆,`-dontobfuscate` 可禁用混淆。 混淆选项如 `-obfuscationdictionary`、`-overloadaggressively` 和 `-useuniqueclassmembernames` 可以进一步定制混淆规则,提高混淆效果。 总的来说,...
It feature is to obfuscate built dotNet assemblies, like assembly-csharp and assembly-unityscript for Windows/Mac/Linux Standalone Games and embedded Systems like Android and IPhone. Beta: Xbox and ...
在Android开发中,ProGuard是默认集成的,用于对APK进行混淆,以防止反编译。而在Java桌面应用或者服务器端应用中,尽管不那么常见,但依然可以使用ProGuard来优化和保护代码。 Apache **Maven** 是一个项目管理和...
It feature is to obfuscate built dotNet assemblies, like assembly-csharp and assembly-unityscript for Windows/Mac/Linux Standalone Games and embedded Systems like Android and IPhone. Beta: Xbox and ...