阅读更多

3顶
0踩

移动开发

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

2013-03-12 14:25 by 副主编 WnouM 评论(4) 有6542人浏览
如果你是一个移动开发者,对于 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...

  • 星之语明星周边产品销售网站的设计与实现-springboot毕业项目,适合计算机毕-设、实训项目、大作业学习.zip

    Spring Boot是Spring框架的一个模块,它简化了基于Spring应用程序的创建和部署过程。Spring Boot提供了快速启动Spring应用程序的能力,通过自动配置、微服务支持和独立运行的特性,使得开发者能够专注于业务逻辑,而不是配置细节。Spring Boot的核心思想是约定优于配置,它通过自动配置机制,根据项目中添加的依赖自动配置Spring应用。这大大减少了配置文件的编写,提高了开发效率。Spring Boot还支持嵌入式服务器,如Tomcat、Jetty和Undertow,使得开发者无需部署WAR文件到外部服务器即可运行Spring应用。 Java是一种广泛使用的高级编程语言,由Sun Microsystems公司(现为Oracle公司的一部分)在1995年首次发布。Java以其“编写一次,到处运行”(WORA)的特性而闻名,这一特性得益于Java虚拟机(JVM)的使用,它允许Java程序在任何安装了相应JVM的平台上运行,而无需重新编译。Java语言设计之初就是为了跨平台,同时具备面向对象、并发、安全和健壮性等特点。 Java语言广泛应用于企业级应用、移动应用、桌面应用、游戏开发、云计算和物联网等领域。它的语法结构清晰,易于学习和使用,同时提供了丰富的API库,支持多种编程范式,包括面向对象、命令式、函数式和并发编程。Java的强类型系统和自动内存管理减少了程序错误和内存泄漏的风险。随着Java的不断更新和发展,它已经成为一个成熟的生态系统,拥有庞大的开发者社区和持续的技术创新。Java 8引入了Lambda表达式,进一步简化了并发编程和函数式编程的实现。Java 9及以后的版本继续在模块化、性能和安全性方面进行改进,确保Java语言能够适应不断变化的技术需求和市场趋势。 MySQL是一个关系型数据库管理系统(RDBMS),它基于结构化查询语言(SQL)来管理和存储数据。MySQL由瑞典MySQL AB公司开发,并于2008年被Sun Microsystems收购,随后在2010年,Oracle公司收购了Sun Microsystems,从而获得了MySQL的所有权。MySQL以其高性能、可靠性和易用性而闻名,它提供了多种特性来满足不同规模应用程序的需求。作为一个开源解决方案,MySQL拥有一个活跃的社区,不断为其发展和改进做出贡献。它的多线程功能允许同时处理多个查询,而其优化器则可以高效地执行复杂的查询操作。 随着互联网和Web应用的快速发展,MySQL已成为许多开发者和公司的首选数据库之一。它的可扩展性和灵活性使其能够处理从小规模应用到大规模企业级应用的各种需求。通过各种存储引擎,MySQL能够适应不同的数据存储和检索需求,从而为用户提供了高度的定制性和性能优化的可能性。

  • 精选毕设项目-新浪读书.zip

    精选毕设项目-新浪读书

  • 智慧农业平台解决方案.pptx

    智慧农业平台解决方案

Global site tag (gtag.js) - Google Analytics