V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
banxi1988
V2EX  ›  Android

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

  •  
  •   banxi1988 · 2015-10-15 23:58:25 +08:00 · 5286 次点击
    这是一个创建于 3087 天前的主题,其中的信息可能已经有所发展或是发生改变。

    代码在 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 条回复    2015-10-16 16:24:49 +08:00
    dorentus
        1
    dorentus  
       2015-10-16 09:41:48 +08:00 via iPhone
    这种情况不是应该把责任丢给 Facebook 那一方的么……
    banxi1988
        2
    banxi1988  
    OP
       2015-10-16 12:39:45 +08:00
    @dorentus 对于用户来说是升级了系统之后 Facebook 就出现 FC 。所以。
    aprikyblue
        3
    aprikyblue  
       2015-10-16 13:53:45 +08:00
    呃,原谅我。“ Should be called pathElements ”这句是什么意思、、
    xuyinan503
        4
    xuyinan503  
       2015-10-16 15:22:56 +08:00
    @aprikyblue 这个变量本应叫做“ pathElements ”,但 facebook 非得用 dexElements 来调用它
    xuyinan503
        5
    xuyinan503  
       2015-10-16 15:25:31 +08:00
    客大欺店啊
    banxi1988
        6
    banxi1988  
    OP
       2015-10-16 16:24:49 +08:00
    @xuyinan503
    @aprikyblue

    我的理解是老版本的 Android 中此变量名为 `dexElements`
    但是在某一个新版本 (估计某一个 4.x )。 Android 的开发者这个变量的名字应该叫
    `pathElements` 更贴切。
    但是改了之后发现引起了 Facebook App 的 FC 。然后又改回来了,并加上了注释。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2826 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 13:29 · PVG 21:29 · LAX 06:29 · JFK 09:29
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.