BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

Android有望结束碎片化

| 作者 曹知渊 关注 1 他的粉丝 发布于 2014年8月20日. 估计阅读时间: 3 分钟 | 都知道硅谷人工智能做的好,你知道 硅谷的运维技术 也值得参考吗?QCon上海带你探索其中的奥义

对于Android开发者来说,碎片化问题经常令他们痛苦不堪。iOS开发者只需要面对苹果一家厂商的有限的几种机型,并且这些机型的软硬件全部掌控在苹果手里,而Android开发者就没那么幸运了,他们要面对的各种厂商制造的设备,这些设备可能有不一样的屏幕尺寸,不一样的芯片功能,搭载不一样版本的操作系统等等。从Android主页上的最新统计数据可以看到,Android 4.1-4.3目前还占有超过一半的市场,最新的Android 4.4是20%左右,剩下的则由4.0、2.3和2.2等更老的系统共同占据。

GIGAOM上的一篇博文提到,开发一个Android应用程序往往意味着:

  • 为了兼容更多的旧机器,你被迫使用旧版的SDK来适配尽可能多的旧设备;
  • 大量的厂商制造了各种各样屏幕尺寸的手机,它们搭载的操作系统版本有新有旧,底层硬件的能力也不尽相同。总之各种各样你能想到的或想不到的;
  • 你的应用可能受众有限,因为有些应用仅限某些设备访问。

过去真是如此,但这一切或许正在改变。Google也早就已经意识到了这个问题,但似乎他们解决这个问题的方法不是像苹果那样掌控硬件,而是尝试走另外一条路。

Google早在2012年就引入了Play Service,这个组件会在后台下载其他一系列组件,而这些组件是应用赖以运行的核心。手机搭载的操作系统版本不一?不要紧,因为它们都会强制安装最新的Play Service。这篇博文中也提到:

Play Serice 5.0已经推送给包括从Android 2.3到Android 4.4的Android设备。Google正在逐渐把一些Android核心功能、系统API剥离出系统,并加入到Play Service中,这意味着安装有最新Play Service的设备,应用就能运行自如。

这看起来确实是解决碎片化的一个办法,但如面对如此多的屏幕尺寸,这个方法似乎无能为力。看看Android开发者Russell Ivanovic如何解决这个问题。

首先他认为,如果你想做得很完美,那么Google提供的开发工具足以帮你适配每一种屏幕,只是你需要为每种屏幕创建布局文件。

另外,他们建议的做法是:使用dp来定义布局(dp是Android中一种虚拟的像素单位,在运行的时候系统会根据屏幕密度把它扩展成真实像素),这样,所有的屏幕都化成有限几种标准dpi的屏幕,你只需要为不同密度的屏幕准备不同资源文件就可以了。你唯一需要考虑的是设备的按键是实体的还是在屏幕上的,因为这会影响屏幕实际可用尺寸。

Android官网上也有一篇文章给开发者介绍如何支持多种尺寸屏幕,仔细阅读这篇文章,做好这项工作应该不难。

可以看得出Google也觉得碎片化问题影响了Android的发展,他们也正在努力解决,但效果如何,让我们拭目以待。


感谢郭蕾对本文的审校。

给InfoQ中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ)或者腾讯微博(@InfoQ)关注我们,并与我们的编辑和其他读者朋友交流。

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT