相关文章推荐
飘逸的电池  ·  北京怀柔神舟空间生物主动健康研究院成立--健 ...·  9 月前    · 
个性的饼干  ·  北京语言大学 ...·  1 年前    · 
气宇轩昂的钥匙  ·  孙志强公参在安理会利比亚问题公开会上的发言·  1 年前    · 
风度翩翩的镜子  ·  nginx ...·  2 年前    · 
安静的苦瓜  ·  unix时间戳转换成正常YYYY-MM-DD ...·  2 年前    · 
Code  ›  android 混淆规则作用,Android代码混淆详解开发者社区
android开发 程序员 代码混淆 proguard
https://cloud.tencent.com/developer/article/2091773
文质彬彬的拐杖
2 年前
作者头像
全栈程序员站长
0 篇文章

android 混淆规则作用,Android代码混淆详解

前往专栏
腾讯云
开发者社区
文档 意见反馈 控制台
首页
学习
活动
专区
工具
TVP
文章/答案/技术大牛
发布
首页
学习
活动
专区
工具
TVP
返回腾讯云官网
社区首页 > 专栏 > 全栈程序员必看 > android 混淆规则作用,Android代码混淆详解

android 混淆规则作用,Android代码混淆详解

作者头像
全栈程序员站长
发布 于 2022-09-02 10:11:10
707 0
发布 于 2022-09-02 10:11:10
举报

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

一、混淆的意义

混淆代码并不是让代码无法被反编译,而是将代码中的类、方法、变量等信息进行重命名,把它们改成一些毫无意义的名字,同时也可以移除未被使用的类、方法、变量等。 所以直观的看,通过混淆可以提高程序的安全性,增加逆向工程的难度,同时也有效缩减了apk的体积。总结如下:

1、将项目中的类、方法、变量等信息进行重命名,变成一些无意义的简短名字。

2、移除未被使用的类、方法、变量等。

二、混淆的规则和配置

凡是需要在AndroidManifest.xml中去注册的所有类的类名以及从父类重写的方法名都自动不会被混淆。 因此,除了Activity之外,这份规则同样也适用于Service、BroadcastReceiver和ContentProvider。

(1)minifyEnabled

minifyEnabled为true的作用:启用代码混淆、压缩APK;

minifyEnabled会对资源进行压缩,多余的代码在打包的时候就给移除掉了。不仅仅是代码,没有被调用的资源同样也会被移除掉,因此minifyEnabled除了混淆代码之外,还可以起到压缩APK包的作用。

开启混淆后也可添加shrinkResources,表示开启删除无用资源。

(2)shrinkResources

shrinkResources为true用来开启删除无用资源。

shrinkResources会对就是没有被引用的文件(经过实测是drawable,layout,实际并不是彻底删除,而是保留文件名,但是没有内容),但是因为需要知道是否被引用所以需要配合mififyEnable使用,只有当两者都为true的时候才会起到真正的删除无效代码和无引用资源的目的。

(3)避免被误删除

若配置minifyEnable true && shrinkResources true,防止避免误删除的文件,可以配置如下: 在res/raw/keep.xml(避免被误删除)写了配置的

对于没有被引用的文件&没有在配置文件keep.xml中声明保存的文件,打包后是没有内容的,声明保存的文件有内容(资源文件和layout文件)。 注意:string.xml中没有被引用的怎么设置都不会被删除。

(4)proguard-android.txt和proguard-rules.pro

proguard-android.txt:代表系统默认的混淆规则配置文件,该文件在/tools/proguard下,一般不要更改该配置文件,因为也会作用于其它项目。

proguard-rules.pro:代码表当前Project的混淆配置文件,在app module下,可以通过修改该文件来添加适用当前项目的混淆规则。

(5)proguard文件夹

代码混淆生成apk之后,项目下面会多出来一个proguard文件夹,proguard文件夹中四个文件的作用。

dump.txt : 描述了apk中所有类文件中内部的结构体。

mapping.txt : 列出了原始的类、方法和名称与混淆代码间的映射。

seeds.txt : 列出了没有混淆的类和方法。

usage.txt : 列出congapk中删除的代码。

三、编写自己的混淆代码

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/139132.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体分享计划 ,分享自作者个人站点/博客。
原始发表:2022年5月3, 如有侵权请联系 cloudcommunity@tencent.com 删除
xml
java
https
编程算法
android

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划 ,欢迎热爱写作的你一起参与!

xml
java
https
编程算法
android
评论
登录 后参与评论
0 条评论
热度
最新
登录 后参与评论
关于作者
全栈程序员站长
CTO
0
文章
0
累计阅读量
0
获赞
前往专栏
领券
  • 社区

    • 专栏文章
    • 阅读清单
    • 互动问答
    • 技术沙龙
    • 技术视频
    • 团队主页
    • 腾讯云TI平台
  • 活动

    • 自媒体分享计划
    • 邀请作者入驻
    • 自荐上首页
    • 技术竞赛
  • 资源

    • 技术周刊
    • 社区标签
    • 开发者手册
    • 开发者实验室
  • 关于

    • 社区规范
    • 免责声明
    • 联系我们
    • 友情链接

腾讯云开发者

扫码关注腾讯云开发者

扫码关注腾讯云开发者

领取腾讯云代金券

热门产品

  • 域名注册
  • 云服务器
  • 区块链服务
  • 消息队列
  • 网络加速
  • 云数据库
  • 域名解析
  • 云存储
  • 视频直播

热门推荐

  • 人脸识别
  • 腾讯会议
  • 企业云
  • CDN加速
  • 视频通话
  • 图像分析
  • MySQL 数据库
  • SSL 证书
  • 语音识别

更多推荐

  • 数据安全
  • 负载均衡
  • 短信
  • 文字识别
  • 云点播
  • 商标注册
  • 小程序开发
  • 网站监控
  • 数据迁移

Copyright © 2013 - 2023 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有

深圳市腾讯计算机系统有限公司 ICP备案/许可证号: 粤B2-20090059 深公网安备号 44030502008569

腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287

问题归档 专栏文章 快讯文章归档 关键词归档 开发者手册归档 开发者手册 Section 归档

Copyright © 2013 - 2023 Tencent Cloud.

All Rights Reserved. 腾讯云 版权所有

登录 后参与评论
 
推荐文章
飘逸的电池  ·  北京怀柔神舟空间生物主动健康研究院成立--健康・生活--人民网
9 月前
个性的饼干  ·  北京语言大学 拟新增学位授权学科或专业学位授权点的申报及论证材料 2014年语言病理学自主设置目录外二级学科论证方案
1 年前
气宇轩昂的钥匙  ·  孙志强公参在安理会利比亚问题公开会上的发言
1 年前
风度翩翩的镜子  ·  nginx 进行正则匹配(常见正则匹配符号表示)
2 年前
安静的苦瓜  ·  unix时间戳转换成正常YYYY-MM-DD HH-MM-SS时间_51CTO博客_时间格式yyyy-mm-dd hh:mm:ss怎么转换
2 年前
今天看啥   ·   Py中国   ·   codingpro   ·   小百科   ·   link之家   ·   卧龙AI搜索
删除内容请联系邮箱 2879853325@qq.com
Code - 代码工具平台
© 2024 ~ 沪ICP备11025650号