0%

Lifecycle 源码解析

SafeIterableMap - 本质上是一个双链表伪装成的 Map,支持在遍历时候的修改(删除)操作

FastSafeIterableMap - 继承自 SafeIterableMap ,使用 HashMap 存取数据,速度更快,但同时占用内存也更大

阅读全文 »

前段时间刚入手了一款 Mac,当然也是期盼已久的了~ 工欲善其事,必先利其器,这也是 macOS 作为高效的生产工具必经之路。

阅读全文 »

一般公司都会内部有 Git 之类的版本控制仓库,如果你同时有在其他远程 Git 仓库(比如 GitHub) 提交代码的习惯。此时,你就需要在同一台机器上配置多个 Git 用户。

阅读全文 »

在使用逆向工具(比如 jdax 等)反编译某些系统 App 的时候,会发现其代码其实是不全的,其实是因为系统应用的 APK 已经经过 odexvdex 化,导致代码分离。

比如在之前的文章(Android 拆包,提取 APK 或 Framework 文件)中,拆了 MIUI 的 Rom,其中小米系统界面(MiuiSystemUI)拆开后大致是这样的:

1
2
3
4
5
6
7
8
9
$ tree -s priv-app/MiuiSystemUI/
priv-app/MiuiSystemUI/
├── [ 17525476] MiuiSystemUI.apk
└── [ 0] oat
└── [ 0] arm64
├── [ 12669648] MiuiSystemUI.odex
└── [ 6418324] MiuiSystemUI.vdex

2 directories, 3 files

解压 MiuiSystemUI.apk 之后:

1
AndroidManifest.xml  assets/  META-INF/  res/  resources.arsc

可以看到 Apk 压缩文件中未包含 .dex 文件,而 priv-app/MiuiSystemUI/oat/arm64/ 路径下存在 .odex.vdex 的文件,我们要方便的查看其代码,就需要进行反编译(deodex)。

阅读全文 »