1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 【Android 安装包优化】资源混淆 ( 资源混淆效果 | APK 构建流程简介 | 资源 ID 组成 )

【Android 安装包优化】资源混淆 ( 资源混淆效果 | APK 构建流程简介 | 资源 ID 组成 )

时间:2020-04-30 18:45:47

相关推荐

【Android 安装包优化】资源混淆 ( 资源混淆效果 | APK 构建流程简介 | 资源 ID 组成 )

文章目录

一、资源混淆效果二、APK 构建流程简介三、资源 ID 组成四、参考资料

一、资源混淆效果

资源混淆, 将资源名称与目录进行混淆 , 提高了反编译的难度 , 同时也减小了 APK 文件的大小 ;

下面的 APK 安装文件就是进行资源混淆 , 其中的 r 文件 , 就是混淆后的资源文件 ;

进入 r 文件内部 , 可以看到很多无意义无规则的目录 , 这是混淆后的资源文件 ;

二、APK 构建流程简介

APK 构建流程 官方文档参考 :https://developer./studio/build

应用模块 ( Application Module ) 中包含 :

源码文件 ( Source Code )资源文件 ( Resource Files )AIDL 文件 ( AIDL Files )

等 , 还有各种引入的依赖库 ( Dependencies ) , 包括 :

Android 依赖库模块 ( Library Modules )Android 依赖库包 ( AAR Libraries )Java 依赖库 ( JAR Libraries ) ;

应用模块 和 依赖库 放在一起进行编译 , 先编译成 class 字节码文件 , 然后使用 dex 工具 , 编译成 DEX 文件 , 同时也会对 资源文件 ( Resources ) 进行编译 , 最后打包成 APK 文件 ;

资源文件在打包时会进行编译 , 将资源文件编译成二进制文件 , 直接打开资源文件都是二进制乱码 ;

三、资源 ID 组成

Android 应用编译时会生成 R 文件 , 在代码中 , 也使用 R 文件 , 引用相关的资源 ;

每个资源的值 , 存在子 app\build\intermediates\runtime_symbol_list\debug\R.txt 中 , 现在在 build 目录中不生成 R.java 了 ;

int anim abc_fade_in 0x7f010000int anim abc_fade_out 0x7f010001int anim abc_grow_fade_in_from_bottom 0x7f010002int anim abc_popup_enter 0x7f010003int anim abc_popup_exit 0x7f010004int anim abc_shrink_fade_out_from_bottom 0x7f010005int anim abc_slide_in_bottom 0x7f010006int anim abc_slide_in_top 0x7f010007int anim abc_slide_out_bottom 0x7f010008int anim abc_slide_out_top 0x7f010009int anim abc_tooltip_enter 0x7f01000aint anim abc_tooltip_exit 0x7f01000b

每个资源都对应着 R 文件中的一个 ID , 以 0x7f010000\rm 0x7f0100000x7f010000 为例 , ID 的格式分为三部分 , 7f | 01 | 0000 ,

7f\rm 7f7f 表示包 , 一般的程序的包都会被编译成 7f\rm 7f7f 开头 ;010101 对应资源类型 , 动画类型以 7f01 开头 ;最后 222 字节 , 按照序号从 000 开始排序即可 ;

四、参考资料

参考官方文档 :

缩减、混淆处理和优化应用 :https://developer./studio/build/shrink-codeAPK 构建流程 :https://developer./studio/build

参考之前的博客资源 :

【Android 安全】DEX 加密 ( ProGuard 混淆 | -keepclassmembers 混淆效果 | -keepclasseswithmembernames 混淆效果 )【Android 安全】DEX 加密 ( Proguard 混淆 | 混淆后的报错信息 | Proguard 混淆映射文件 mapping.txt )【Android 安全】DEX 加密 ( Proguard 混淆 | 将混淆后的报错信息转为原始报错信息 | retrace.bat 命令执行目录 | 暴露更少信息 )【Android 安全】DEX 加密 ( Proguard 混淆 | 混淆后的报错信息 | Proguard 混淆映射文件 mapping.txt )

博客资源 :

GitHub 项目源码 :/han120/SVG

下载地址 :

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。