Kotlin 作为有高级特性的语言,凭借高阶函数也能支持实现 DSL 。
Lifecycle 源码分析
Android Deodex
在使用逆向工具(比如 jdax 等)反编译某些系统 App 的时候,会发现其代码其实是不全的,其实是因为系统应用的 APK 已经经过 odex
和 vdex
化,导致代码分离。
比如在之前的文章(Android 拆包,提取 APK 或 Framework 文件)中,拆了 MIUI 的 Rom,其中小米系统界面(MiuiSystemUI
)拆开后大致是这样的:
1 | $ tree -s priv-app/MiuiSystemUI/ |
解压 MiuiSystemUI.apk
之后:
1 | AndroidManifest.xml assets/ META-INF/ res/ resources.arsc |
可以看到 Apk 压缩文件中未包含 .dex
文件,而 priv-app/MiuiSystemUI/oat/arm64/
路径下存在 .odex
和 .vdex
的文件,我们要方便的查看其代码,就需要进行反编译(deodex
)。
Android 拆包,提取 APK 或 Framework 文件
之前由于开发一个关于 MIUI 系统界面的 Xposed 插件,为了适配不同的 Rom,需要查看不同 Rom 中的 SystemUI.apk