android应用程序的混淆打包(转)
target=android-8
proguard.config=proguard.cfg
Eclipse会通过此配置在工程目录生成proguard.cfg文件
2 . 生成keystore (如已有可直接利用)
按照下面的命令行 在D:\Program Files\Java\jdk1.6.0_07\bin>目录下,输入keytool -genkey -alias android.keystore -keyalg RSA -validity 100000 -keystore android.keystore
参数意义:-validity主要是证书的有效期,写100000天;空格,退格键 都算密码。
命令执行后会在D:\Program Files\Java\jdk1.6.0_07\bin>目录下生成 android.keystore文件。
3. 在Eclipce的操作
File -> Export -> Export Android Application -> Select project -> Using the existing keystore , and input password -> select the destination APK file
经过混淆后的源代码,原先的类名和方法名会被类似a,b,c。。。的字符所替换,混淆的原理其实也就是类名和方法名的映射。
但4大组件并没有混淆(所有在清单文件定义的组件不能被混淆),因为系统需要通过清单文件来查找和运行应用程序。
proguard.cfg 文件代码解读
-optimizationpasses 5 ->设置混淆的压缩比率 0 ~ 7
-dontusemixedcaseclassnames -> Aa aA
-dontskipnonpubliclibraryclasses ->如果应用程序引入的有jar包,并且想混淆jar包里面的class
-dontpreverify
-verbose ->混淆后生产映射文件 map 类名->转化后类名的映射
-optimizations !code/simplification/arithmetic,!field/*,!class/merging/* ->混淆采用的算法.
-keep public class * extends android.app.Activity ->所有activity的子类不要去混淆
-keep public class * extends android.app.Application
-keep public class * extends android.app.Service
-keep public class * extends android.content.BroadcastReceiver
-keep public class * extends android.content.ContentProvider
-keep public class * extends android.app.backup.BackupAgentHelper
-keep public class * extends android.preference.Preference
-keep public class com.android.vending.licensing.ILicensingService
-keepclasseswithmembernames class * {
native <methods>; -> 所有native的方法不能去混淆.
}
-keepclasseswithmembers class * {
public <init>(android.content.Context, android.util.AttributeSet);
-->某些构造方法不能去混淆
}
-keepclasseswithmembers class * {
public <init>(android.content.Context, android.util.AttributeSet, int);
}
-keepclassmembers class * extends android.app.Activity {
public void *(android.view.View);
}
-keepclassmembers enum * { -> 枚举类不能去混淆.
public static **[] values();
public static ** valueOf(java.lang.String);
}
-keep class * implements android.os.Parcelable { -> aidl文件不能去混淆.
public static final android.os.Parcelable$Creator *;
}
转载于:https://www.cnblogs.com/godcok/p/4448634.html
android应用程序的混淆打包(转)相关推荐
- android应用程序的混淆打包
2019独角兽企业重金招聘Python工程师标准>>> 1 . 在工程文件project.properties中加入下proguard.config=proguard.cfg , 如 ...
- eclipse java混淆打包,Android Studio和eclipse混淆打包总结
最近项目有点闲,考虑到以前的项目没有做过混淆,只是用了加固软件进行加固,为了安全性,准备给项目加上,这里做个总结,都经本人亲自在项目实践,说是为了安全性,这好像说大了,一来项目中没用到什么特别的技术, ...
- eclipse java混淆打包_eclipse proguard怎么混淆jar包
展开全部 android应用程序的混淆打包32313133353236313431303231363533e59b9ee7ad9431333339663933 1 . 在工程文件project.pro ...
- Gradle Android客户端程序打包(基于gradle 2.10版本验证通过)
http://www.cnblogs.com/Freedoms/p/5171201.html 一.前言 目前正在准备从eclipse开发环境向AndroidStudio迁移,提前过去探探路,不出所料, ...
- android二次打包教程,Android应用程序打包签名、加固、二次打包(图形/命令行)...
前言 Android应用程序在编程开发完成后,需要进行签名打包成相应的APK文件,这就是我们平常网上下载安装的Android应用程序安装包. APK的全称是Android Package,即Andro ...
- android 混淆打包教程,Android studio 混淆打包
AndroidStudio中的项目可以用compile的形式引入github上的开源项目,可以引用module,而不一定都要用libs文件夹中添加jar包的形式. 在最终realease打包时,混淆的 ...
- Android混淆打包
在这之前,看了下proguard官网介绍,并搜了下相关资料. ProGuard简单介绍 ProGuard是一个SourceForge上很知名的开源项目.官网网址是:http://proguard.so ...
- 将Android应用程序打包
选中项目右击àExportàAndroidàExport Android ApplicationàNextàNextàCreate new keystore(创建新密钥) { Location:表示要 ...
- Android应用程序打包时,出现错误:XXX is not translated in af (Afrikaans), am (Amharic), ar (Arabic).....(...
转自:http://blog.163.com/shexinyang@126/blog/static/136739312201492144928812/ 问题:当我们开发完成一个Android应用程序后 ...
最新文章
- Maven最佳实践-distributionManagement
- 【Python学习系列二十】scikit-learn库模型持久化
- linux将ipv6地址改成ipv4,虚拟机ip地址从ipv6改为ipv4相关问题
- 【免费软件测试视频-0031】——QTP系列之---功能测试自动化概要介绍
- SAP S/4HANA Analytics Path Framework 里过滤器(filter)的使用方法介绍
- 2020年,我来盘点下微服务架构技术栈
- 使用Maven程序集创建漏洞评估工件
- 什么C++程序员,什么Java程序员
- 大V诞生记 —— 谁是VMware?
- 解析超大文件_MySQL物理文件结构和SQL执行流程
- 麦克纳姆轮全向移动机器人横向直线运动分析
- 剑指offer——面试题49:把字符串转换成整数
- 车载系统不识别 U盘
- redis实现周边景点由近到远排序
- ios tableView截长屏图片,第三方分享
- Python爬虫实战之利用多线程爬取千图网的素材图片
- 计算机游戏cpu,玩游戏选什么CPU 10款2017适合玩游戏的处理器推荐 (全文)
- 如何将Excel数据转化成树状结构
- 不仅仅是土豆_设计成功不仅仅需要设计技能
- 用certbot申请证书,自动更新
热门文章
- 站长就是个太监^_^
- 深入理解建造者模式 ——组装复杂的实例
- Spring boot centos部署启动停止脚本
- [转]开发者需要了解的WebKit(mark)
- [转载]Android创世纪 - 第二天
- JDK8之Stream
- 忘记mysq rootl密码
- 测试缺陷分析务实篇-转
- 手把手玩转协同编辑(1):AST (Address Space Transformation)地址空间转换算法 基本介绍...
- 使用AsyncTask实现图片加载