Linux 之父出席、干货分享、圆桌讨论,精彩尽在 OpenCloudOS 社区开放日,报名戳 了解详情
写点什么

豌豆荚余奕霖:Holo 界面与产品测试

  • 2012 年 11 月 15 日
  • 本文字数:2301 字

    阅读完需:约 8 分钟

在 11 月 14 号的豌豆荚活动中,InfoQ 采访了豌豆荚“零流量”版本技术负责人余奕霖,问及了关于交互界面和设备适配等问题。

InfoQ:请您先做一下自我介绍?

余奕霖:我叫余奕霖,现在是在负责豌豆荚安卓手机客户端的研发工作,包括目前大家所看到的“零流量”版本,以及像内容获取或者是本地管理的这些功能。

InfoQ:我们看到豌豆荚使用了 Holo 风格,对于回归到原生界面在互操作性上是如何考虑的?

余奕霖:其实一开始大家是有争论的,我们到底是使用原生的风格?或者是像其他的厂商一样设计一套自己很独特的交互?这里面其实是有两个考虑:一个是工作量本身,我们要设计一套具有豌豆荚自己风格很成熟的交互系统,可能需要花很多的时间和精力,同时未必能够做得很好,这是一个很实在的问题;第二点我们考虑到了因为 4.0 具有明显的风格,有一套很完整的理论,用户在使用其他的系统应用时,已经很熟悉、很习惯这种风格了。如果进入到我们的豌豆荚之后,发现这个交互行为和系统其他的应用很接近,他可以很快地上手,就可以满足我们简单、好用的设计理念。主要是基于这两方面的考虑。

InfoQ:安卓现在有很多产品的分支,不同的屏幕、不同的适配,豌豆荚拥有很大的用户量,那么就需要在所有的平台上做测试和支持,那么在这方面是怎么做的?

余奕霖:其实这也是我们非常头疼的一个问题,可能所有的安卓开发者都觉得这个问题很麻烦。我可以描述从研发到测试的过程:一开始在研发的时候我们会选择有代表的几种 ROM,比方说 2.1、2.3、4.0,这些是具有代表性的、最容易出问题的 ROM,我们会在研发的时候会观察它在这些 ROM 上的表现是不是显示正常、是不是会有特定的崩溃。在测试的时候可能覆盖面会更大一些,比如说我们研发的时候可能就两三款手机,但是在测试的层面可能会有十几款手机的验证。在这两个基础之后,我们会发一个小范围的测试版本,在这个版本里面收集用户的崩溃数据。

InfoQ:豌豆荚使用了哪些测试套件辅助测试?

余奕霖:这个其实没有,如果只说测试,可能有两方面,第一是我们自己研发的测试,就是所谓的单元测试,主要是验证功能和算法是否正确性、基本的是否运转正常等。另一方面主要就是黑盒测试,我们有测试的同事从普通用户的角度来体验这样的产品,看我们设计的这个流程是不是都能正确地完成,同时一些边缘的情况是不是都覆盖到了,这方面来讲,黑盒测试还是比较传统的,和很多其他公司比较类似。

InfoQ:豌豆荚现在发布的是“零流量”的版本,我们背后的考虑是怎样的?在技术上我们遇到的主要是哪些问题?

余奕霖:主要是帮大家打消使用豌豆荚的时候对流量的一个顾虑。我觉得这是很重要的。因为确实有很多人有这种很惨痛的经历,他会发现不知道什么时候他的流量已经用光了,甚至已经超标了,运营商给了几十块钱上百块钱的账单过来。我们希望如果有了我们这个东西之后,用户只要开启了,最起码我们可以保证用户不会因为豌豆荚受流量上的损失。 简单来说就是你不用再去考虑豌豆荚会跑流量。

技术上的问题,我可以先简单介绍一下我们之前的一个思路:以前很多软件网络的操作就像是一个有很多阀门的水库,这个流量可以从不同的出口跑出去,所以第一步我们需要把这个闸门给统一起来,只有一个大坝才可以出水,其他的地方都不可以。基于这个理念,我们在我们所有能够控制网络的操作层面,都把它约束到一起,就是有一个统一的开关来控制,如果开启了流量并且在移动网络下,就不应该产生任何流量。比方你之前建立的这些连接,都要先把它关掉。还有一个比较头疼的问题,我们会使用到一些第三方的 SDK,但是它有自己的网络库。你可以不去调用它,但是你在 Wi-Fi 下正常使用的时候,我们要允许它调动,因为我们在 Wi-Fi 下提供的是全功能,所以在这个比较边缘的情况下,用户正好使用了第三方 SDK 的网络,同时又从 Wi-Fi 切换到了移动网络,就会跑一点点流量。

InfoQ:现在 Google 发布了 Nexus Prime,它把安卓整个硬件水平又拉到一个新的阶段了,您对于安卓的这种开发者有什么建议?他们以后在这个平台上开发的时候要做哪些调整?或者做哪些准备?

余奕霖:其实 Google 这种策略对开发者来说是越来越有挑战的,你需要适配的东西是越来越多,然后相应的工作量也会越来越大,但是具体到比如做什么样的调整,我们有一条很核心的想法:在 Google 的文档里面叫做最小 SDK 的版本,我们希望是在这之上的,或者是目前最主流的,我们要优先保证它的体验,其他的可能以适配为主,只要我能正常运行就 OK。但是 4.2 发布的话,如果因为 4.2 的发布导致我们某些功能不能正常使用,我们会优先解决这样的问题,但是我们不会说很快就很特意地为它做一些特别的、新的特性。

InfoQ:在豌豆荚安卓版同时联网的时候,我们可能也会采取一些措施让整个流量比较小,技术上是怎样做的?

余奕霖:我们会拉取应用的列表,在拉取之后缓存起来,不会反复加载同样的东西。并对列表进行压缩,压缩之后流量比压缩之前节省了 70%。

InfoQ:最后一个,在安全方面,我们知道在安卓这一块还是漏洞很多的,有很多应用会获取一些不必要的权限,在豌豆荚我之前看到介绍会调用腾讯或者其他的一些接口,现在这个基础上,还有哪些新的保障?

余奕霖:其实这个保障更多的是在服务端去做。比如我们在应用榜里面看到一个应用,会有安全性、是否有广告的验证,并告知用户。但是这个验证主要是在服务端在做,我们只是提供一个展示。比方说你要判定一个应用是否是恶意的,实际上拍脑袋来想,他会把这个应用解包,或者是分析它的行为,这些东西第一个是技术门槛还是很高的,第二个由于手机自己的计算能力比较有限,我们很难在手机端上做一个什么东西。现在还主要是依赖和安全厂商的合作在服务器端扫描完成。

2012 年 11 月 15 日 22:292365
用户头像

发布了 89 篇内容, 共 28.4 次阅读, 收获喜欢 4 次。

关注

评论

发布
暂无评论
发现更多内容

webpack入门(一)

子铭

一口气带你踩完五个 List 的大坑,真的是处处坑啊!

楼下小黑哥

Java 踩坑 后端 集合

分布式限流框架 - Sentinel

Java收录阁

dubbo sentinel

在实战中学习项目管理

兆熊

项目管理 专栏

大话区块链和比特币的技术原理

麦叔

比特币 区块链 数字货币 加密货币 加密解密

浅析 - CocoaLumberjack 3.6 之 FileLogger

Edmond

ios log4j CocoaLumberjack DDLog 日志轮替

谈知识付费

兆熊

从nacos客户端的TIME_WAIT说起

捉虫大师

Java TCP nacos

Java内存模型和volatile、final等关键字

麻瓜镇

Java 多线程

《零基础学 Java》 FAQ 之 3-为什么计算机里的浮点数不精确

臧萌

Java 浮点数

给在线教学泼点冷水

启润

在线教育 基础教育

人人都应该懂的加密算法 - 公钥加密

麦叔

对称加密 加密解密 信息安全 公钥加密

软件产品的信息安全问题

Interstate5

软件开发 信息安全

Spring Cloud集成Sentinel

Java收录阁

Spring Cloud sentinel

自助设备系列——推广

孙苏勇

产品 行业资讯 智能设备

软件产品开发流程

Interstate5

软件开发 软件开发流程

用 Electron 打包语雀

封不羁

Java Electron

《如何阅读一本书》读书心得

兆熊

读书笔记

Sentinel集成Nacos实现动态流控规则

Java收录阁

sentinel

软件产品信息安全 - 数据分类

Interstate5

软件开发 信息安全 数据分类

HTTP 升级 HTTPS 全过程记录

猴哥一一 cium

https 证书

产品周刊 | 第 14 期(20200510)

Herbert

产品 产品经理 产品设计

Dubbo和Spring集成的原理

Java收录阁

dubbo

面向对象是什么

落英亭郎

面向对象

《零基础学Java》 FAQ 之 零-这门课适合我吗?

臧萌

Java 编程语言

《零基础学 Java》 FAQ 之 4-关于补码,多说两句

臧萌

Java 补码

程序员必需清楚的进程和线程

后端学长

线程 操作系统 进程

Spring Boot自动装配的原理

Java收录阁

Spring Boot

权威与边界

伯薇

权威 边界 BART 工作方式

设计模式入门和策略模式

设计模式

如果想了解驱动开发,请不要错过这篇。

水滴

最佳实践 开发者 程序设计 测试驱动开发实战营

GPU容器虚拟化:用户态和内核态的技术和实践详解

GPU容器虚拟化:用户态和内核态的技术和实践详解

豌豆荚余奕霖:Holo界面与产品测试_测试_水羽哲_InfoQ精选文章