Android class 混淆后的规范名称唯一性
Android class canonical name uniqueness after Obfuscation
class 混淆后包内的规范名称是否唯一?
我目前使用 Koin 依赖注入并根据 Activity 和 Fragment 的规范名称自动为某些共享的 DI 逻辑创建范围。以前,我使用的是他们的simpleName
,当然,经过混淆后并不是唯一的。
是的,包中的 class 名称(即完全限定的 class 名称)必须是唯一的。
此规则适用于虚拟机级别:如果两个 class 具有相同的完全限定名称,则实际上只会加载其中一个,加载哪个有点随意。如果不遵守此规则,这可能会导致相当奇怪的错误。
因此,任何正常运行的混淆器都必须遵循此规则。如果没有,那将是混淆器中的错误。
class 混淆后包内的规范名称是否唯一?
我目前使用 Koin 依赖注入并根据 Activity 和 Fragment 的规范名称自动为某些共享的 DI 逻辑创建范围。以前,我使用的是他们的simpleName
,当然,经过混淆后并不是唯一的。
是的,包中的 class 名称(即完全限定的 class 名称)必须是唯一的。
此规则适用于虚拟机级别:如果两个 class 具有相同的完全限定名称,则实际上只会加载其中一个,加载哪个有点随意。如果不遵守此规则,这可能会导致相当奇怪的错误。
因此,任何正常运行的混淆器都必须遵循此规则。如果没有,那将是混淆器中的错误。