Logo cn.androidermagazine.com
Logo cn.androidermagazine.com

Facebook为这么多不同的Android设备提供服务的简单技巧

Anonim

有些人喜欢把它称为碎片,有些人称之为选择,但无论如何,肯定有很多不同的Android手机。 构建需要与所有这些应用程序一起工作的应用程序并非易事。 你有完全不同的硬件配置,性能差异很大,即使一个apk文件可以在每一个上运行,仍然存在需要一个应用程序在低端设备上平稳运行而不牺牲高端功能的问题 - 设备。 当你谈论像Facebook这样受欢迎的应用时,这很快就会成为做编码的人的噩梦。

Facebook向Big Android Meat和Greet展示了一个简单的新解决方案 - 设备年级组件。

Facebook的开发人员将这样的新软件组件描述如下:

Device Year Class是一个Android库,它实现了一种简单的算法,可以将设备的RAM,CPU核心和时钟速度映射到那些规格组合被认为是高端的年份。 这允许开发人员根据手机硬件的功能轻松修改应用程序行为。

该库不会改变应用程序中的任何行为。 它返回一个值(表示为年份),该值存储在代码中,以便开发人员需要更改应用程序的工作方式,以便根据特定类型的硬件定制体验。 这意味着开发人员可以编写一个具有花哨的动画和过渡的应用程序,当在类似Galaxy Note 4的游戏上运行时,它将按照预期播放,但当应用程序在类似Moto E的东西上运行时,不要使用眼睛糖果。你可以想象一下,对Facebook等应用程序的这种控制 - 安装在数以百万计的不同手机上 - 可以并且将为几乎所有人提供更好的体验。 它很容易实现。 从GitHub上的文档:

if (year >= 2013) { // Do advanced animation } else if (year > 2010) { // Do simple animation } else { // Phone too slow, don't do any animations }

最重要的是,该库是开源的BSD软件许可证(Google使用的Android许可证版本),并且可供所有开发人员免费使用。

我们知道这不是神奇的,大多数开发大项目的开发人员可能都有某种方法来处理不同的硬件配置。 设备年级所做的是为一个大问题提供一个简单而“优雅”的解决方案,任何人都可以使用它。

设备年级'GitHub页面