banxi1988
V2EX  ›  Android

看到一句有趣的注释 - 发现 Android 项目中 private 变量也不能轻易修改啊。

  •  
  •   banxi1988 · Oct 15, 2015 · 14064 views
    This topic created in 3861 days ago, the information mentioned may be changed or developed.

    代码在 https://android.googlesource.com/platform/libcore/+/master/dalvik/src/main/java/dalvik/system/DexPathList.java

    /**
         * List of dex/resource (class path) elements.
         * Should be called pathElements, but the Facebook app uses reflection
         * to modify 'dexElements' ( http://b/7726934).
         */
        private final Element[] dexElements;
    
    6 replies    2015-10-16 16:24:49 +08:00
    dorentus
        1
    dorentus  
       Oct 16, 2015 via iPhone
    这种情况不是应该把责任丢给 Facebook 那一方的么……
    banxi1988
        2
    banxi1988  
    OP
       Oct 16, 2015
    @dorentus 对于用户来说是升级了系统之后 Facebook 就出现 FC 。所以。
    aprikyblue
        3
    aprikyblue  
       Oct 16, 2015
    呃,原谅我。“ Should be called pathElements ”这句是什么意思、、
    xuyinan503
        4
    xuyinan503  
       Oct 16, 2015
    @aprikyblue 这个变量本应叫做“ pathElements ”,但 facebook 非得用 dexElements 来调用它
    xuyinan503
        5
    xuyinan503  
       Oct 16, 2015
    客大欺店啊
    banxi1988
        6
    banxi1988  
    OP
       Oct 16, 2015
    @xuyinan503
    @aprikyblue

    我的理解是老版本的 Android 中此变量名为 `dexElements`
    但是在某一个新版本 (估计某一个 4.x )。 Android 的开发者这个变量的名字应该叫
    `pathElements` 更贴切。
    但是改了之后发现引起了 Facebook App 的 FC 。然后又改回来了,并加上了注释。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5696 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 36ms · UTC 07:02 · PVG 15:02 · LAX 00:02 · JFK 03:02
    ♥ Do have faith in what you're doing.