相亲相爱:Facebook 通过检查 Android 源代码修复应用问题

摘要

由于 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 某些不为人知的小故事,但在某些领域,他们还是相亲相爱。

最新文章

极客公园

用极客视角,追踪你不可错过的科技圈.

极客之选

新鲜、有趣的硬件产品,第一时间为你呈现。

张鹏科技商业观察

聊科技,谈商业。