Android代码混淆常见配置[通俗易懂]

Android代码混淆常见配置[通俗易懂]Android代码混淆常见配置1.manifest中注册的都不能混淆,如果混淆了就找不到了,所以一下类不能被混淆,一般保持原样。-keeppublicclass*extendsandroid.app.Activity-keeppublicclass*extendsandroid.app.Application -keeppublicclass*exten

大家好,又见面了,我是你们的朋友全栈君。

Android代码混淆常见配置

1.manifest中注册的都不能混淆,如果混淆了就找不到了,所以一下类不能被混淆,一般保持原样。

-keep public class * extends android.app.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

keep就是 告诉proguard不用混淆这个类

2.第三方包不能混淆

  找到应用中引入的包

Android代码混淆常见配置[通俗易懂]

查看包的包名;

Android代码混淆常见配置[通俗易懂]

    -libraryjars libs/android-support-v4.jar

  -dontwarn android.support.v4.**

  -keep class android.support.v4.** { }

-libraryjars指明lib包的在工程中的路径,而

-dontwarn android.support.v4.** 不要警告找不到android.support.v4.** { }这个包里面的类的相关引用,防止可接受警告的出现影响到程序的运行。

-keep class android.support.v4.** { *; }保持第三方库中的类不混淆

4.引入.so库,不然混淆后就无法找到

Android代码混淆常见配置[通俗易懂]

-libraryjars libs/armeabi/libcapscreen.so
  -libraryjars libs/armeabi/libencrypt.so
  -libraryjars libs/armeabi/libfile.so

5.实体类、反射R文件不能混淆

#过滤R文件的混淆: -keep class **.R$* { *;

}

4.JNI不能混淆

其他不能被混淆的类有:

# 保持 native 方法不被混淆

keepclasseswithmembernames class * {

native;

}

# 保持自定义控件类不被混淆

keepclasseswithmembers class * {

public (android.content.Context, android.util.AttributeSet);

}

# 保持自定义控件类不被混淆

keepclasseswithmembers class * {

public (android.content.Context, android.util.AttributeSet, int); }

# 保持自定义控件类不被混淆

keepclassmembers class * extends android.app.Activity {

public void *(android.view.View);

}

# 保持枚举 enum 类不被混淆

keepclassmembers enum * {

public static **[] values();

public static ** valueOf(java.lang.String);

}

# 保持 Parcelable 不被混淆

-keep class * implements android.os.Parcelable {

public static final android.os.Parcelable$Creator *;

}

6.当混淆运行结束后会产生以下文件:

Android代码混淆常见配置[通俗易懂]

dump.txt:

描述.apk文件中所有类文件的内部结构

mapping.txt:

列出原始类的方法、字段与混淆后的代码间的映射,这个文件比较重要,如果你的代码混淆后会产生bug的话,log提示中是混淆后的代码,希望定位到源代码的话就可以根据mapping.txt反推。

sends.txt:

列出了未被混淆的类和成员

usage.txt

列出了在apk中删除的代码


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/139353.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • leetcode 链表相加_数据结构与算法链表

    leetcode 链表相加_数据结构与算法链表给你一个整数数组 nums ,请你找出数组中乘积最大的连续子数组(该子数组中至少包含一个数字),并返回该子数组所对应的乘积。示例 1:输入: [2,3,-2,4]输出: 6解释: 子数组 [2,3] 有最大乘积 6。示例 2:输入: [-2,0,-1]输出: 0解释: 结果不能为 2, 因为 [-2,-1] 不是子数组。/** * Definition for singly-linked list. * struct ListNode { * int val; *

  • 【致远FAQ】致远OA宕机之Tomcat异常宕机

    【致远FAQ】致远OA宕机之Tomcat异常宕机问题描述tomcat进程已经不在; 由于在启动命令行参数中增加了相关的日志监控,重点查找JVM内存溢出、jvm的crash的日志进行问题定位; 没有.hprof文件生成【基本可以推论没有出现JVM内存溢出】 没有hs_err_xxx.log文件生成【基本可以推论JVM没有出现严重的crash异常】问题分析1)通过catalina.log看出tomcat出现了非正常关闭操作下的停机;如果是正常停机会在输出图1的日志前输出如图2所示的内容2)tomcat停机的时..

  • 高等数学解题神器app_ubuntu cp命令

    高等数学解题神器app_ubuntu cp命令XSS在chrome上,需要先关闭xss保护反射型low对输入未做过滤$data=no_check($data);输入<script>alert(document.cookie)</script>middle输入校验functionxss_check_4($data){//addsla…

  • vs2017当前页面的脚本发生错误_win10当前页面脚本发生错误

    vs2017当前页面的脚本发生错误_win10当前页面脚本发生错误今天使用金山卫士对IE8进行组件升级,此后再此使用VS2008查看项目界面中的控件变量类型,或者添加变量,都弹出“当前页面脚本错误”。在网上进行查找。解决办法如下:1、进入到注册表编辑器。2、按照以下路径“HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet  Settings\Zones”查看是否存在

  • 最全ASCii 码表和说明

    最全ASCii 码表和说明最全ASCii 码表和说明

  • Visio2007产品密钥

    Visio2007产品密钥注意:以下是一个产品密钥,全部粘贴,不是6选一W2JJW-4KYDP-2YMKW-FX36H-QYVD8QGRC3-KQF42-GXR8T-MJQJ7-76938H22HP-9PGYQ-FKHQ9-KYH6K-JPJ7WVMRGQ-G3YMP-RWYH2-4TQ97-CT2HDV9MTG-3GX8P-D3Y4R-68BQ8-4Q8VDW2JJW-4KYDP-2YMKW-FX36H-QYVD8…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号