防止 apk反编译 jocky-- java混淆代码 (转至:http://my.oschina.net/f839903061/blog/72554)
1、下载jocky,解压后把整个文件夹复制到Eclipse的plugin目录。
2、重启Eclipse,在项目上点右键,如果出现jocky菜单,则安装成功。
3、在项目上点右键,选菜单jocky->jocky setting,弹出菜单后设置如图

4、点ok后,将在项目的根目录下生成一个jocky_build.xml文件,事实上是一个ant build文件。打开这个文件,作适当修改
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- WARNING: Jocky autogenerated file. 
   Any modifications will be overwritten.
-->
<project basedir="." default="build" name="iSzmap.Android.public.jocky">
   <property name="jocky.jar" value="D:\eclipse-jee-galileo-SR1-win32-2\eclipse\plugins\org.apusic.jocky_1.0.3\jocky.jar"/>
   <property name="jocky.output.dir" value="iszmap"/>
   <property name="jocky.scramble.level" value="package"/>
   <property name="target" value="1.5"/>
   <path id="project.classpath">
   <pathelement location="bin"/>
  <pathelement location="D:/android-sdk-windows-1.5_r3/platforms/android-1.5/android.jar"/>
   </path>
   <target name="init">
   <jocky jar="${jocky.jar}" level="${jocky.scramble.level}"/>
   <mkdir dir="${jocky.output.dir}"/>
   <mkdir dir="${jocky.output.dir}/bin"/>
   </target>
   <target name="clean">
   <delete dir="${jocky.output.dir}/bin"/>
   <delete dir="${jocky.output.dir}"/>
   </target>
   <target depends="init" name="build">
   <echo message="${ant.project.name}: ${ant.file}"/>
   <jocky enable="true"/>
   <javac destdir="${jocky.output.dir}/bin" target="${target}" encoding="UTF-8">
   <src path="src/com/iszmap/android/map"/>
   <classpath refid="project.classpath"/>
   </javac>
   </target>
</project>
注意红色的部分,第一部分是添加编译时需要的额外的类包;第二部分是设定java源文件的编码,如果您的文件中有中文的话,必须设定编码;第三部分是设定源文件的目录,因为有时候我们只想输出src目录下的部分包而不是全部。
5、保存后选jocky-jocky Now就可以进行混码了。
混码后的class文件可以通过命令进行打包,或用winrar进行压缩,注意必须压成.zip文件而不是.rar文件。
二、
使用jocky的时候,如果你的java文件使用了utf-8编码,而windows默认是gbk编码,可能会出现"unmappable character for encoding GBK"错误而导致jocky不能使用的情况。可以通过修改jocky_build.xml中的javac段,为其添加encoding="UTF-8"就可以解决这个问题了。
这个问题的实质原因是因为ant的javac使用了默认编码(如果你使用windows xp中文版,默认编码就是GBK),从而导致编码不一致。
        <javac destdir="${jocky.output.dir}/WebRoot/WEB-INF/classes" target="${target}" encoding="UTF-8">
            <src path="src"/>
            <classpath refid="project.classpath"/>
        </javac>
jocky下载:
http://www.pudn.com/downloads133/sourcecode/others/detail567839.html
当你将这些都搞到了之后,运行你的android项目,然后从bin文件夹中拷贝出你的apk文件,用我上一章说的apk反编译一下,查看是不是有一大堆的不搭边的.java文件,这表示被混淆了,祝你好运,如果成功的话如图所示:

防止 apk反编译 jocky-- java混淆代码 (转至:http://my.oschina.net/f839903061/blog/72554)的更多相关文章
- Android Studio 动态调试 apk 反编译出的 smali 代码
		
在信安大赛的准备过程中,主要通过 Android Studio 动态调试 apk 反编译出来的 smali 代码的方式来对我们分析的执行流程进行验证.该技巧的主要流程在此记录.以下过程使用 Andro ...
 - Android Apk反编译得到Java源代码
		
大家做Android开发,看到别人应用里一些好的功能,是不是很想得到源码,借鉴一下?既然Android是用JAVA开发的,那么我们就能很容易的通过反编译的到应用的源代码.下面我简单介绍下应该怎么操作. ...
 - Android APK反编译得到Java源代码和资源文件
		
在此郑重声明,贴出来的目的不是为了去破解人家的软件,完全是一种学习的态度,不过好像通过这种方式也可以去汉化一些外国软件. 一.反编译Apk得到Java源代码 首先要下载两个工具:dex2jar和JD- ...
 - Android: apk反编译 及 AS代码混淆防反编译
		
一.工具下载: 1.apktool(资源文件获取,如提取出图片文件和布局文件) 反编译apk:apktool d file.apk –o path 回编译apk:apktool b path –o f ...
 - [转]Java.APK 反编译
		
本文转自:http://blog.csdn.net/vipzjyno1/article/details/21039349/ (注:反编译不是让各位开发者去对一个应用破解搞重装什么的,主要目的是为了促进 ...
 - apk  反编译
		
http://blog.csdn.net/vipzjyno1/article/details/21039349/ [置顶] Android APK反编译就这么简单 详解(附图) 标签: android ...
 - apk反编译
		
在学习Android开发的过程你,你往往会去借鉴别人的应用是怎么开发的,那些漂亮的动画和精致的布局可能会让你爱不释手,作为一个开发者,你可能会很想知道这些效果界面是怎么去实现的,这时,你便可以对改应用 ...
 - JAVA_Android APK反编译就这么简单 详解(附图)
		
在学习Android开发的过程你,你往往会去借鉴别人的应用是怎么开发的,那些漂亮的动画和精致的布局可能会让你爱不释手,作为一个开发者,你可能会很想知道这些效果界面是怎么去实现的,这时,你便可以对改应用 ...
 - 【转】Android APK反编译就这么简单 详解(附图)
		
转载地址:http://blog.csdn.net/vipzjyno1/article/details/21039349 在学习Android开发的过程你,你往往会去借鉴别人的应用是怎么开发的,那些漂 ...
 
随机推荐
- docker基本概念2
			
1 docker 容器,容器可以被创建.启动.停止.删除.暂停等 容器是镜像的一个运行实例,不同的是,他有额外的可写文件层.提供了独立的应用环境. 容器的实质是进程,与宿主机进程不同的是有自己的独立的 ...
 - 每天一点儿Java--ComboBox
			
import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.border.*; impor ...
 - JS实现随机数生成算法示例代码
			
JS实现随机数生成算法的方法有很多,本文为大家介绍一个比较不错的方法. 1, var MT = []; var index = 0; function initialize_generator(see ...
 - xml解析原理一些想法
			
xml元素解析 <a> <a> <a> </a> <a> </a> </a> <a> </a> ...
 - WCF入门学习2-控制台做为宿主
			
Step1.创建一个WCF类库和一个控制台程序. Step2.引用WCF项目. Step3.添加这两个引用. //本段代码出处 无废话WCF入门教程系列 Uri baseAddress = new U ...
 - modelsim与debussy联调环境的搭建
			
为了方便查看波形,找来了一款软件——debussy,它的一个优点是任你查看设计内信号,只需一个波形文件,如FSDB文件.而不用像modelsim那样想看某些信号,添加了之后还要重新编译仿真,浪费了很多 ...
 - [MySQL] MySQL中关于外键报错的解决和建议
			
一.缘由 今天在恢复从库和主库不同步的数据时,看到关于外键的报错. ERROR 1451 (23000): Connot delete or update a parent row: a foreig ...
 - 每日英语:Prosecutors Wrap Up Case Against Bo
			
Prosecutors wrapped up their case against Bo Xilai on Sunday, sparring with the defiant former Commu ...
 - VxWorks中logMsg与printf的区别
			
printf( ) - write a formatted string to the standard output stream (ANSI). logMsg( ) does not actual ...
 - Android开发日记(五)
			
从服务器端传递多个数据 先在服务器端设置cs文件 using Newtonsoft.Json; using Newtonsoft.Json.Linq; using System; using Syst ...