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

解决“碎片化”问题:开发人员支持多个屏幕

目录:

Anonim

Android可在各种设备上运行,这意味着它还可以在各种屏幕尺寸和分辨率下运行。 很多人称之为“碎片化”。 别担心,他们多年来一直在桌面上使用以相同方式设计和开发的产品。 显然,如果一切都不完全相同,它就会得到“碎片”标签。

有多种方法可以解决使用不同尺寸和密度的屏幕时出现的问题。 Apple为iPhone和iPad设计的应用程序单独列出。 微软为其大屏幕设备创建了一个新的生态系统。 Android为开发人员提供了一种方法,使不同屏幕的相同应用程序工作方式不同。 每种方法都有好有坏,但我们将在这里专注于Android。

在Android中,应用程序可以调整不同大小屏幕的布局以及分辨率。 这些都是内置的,但是开发人员需要在代码中声明一些使应用程序看起来很好的东西。 要记住的是屏幕尺寸和密度将如何改变应用程序的外观。 Droid DNA拥有比摩托罗拉XOOM平板电脑更高分辨率的屏幕,但我们不希望在手机大小的屏幕上看到应用程序的平板电脑布局。

开发人员需要提供质量足够高的资产(图像),以便在高分辨率下看起来更清晰(更不用说高分辨率),并且在设计布局时一定要使用与密度无关的像素单元。 这就像按钮和其他控件这样的东西在像Galaxy S2这样的低密度屏幕上保持非常大,或者在像DNA这样的高密度屏幕上非常小。

这听起来很复杂,但在编写应用程序时,大部分内容都是为您完成的。 开发人员需要做的就是做出正确的声明,并提供适当的资产来支持任何大小(物理和分辨率)或布局。 即使是像Google+应用这样的多个布局应用也会使用相同的代码来涵盖所有可能的屏幕。

我们不是想在这里评判开发者。 编写应用程序很难。 自Gingerbread发布以来,Android开发人员一直在宣讲这一切,但它有多实用? 我们向几个开发者询问了这个问题,看看他们在休息后要说些什么。

更多:谷歌的Android开发者网站。

我们向少数开发人员(无论大小)询问了几个关于这个问题的基本问题。

  • 遵守指南有多难?
  • 它在纸面上看起来很简单,但是你有没有遇到过任何特殊问题,或谷歌没有涉及哪些部分?
  • 如果有的话,这对开发时间和成本有何影响?
  • 您想分享的主题还有什么进一步的内容吗?

我试图让问题尽可能保持中立,这样我们就不会因为某些偏见而陷入困境。 如有疑问,请问知道的人,对吗? 我已经完成了相当多的编程工作,但是使用Java编写代码并构建Android应用程序与使用C语言或机器代码甚至Perl编写代码有很大不同。 即使我得到了构建应用程序的一般方法,但我仍然无法理解细微差别。

我想你们中很多人都像我一样,不知道构建Android应用程序的复杂性。 我们只看到Android开发人员所说的内容,并且让它听起来很简单。 对于他们来说,可能是 - 自2007年以来他们一直在从头开始写这些东西。让我们看看那些能够跟随他们的人不得不说。

Joe Simpson(@kennydude) - Boid

Joe是Team Boid的成员,并且还自己发布应用程序。 他(以及他的团队的其他成员)是对Android充满热情的独立开发人员的一个很好的例子,他们已经推出了一些惊人的应用程序。

遵循指南是相当困难的,特别是如果您想要一个精益应用程序,但人们想要反向兼容性。 最烦人的事情之一就是在d.android.com/design上看到什么样的东西,但没有关于如何实际做到这一点。

当你因为Twitter而无法使用GCM而且你不想使用PtR时,一个弱点就是令人耳目一新。 此外,谷歌的应用程序构成了自己的指导方针。 以插入式窗格为例,Google +与YouTube不同(虽然我知道支持库有望解决这个问题)。

此外,您可以达到某一点,并且没有关于某些内容的文档(例如EdgeEffect)。

我是学生,所以费用是我看不到的,是的,这需要时间,但你的用户会爱你。 基本上,Live Show(ADiA,App Clinic,Office Hours)是必须的(不幸的是),尽管他们无法提供有关Google应用程序的反馈。

Boid很快就会开源(yay!),你可以在Google Play中找到该应用程序。 你也可以在这里找到所有Joe的应用程序(那里有一些珠宝)。

Christophe Versieux - BeTrains - SNCB Belgium; HoloEverywhere

Christophe已经构建了许多Android应用程序,包括BeTrains - SNCB Belguim - 一个具有华丽布局的应用程序,展示了精心构建的应用程序可以做些什么。 虽然美国大多数人都不会使用它(这是比利时铁路的火车时刻表应用程序)但值得安装才能看到它的完成情况。 西欧的人们当然知道这一点。

此外,他还共同开发了HoloEverywhere,这是一个其他开发人员可以用来为Android 2.1及更高版本构建Holo风格应用程序的库。 由于许多手机仍在运行Gingerbread,对于希望保持其应用最新的开发人员而言,这是一种真正的享受。

这根本不难。 认真。 当客户要求摆脱这些准则时,困难的部分就出现了!

我记得有一位顾客希望我在屏幕底部贴上标签,iPhone按钮随处可见,iPhone风格的切换和这个项目真的很难实现,我真的失去了很多时间和金钱。

当他问起所有这些愚蠢的东西时,我真的很生气,他只是觉得我是一个懒惰的开发者。

我现在与他有很多联系,我们完全重写了他的应用程序,通过删除所有这些无用功能并创建一个“纯粹的”Android应用程序来创建出色的代码。 我坚信,客户和公司只需要了解这些指导方针。

ActionBarSherlock,HoloEverywhere(我的创建),UnifiedPreferences和SlidingMenu等库非常易于使用,并在几行代码中提供了出色的用户体验。

正如我所说,时间和成本可以通过遵循Google指南来最小化。 片段和布局文件夹非常易于使用(并且更重要的是可以重复使用):平板电脑应用程序只是从手机布局中获取一段代码,不需要重写任何内容。 手机应用程序中的小变化会立即反映在平板电脑应用中,因为使用了相同的片段。

一些令人惊叹的项目是由社区创建的,并非总是由Google创建。 有些人,非常活跃在Google+上,如Roman Nurik(谷歌),Reto Meier(谷歌)JuhaniLehtimäki,Jake Wharton,Taylor Ling,……(我总是害怕忘记重要人物)非常有启发性。 开发人员只需要知道在哪里看,Android开发对他们来说很容易!

你可以在Google Play上找到BeTrains,如果你对Android开发感兴趣,你会想看看HoloEverywhere。

Matthew Runo - Zappos

与我们谈过的一些较小的独立开发者相比,我们也听到了Zappos的Matthew。 Zappos是一家网络零售公司,可能在其网站及其应用程序上都有专门的设计预算。 它也是我定期购买的公司,但这没有任何影响,马修不知道我自愿参加时经常是客户。

在Zappos,既然我们是零售商,我们必须首先坚持自己的品牌。 古怪,有趣,有点离墙。 也就是说,我们都非常信任Android设计指南 - 我们在UI中所做的一切都取决于这些规则的精​​神。 一年前,我们的应用程序主要是iOS端口,它的外观和工作方式。 今天,它(我认为)是你在Android中可以做的事情的宝石。 我们尽可能遵守指南 - 我们的设计师以此为出发点。

设计指南不是全部而是最终 - 最终他们只是试图推动Android应用程序的设计,以便它们更加一致。 我们发现我们使用的大多数常见的“新”开源库最终都是指南的一部分(滑动菜单,烤面包片)。

准则永远不应该是一种阻碍。 某些事情 - 整体导航 - 需要保持一致,以便您的应用“正常运作”。 其他一切 - 从指南开始,按照您的设计运行。 我们希望我们的应用程序成为我们的应用程序 - 所以我们不能只做基线全息主题。

今年我们基本上从我们的应用程序的重新编写开始使用片段。 在过去的6个月里,我们努力添加7“平板电脑支持,我们目前正在努力提供10”支持。 最难的事情是在设备上进行测试,但我们有一个很棒的QA团队可以帮助解决这个问题。 自8月左右以来,我们有2个人在我们的应用程序上全职工作,之前是1个全职人员。

我认为,底线是Android设计指南帮助我们简化流程 - 从而降低成本。 让我们面对现实吧,来自iOS的大多数设计师 - 所以拥有像design.android.com这样的优秀资源是一个很好的帮助,让他们在Android生态系统中启动。

我可以说Zappos的设计选择很好,我的妻子有一个装满衣服,钱包和靴子的壁橱,这些都强化了我的主张。 从Google Play查看他们的Android应用。

Josh Burton - jRemote

Josh为Android创作了许多小型应用程序,他的jRemote应用程序(它是流行的jDownloader PC程序的控制器)是如何使用布局创建在手机和平​​板电脑上看起来很棒的应用程序的完美示例。 它最大限度地利用了设备屏幕,并为您提供您正在寻找的信息。

坚持设计准则非常简单,只要你坚持下去就可以了。 开发一个完整的应用程序,然后最终回去并尝试实现片段/平板电脑布局等将浪费时间,精力和挫折。 但是如果你计划你的应用程序,从一开始就使用片段开发,并为所有正确的dpi存储桶创建资源,它使开发变得轻而易举,而你根本不需要花太多时间来考虑这些指南。 如果你遇到困难,设计文档只需点击一下即可。 他们是一个很好的资源。

很多设备都没有平板电脑布局,这让我很沮丧。 如果您的应用是使用片段构建的,则可以在30分钟内添加平板电脑布局。 老实说,就这么简单。

我认为对于很多开发人员来说,他们没有平板设备可以测试,使用模拟器可能会很痛苦。 但刚刚发布的新ADT工具使其变得更加容易。 布局编辑器中的多配置视图意味着您可以同时在5-6种不同的屏幕尺寸上查看布局的外观。 它的速度很快。 当然,您仍然需要最终在模拟器/设备上进行测试,但它肯定会加快工作流程。

jDownloader是一个在桌面上使用的方便程序,jRemote看起来是控制它的好方法。 如果不出意外,请从Google Play下载并查看应用程序如何简单而美观。

我们听到很多其他开发人员都说过同样的话。 我们刚刚离开这里,将它们全部列出来。 这一切的要点是,如果您提前计划,Android开发人员指南确实适用于大多数情况。 我们很高兴听到它,并将继续享受优秀的应用程序,并支持努力工作的开发人员。