IpuWadeMobile客户端简单混淆解决方案

一、场景描述:

在你已经知道如何使用Export打包一个签名的Apk的前提下,当你使用最新版的开发工具开发完客户端工程,你或许会考虑将客户端工程进行混淆,以保证客户端的安全性。

二、具体需求:

使用Android SDK自带的ProGuard工具,将客户端工程进行混淆。

三、解决方案:

A、实现思路:

配置好project.properites和proguard-project.txt(这两个文件由开发工具自动生成,如没有生成,将确保你使用的是最新的开发工具):不混淆包路径,不混淆公开的方法和受保护的类,成员,不进行多余的代码优化(缺nu.xom包),不进行异常提示(也可以使用injars和libraryjars这两个参数取代之),保持异常,签名,内部类,以及不赞成的方法(默认都会被去掉)。

B、具体实现:

1.配置project.properties

proguard.config=proguard-project.txt

2.配置proguard-project.txt

-keeppackagenames

-keepattributes Exceptions

-keepattributes Signature

-keepattributes InnerClasses

-keepattributes Deprecated

-keep class android.** {

    public protected *;

}

-keep class net.** {

    public protected *;

}

-keep class org.** {

    public protected *;

}

-keep public class com.** {

    public protected *;

}

-dontoptimize

-dontwarn **.*

3.从现在开始,你Export出的Apk便会被自动混淆。之后,你可以使用dex2jar+jd进行反编译测试,也可以使用adb命令将其安装到模拟器上测试。

4.注意事项

(1).请保证你apk的解压工具是7z

(2).dex2jar反编译的命令为: dex2jar.bat classes.dex

(3).当反编译工具报错时,请尝试重新打开反编译工具后再次尝试

(4).请确保你使用的开发工具来自:http://114.215.100.48:8080/doc/resource-list.html

(5).请确保你使用的混合开发框架为最新的jar包。http://114.215.100.48:8080/doc/resource-list.html

(6).请确保你新建的类的包路径心com开头,否则请参照自行添加。

5.附:给新手的多余提示

(1).adb的安装命令为:adb install **.apk

(2).Export的导出方法为:

工程-右键-Export-Android-Export Android Application - Project(你需要导出的工程) - Create new keystore - ……(如果后面的还不知道,那也无能为力了)。
时间: 2024-10-16 06:26:35

IpuWadeMobile客户端简单混淆解决方案的相关文章

Android极光推送jPush混淆解决方案终极篇

今天在做混淆时,极光推送报错了,错误如下:(下面错误代码从别的文章摘录而来,因为已经解决,就不再显示我自己的错误信息了,基本是一致的,除了时间.) <span style="font-size:18px;">[2013-09-23 20:30:59 - TEST] Proguard returned with error code 1. See console [2013-09-23 20:30:59 - TEST] Note: there were 105 duplica

【转】Android Https服务器端和客户端简单实例

转载地址:http://blog.csdn.net/gf771115/article/details/7827233 AndroidHttps服务器端和客户端简单实例 工具介绍 Eclipse3.7 Tomcat 6.0.18(免安装版) Android2.1开发环境(在Eclipse中配置好) 前提条件 JDK环境要使用我们自己安装的,笔者JDK安装目录为D:\Java\jdk1.6.0_22,在Eclipse的Window-preference-installedJREs中,只选用我们自己安

webservice通信 服务端 客户端简单实现

schema规范中: 1.所有标签和属性都需要有schema文件来定义. 2.所有schema文件都需要有一个唯一标识id,单在xml文件中它叫namespace. 3.namespace的值由targetNamespace属性来指定,它的值是一个url(很可能不存在). 4.如何引入一个schema约束? 1).属性?:用xmlns属性. 2).属性值?:对应schema文件的id即(namespace值). 5.如果引入的schema约束不是w3c提供的,必须指定schema文件的位置. 6

Android 客户端设计之解决方案

解决方案,是正对与需求来谈的.一个抽象的需求,需要一个较为上层抽象的解决方案来处理,这是病和药的关系.但是一个解决方案,可能会包含多个功能,每个功能都是解决方案上的一个节点.一个优秀的解决方案必然需要一个或多个核心的功能来支撑. 在android客户端来实现解决方案,则首先要做的两件事:1 将要实现的功能罗列出来,并且逐一细化,排序.2 核心功能运行保障.3 分析硬件环境,熟悉客户端能够提供的功能和接口,以及数据质量. 1 罗列功能:实现一个解决方案肯定不仅仅是一个功能能够体现的,但是必然有一两

IOS客户端公共WIFI解决方案

一.公共WIFI综述 现在很多公司都在做免费WIFI,车站.公交.地铁.餐厅,只要是人员密集流动的地方就有WIFI,免费WIFI从最初的网页认证方式也逐渐向客户端认证方式偏移.本文主要讨论IOS认证上网的解决方案.IOS端WIFI应用的相关开发,主要存在以下问题 1.IOS系统WIFI相关的接口很少,大部分接口都是私有接口 2.在设备连接上WIFI,没有通过路由器认证前,如果关闭IOS自动弹出的Portal页面,Iphone的WIFI会自动断开 3.如何禁止IOS系统自动弹Portal页面 4.

30.1. MySQL数据库简介,客户端简单操作,安装

文件管理系统的缺点 编写应用程序不方便数据冗余不可避免应用程序依赖性不支持对文件的并发访问数据间联系弱难以按用户视图表示数据无安全控制功能 数据库管理系统的优点 相互关联的数据的集合较少的数据冗余程序与数据相互独立保证数据的安全.可靠最大限度地保证数据的正确性数据可以并发使用并能同时保证一致性 数据库管理系统 数据库是数据的汇集,它以一定的组织形式存于存储介质上DBMS是管理数据库的系统软件,它实现数据库系统的各种功能.是数据库系统的核心DBA(团队):负责数据库的规划.设计.协调.维护和管理等

Android判断软键盘弹出并隐藏的简单完美解决方案

最近项目中有一个编辑框,下面是个ListView.在触发编辑框弹出软键盘后,ListView还能滑动,并且ListView的item还能响应单击.这样的体验效果很不好.于是便想在滑动或单击item时判断键盘是否弹出,若弹出,则把它隐藏. 网上一搜,发现Android并没有直接提供软键盘的弹出与隐藏判断,一些解决方案诸如判断父控件的高度或者判断 if(getWindow().getAttributes().softInputMode==WindowManager.LayoutParams.SOFT

服务器、客户端简单交互程序

这是一个简单的TCP服务器/客户端的程序示例.客户端发送两个long型变量到服务器端,服务器端读取这两个long型变量并返回这两个变量的和给客户端. 这是服务器端的示例代码: #include <stdio.h> #include <stdlib.h> #include <netinet/in.h> #include <arpa/inet.h> #include <sys/socket.h> #include <fcntl.h> #i

B/S操作客户端硬件的解决方案

一般来说,客户端都是windows系统,所用的硬件驱动都是dll那么我们要想在客户端使用客户端硬件,就必须使用微软的com技术了,目前我找到两个具体的解决方案 一个是用MFC ActiveX,这里有个注意点,如果是win7系统,在MFC ActiveX项目属性中不能用静态库(lib),不然会导致无法注册 一个是用c#的windows窗体控件库 这里有几个注意点 一个,项目右键->属性->应用程序->程序集信息->勾选:使程序集com可见 二个,项目右键->属性->生成-