网站便捷导航 - 百度XML地图 - RSS 订阅 - 设为首页 - 加入收藏
您的当前位置:主页 > 特色花馆 > diy材料 > Facebook如何修复其GingerbreadDalvik问题

Facebook如何修复其GingerbreadDalvik问题

来源:宁海在线 编辑:源慕远 时间:2019-08-03 点击:9922

Facebook开发人员在为Android2.2Froyo和Android2.3Gingerbread等旧平台开发应用时面临许多挑战。当Facebook去年完全改进其应用程序以提供更好的用户体验时,他们发现该应用程序与旧的Android设备不兼容。他们发现问题与名为“dexopt”的程序有关,该程序确定了在特定设备上安装的名为“LinearAlloc”的应用程序的固定大小缓冲区。虽然较新的Android版本(如IceCreamSandwich和JellyBean)的缓冲区大小为8或16MB,但旧版本中只有5MB。

该小组能够通过注入提出解决方案二级dex文件直接进入Android类加载器,但随后出现了另一个问题。事实证明,Facebook应用程序会在启动后立即崩溃,因为它已超过Android的虚拟机Dalvik设置的方法限制。团队处于停滞状态,不确定他们可以采取哪些措施来解决问题。他们认为他们不得不削减他们的Facebook2.0应用程序中的各种功能,或者只是将改进后的应用程序限制为使用更新版Android的设备。

开发人员认为“如果我们只能将缓冲区从5MB增加到8MB,我们会安全的!“他们意识到他们需要找到LinearAllocHdr对象,“锁定它,并替换缓冲区。”然后他们想到了使用JNI扩展来用更大的缓冲区替换现有的缓冲区。他们使用JNI中的JavaVM指针在vmList中找到了正确的值,他们扫描DvmGlobals对象以找到匹配项,找到LinearAlloc头并替换缓冲区。他们能够构建JNI扩展并将其实现到Facebook应用程序中。

他们遇到了三星GalaxySII的一个小问题,他们称之为“有史以来最受欢迎的姜饼手机”。缓冲区大小为4个字节,因此必须安全地扫描进程堆以搜索正确的缓冲区。在他们找到修复程序后,他们创建了一个测试应用程序,在手动测试,DeviceAnywhere和Google测试实验室的帮助下,他们能够在70种不同的Android设备上测试他们的新Facebook应用程序。令他们感到宽慰的是,该应用程序成功地在每台设备上运行。

该团队感谢Google和Android成为一个开源平台。如果平台没有打开,他们就不会#8217;t已经能够“运送我们最好的应用程序版本”。Facebook也有其广泛的培训计划,以表示感谢。该计划于去年启动,帮助许多Facebook工作人员发现了Gingerbread/Facebook崩溃背后的原因。

[通过Facebook]故事TimelineBugs影响Facebook对网页的见解.Facebook为MessengerFacebook提供免费/打折数据据报道宣布微软地图集收购明天Facebook为营销人员制作有针对性的广告.Facebook标记礼品高达80%Facebook内部:宣传印刷机和免费食品Facebook收购微软Atlas确认Facebook不再吸引青少年.Facebook对移动设备的关注来自强化培训计划

文章链接地址:http://www.koolclam.com/tesehuaguan/diycailiao/201908/783.html

相关推荐:

精心推荐
猜你喜欢

Copyright © 2019 炫彩彩票注册 Inc.

Top