阅读更多

3顶
0踩

移动开发

转载新闻 Android 是移动世界的“鸭嘴兽”

2013-03-12 14:25 by 副主编 WnouM 评论(4) 有6540人浏览
如果你是一个移动开发者,对于 Android 的态度可能是又爱又恨。它的开放性给予了你更多可能,同时也给予了你更多麻烦。市场上的 Android 手机越来越多,但是各不相同。有原生 ROM,有定制 ROM;有 2.x 系统,有 4.x 系统;配置各有不同,分辨率各有不同。面对复杂的市场,开发者应该如何对待?


GroupMe 的开发者之一 Ajay Kulkarni 写了一篇文章,谈到 Android 开发中的一个心得:存在两个 Android 市场。
引用
Android 是什么?“Android 与你想象的不同。它不像 iOS,它甚至与我们见过的 Windows、Linux 和其他 OS 都不同。Android 是移动世界的鸭嘴兽。正如鸭嘴兽,Android 是一个复杂的怪物,两种完全不同的动物的怪异组合。”

他认为,作为一个开发者,你需要为两个完全不同的市场开发。这两个市场是:专业人士(Hackers)和普通用户(Casuals)。

专业人士相信 Android 的基本哲学——开放性。“专业人士喜欢定制。他们安装自己的键盘、拨号界面、通讯应用,甚至主屏。许多人是开发者。他们探索,他们折腾。他们喜欢设置、设置,以及更多的设置。”

普通用户原来使用功能手机,被 Android 吸引是由于价格。“普通用户喜欢壁纸和定制铃声。但他们不去折腾。许多人是刚刚接触智能手机。他们用 Facebook、Twitter 和其它受欢迎的应用,但他们不探索新应用或新技术”。

Android 最初的用户是专业人士。但是过去的两年内,Android 设备越来越便宜,普通用户的群体正在形成。这给开发者带来了难题:

  • 两个群体在应用操作上有不同的期望。在发布 GroupMe 4.0 版本的时候,开发者发现两个群体对后退键的期望不同。专业人士希望后退键退出应用,而普通用户希望后退键调出侧滑菜单,然后退出应用。于是,开发者决定这样做:按照普通用户的期望来设计后退按钮,然后在设置里增加定制项。“无论何时,当我们需要为两个群体构建不同的行为时候,这是我们的方案:为普通用户构建,让专业人士定制它。”
  • 你不能为自己开发应用。Android 开发者常常是专业人士,因此,开发者需要思考更多,让普通用户也能理解你的应用。“如今,当我们改变功能,或者修正 Bug 的时候,我们试图以普通用户的眼光去看待应用。我们试图把他们的思考和行为内化,从而使他们的反应成为我们的反应”。
  • 很难测试。首先,很难测试新功能,因为喜欢新功能的人都是专业人士。为解决这个问题,在每次主要版本发布的时候,GroupMe 会找到对 Android 不精通的朋友们,让他们参与测试;其次,很难对新功能进行问答。开发者使用运行最新版本的旗舰机,但是普通用户用的是 50 美元的低端机,“小屏幕、烦人的用户界面,很少的内存空间”。解决这个问题的方法是,在新功能开始设计的时候就考虑到低端机,而不是发布的时候才想到去测试。
  • 专业人士喜欢改变,普通用户不喜欢。普通用户会讨厌新功能,然后逐渐爱上它。不过,有时候,新功能确实是实施不当,或者错误的。因此,你需要辨识出这两种情况,收集数据,讨论,然后弄清楚真实情况究竟如何。
Ajay Kulkarni 说,自己的总结其实刻意忽视了另一个市场。这个市场很庞大,但是他仍然没有理解。那就是全球范围内涌现的低端市场。这些市场中的手机,没有数据计划,甚至没有 Google 的认可。“这些设备缺乏 Play Store,GCM(Google 云端推送),Google 地图以及其它 Google 服务”。

不过,这个市场不容忽视,因为它是一个非常巨大的市场。“2012 年第四季度,在全球 iPhone 销量中,美国大概占 1/3,但是在Android 上,它只占有 10%。换句话说,你可以说美国是 iOS 的领跑者,但当涉及到 Android 的时候,我们很明显是无知的”。
  • 大小: 30.1 KB
来自: 爱范儿
3
0
评论 共 4 条 请登录后发表评论
4 楼 xiaowanghappy 2013-03-14 09:17
3 楼 骨之灵魂 2013-03-13 07:01
dohkoos 写道
为普通用户构建,让专业人士定制。

就是  给普通用户较好的默认项,让专业用户定制呗
2 楼 魔力猫咪 2013-03-12 16:27
Ajay Kulkarni 说,自己的总结其实刻意忽视了另一个市场。这个市场很庞大,但是他仍然没有理解。那就是全球范围内涌现的低端市场。这些市场中的手机,没有数据计划,甚至没有 Google 的认可。“这些设备缺乏 Play Store,GCM(Google 云端推送),Google 地图以及其它 Google 服务”。

这些说的就是国内市场吧。
1 楼 dohkoos 2013-03-12 16:12
为普通用户构建,让专业人士定制。

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • 看一道关于try finally的面试题

    看一个finally的面试题: 测试代码: public class Test11 { public static void main(String[] args) { System.out.println(doSome()); // 10 } private static int doSome() { int i = 10; try { return i...

  • 一道关于finally的面试题

    此外,如果try-finally或者catch-finally中都有return,则finally块中的return语句将会覆盖别的return语句,最终返回调用者那里的是finally语句块中return的值。 下面通过一个例子来说明这个问题。 package ...

  • 关于finally的一道面试题

    直接上代码: public static void main(String[] args){ System.out.println(method()); } public static int method(){ int i = 10; try { return i; }finally ...

  • 10万字208道Java经典面试题总结(附答案)

    哪吒,CSDN2021博客之星亚军、新星计划导师✌、博客专家 哪吒多年工作总结:Java学习路线总结,搬砖工逆袭Java架构师 技术交流:定期更新Java硬核干货,不定期送书活动 关注公众号【哪吒编程】,回复 面试题 ...

  • java 入门面试题

    每次自己想跳槽的时候,内心总是担忧着那些面试题怎么解答。 很多问题在实际工作中并不会遇到,没有实际的解决问题经验,看过也记不住。 假如我明年需要换工作,那现在把下次的面试准备工作,拆分、融入到平时的...

  • 关于Finally的一道面试题

    答案是10 首先要明确的是,无论代码是否出现异常,finally中的代码一定会执行 因为调用fileInputStream读取文件本身,但是只写文件名没有写全限定名称,所以会出现notFound异常,便会走向catch 在catch中执行到了...

  • 关于finally与return语法机制的一道面试题

    }finally { i++; } } } 最后的结果为 100: 解释: Java语法中有这样一条规则: 方法体中的代码必须遵循自上而下顺序依次逐行执行(亘古不变的语法!) Java中还有一条语法规则: return语句一但执行,整个方法必须...

  • java关于异常的面试程序题_一道面试题,关于java的异常处理的

    } finally { System.out.println("Hello World!"); } } } 下面公布输出结果以及我的问题,如果没遇到这个问题的可以先想想输出结果是什么请输入代码 输出 Caught Annoyance Caught Sneeze Hello World! 我的思路是...

  • Promise面试题汇总

    Promise回顾 Promise基础 Promise的catch、then、finally Promise的all和race Async、await 其他题目

  • Day53-每日一道Java面试题-final、finally、finalize的区别?

    final、finally、finalize的区别? final用于修饰变量、方法和类。 final变量:被修饰的变量不可变,不可变分为引用不可变和对象不可变,final指的是引用不可变,final修饰的变量的变量必须初始化,通常称被修饰的...

  • 一道关于try,finally执行顺序的面试题

    try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后?   public class test { /** * @param args */ public static void main...

  • 关于java异常try catch finally的一道题

    这两天,有人咨询我一道关于java基础的一道题,具体代码如下: private static int m1() { int a = 10; try { a = 20; throw new RuntimeException(); } catch (Exception e) { a = 30; return ...

  • java面试金典选择题_遇到一道经典的java面试题

    45 } finally{46 if(fos!=null) {47 try{48 fos.close();49 } catch(IOException e) {50 e.printStackTrace();51 }52 }53 }54 55 }56 57 /** 58 * 对用户列表排序,并输出成文本格式59 *@paramlist60 *@...

  • Java面试题-每天更新一道面试题

    1.在java中==和equals()的区别? ... 2.HashMap和Hashtable各有什么特点,它们有什么区别?HashMap的工作原理?(必背题,超级重要) https://www.cnblogs.com/beatIteWeNerverGiveUp/p/5709841.ht...

  • java面试题题库大全800题

    178、Java异常处理try-catch-finally的执行过程 179、java异常处理面试题常见选择题含答案 180、JAVA性能优化 181、java性能优化大全珍藏版 182、java数组有什么特征 183、Java有没有goto? 184、java检测百度是否...

  • Java 基础常见面试题总结

    本文总结了 Java 基础常见的面试题。

  • promise 以及经典面试题

    p1.then(function(rs){ // 如果p1的状态是resolved,则then中的函数 //会执行,且obj1的值会传给rs }).catch(function(rs){ // 如果p1的状态是reject,则catch中的函数 // 会执行,且obj2的值会传给rs }).finally...

  • 数学建模拟合与插值.ppt

    数学建模拟合与插值.ppt

  • [net毕业设计]ASP.NET教育报表管理系统-权限管理模块(源代码+论文).zip

    【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、python、web、C#、EDA、proteus、RTOS等项目的源码。【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。

  • mysql相关资源.txt

    mysql相关资源.txt

Global site tag (gtag.js) - Google Analytics