Android class 混淆后的规范名称唯一性

Android class canonical name uniqueness after Obfuscation

class 混淆后包内的规范名称是否唯一?

我目前使用 Koin 依赖注入并根据 Activity 和 Fragment 的规范名称自动为某些共享的 DI 逻辑创建范围。以前,我使用的是他们的simpleName,当然,经过混淆后并不是唯一的。

是的,包中的 class 名称(即完全限定的 class 名称)必须是唯一的。

此规则适用于虚拟机级别:如果两个 class 具有相同的完全限定名称,则实际上只会加载其中一个,加载哪个有点随意。如果不遵守此规则,这可能会导致相当奇怪的错误。

因此,任何正常运行的混淆器都必须遵循此规则。如果没有,那将是混淆器中的错误。