相亲相爱:Facebook 通过检查 Android 源代码修复应用问题
昨天的 极客早知道里,我们报道了 Facebook 移动为先的战略,其发展重心早已由桌面平台转移至移动平台。为对内部员工进行强化,公司还特别推出由 Big Nerd Ranch 提供的编程培训课程,以鼓励员工更快速地开发更多更好的 iOS 和 Android 原生应用。Big Nerd Ranch 的课程历时五个工作日,每日需学习八个小时。一经完成培训,员工便可立即自行编写应用代码。尽管参加课程的 80% 员工都是工程师,但该培训项目是对全体 Facebook 员工开发的。截至目前,已有超过 450 名设计师、 产品经理、工程经理乃至招聘人员已完成和通过此培训课程。
强化培训是 Facebook “移情移动平台”计划中的一部分,旨在让所有员工可以做到优先考虑移动应用。Facebook 之所以能这么做,是因为其在招聘时对新员工有较高要求——公司希望工程部们的员工都是全才,且能随时根据公司需求而做好准备。因此,如果你自认为过去一些 iOS 或 Android 平台的开发经验能帮助自己在 Facebook 的岗位竞争中增加优势,你获许应该重新考虑一下这个问题。
而后,在 Facebook 的 官网上,叙述了 Facebook 移动应用 Android 版和谷歌 Android 系统的一些小故事,由于 Android 系统的开放性,让 Facebook 的工程师更加迅速的确定和修复问题。
Facebook 透露,去年底该公司的移动应用在旧版本的 Android 系统运行时出现了问题,工程师通过检查 Android 源代码找到了问题根源(主要与系统有关),找到了解决问题的迂回方法。
Facebook 解释说,在标准的应用安装过程中,系统会先运行名叫 dexopt 的程序,它使用固定容量的缓存储存应用使用的方法信息。较新版本的 Android 设定的 dexopt 缓存大小是8MB或16MB,而 Android Froyo 和 Gingerbread (v2.2和2.3)只有 5MB,因此在旧版本上当缓存超过限制后就会导致 dexopt 崩溃。Facebook 工程师认为,他们可以将应用分割到多个 dex 文件,从而绕过问题。他们可以让一个 dex 文件储存核心模块信息,另一个文件储存扩展模块信息。然而这种方法被发现行不通。Facebook 开发者最终通过检查 Dalvik 虚拟机源代码找到了设置缓存的代码,将缓存大小从 5MB 增加到 8MB,他们向 Google 递交了补丁,新版的 Facebook 应用很快就获得批准,Gingerbread 用户现在可以正常使用应用了。
不管 Google 和 Facebook 在业务上如何竞争,也不管知不知道 Mark Zuckerberg 某些不为人知的小故事,但在某些领域,他们还是相亲相爱。
极客观察均为极客公园原创报道,转载请注明原文链接。
原文地址: http://www.geekpark.net/read/view/173882
关注极客公园,即时获得最新内容: Twitter | 微信:极客公园 | 新浪微博 | 花瓣网 | 人人小站 | Google+ | 点点