Facebook 开源安卓字节码文件优化器 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
neo2015

Facebook 开源安卓字节码文件优化器

  •  
  •   neo2015 2016 年 4 月 14 日 2304 次点击
    这是一个创建于 3664 天前的主题,其中的信息可能已经有所发展或是发生改变。

    去年, Facebook 使用叫 ReDex 的字节码优化工具优化了他们的安卓应用的性能.

    现在, ReDex 已经开源了。安卓开发者可以免费地使用这个工具优化自己的应用。也可以将它用作其它安卓字节码优化工具的基础。

    在 Facebook 工程博客的一篇文章中指出,.DEX (安卓的可执行文件的形式)文件中的类,并不是按照应用启动时候加载的顺序加载的,而是按照编译工具指定的顺序加载的。

    ReDex 使用程序运行时产生的运行数据判定哪些类应该在.DEX 文件中被优先载入。“想要最小化从内存中读取数据的次数,最好从启动的时候就载入字节码。” Facebook 称,他们使用 ReDex 对应用优化之后,对存储的读取减少了 25%,运行速度提高了 30%。

    关于这个速度, Facebook 称,在存储较慢的老旧机器上效果非常明显,但是对于新的收集,性能也有明显的提高。 Facebook 在一台搭载了安卓 4.4 的全新的 Nexus4 上(有 35%的安卓设备运行这个版本)测试,启动时间从 2 秒降至 1.6 秒。

    Runtime 分析可以用来删除无关的元数据和接口,但是开发者也可以自定义优化的行为。比如,有些方法即使没有直接被调用,也可以让它们保留下来。

    这个优化是在应用编译完成之后进行的。也就是说,理论上你也可以结合其他优化,比如对 Java 进行虚拟机层的优化和语言的优化,像即将到来的 Java 9 的语言模块特性等等。

    优化 Java 的字节码文件并不是一种新技术。还有其他的开源项目,例如 ProGuard 就可以通过删除运行时没有使用的代码进行优化。但是它并不能像 ReDex 那样按照执行顺序来重新组织类。

    https://github.com/facebook/redex

    明天一早回公司马上体验体验

    目前尚无回复
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2781 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 38ms UTC 15:19 PVG 23:19 LAX 08:19 JFK 11:19
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86