2012年3月21日星期三

改善开发者在 Android 生态系统中的商业前景,Google 提供授权认证服务

虽然 Android 平台发展势头非常迅猛,照目前的趋势看 Android 设备总量超过 iOS 设备总量应该是迟早的事情。但是以目前的形式来看,在 Android 生态系统里面获得最大利益的还是设备制造商(如 Moto,HTC),或者还有电信运营商,甚至是软件硬件整合方案供应商,而开发者,无论是个人,小团队,ISV,要从中获得收益还是倍感艰辛。

虽然 Android Market 未来的主要商业模式可能会更接近于目前的PC桌面软件,而区别于 App Store 目前的方式,但是我想那应该是在 Android 设备量取得类似 PC vs Mac 地位之后的事情。而目前要想真正赶上甚至超过(不仅仅是设备量上的超出)有3大 Store 和完美支持多种商业模式的 iOS(收费应用,收费内容和免费广告)加持的 Apple,持续改善开发者在 Android 生态系统里面的商业前景,是 Google 的当务之急。

老实说,Google 在为开发者提供更好的商业环境上做的的确差强人意,也导致了目前 Android Market 上 Apps 的数量虽然庞大,但是良莠不齐,真正的精品并不多的现状。设备兼容性问题,购买支付困难,破解泛滥,Market App 本身常常被设备制造商人为取代和屏蔽等等都急需 Google 去一一解决。

而针对上述的问题,Google 迈出的第一步,是为开发者提供授权认证服务,这应该有助于缓解目前最困扰开发者的主要问题——“破解泛滥”。

Android License Service

Android License Service

上图是授权认证服务的运作方式的示意图,3rd App 可以在应用内部调用 Google 提供的 LVL(认证验证库),LVL 运行于 3rd App 的进程中,它会负责跟本地 Market App 进行 IPC(进程间通信),而 Market App 负责跟远端的 Market License Server 做网络通信,查询认证信息,然后返回给 LVL,最后 3rd App 里的 Activity 可以获得认证验证的结果并自行决定应对措施,比如验证不通过则限制功能,限制使用时间,显示广告,直接退出等等。

目前的信息表示,Google 其实早有计划,用户通过 Android Market 购买 App 的购买记录信息从一开始就被完善的保存下来,并且 Android 1.5 以上版本附带的 Market App 就已经集成了该认证验证功能,只是到它认为时机成熟后才公开出来。这种方式不可避免会碰到如何处理无法联网下认证失败的问题,本地缓存认证验证状况,设置一次验证成功的有效期限,避免每次都需要远程查询,并且允许一定的失败容忍次数可能是一种比较可行的解决方案,可能由 3rd App 自己提供,或者 Google 的 LVL 提供相应的支持。

在国内,这种方式还会碰到另外的问题,像行货的 Android 手机大多移除甚至强制屏蔽了 Market App,并且国内用户对网络流量非常的敏感。当然,实际来说,Android Market 的收费市场也没有向国内开放,即使是国内的开发者,大多在开发收费应用时也不会主要针对国内市场。

从作者个人之前在魅族M8手机上开发收费应用的经历来看,魅族的 MStore 的授权认证方式更适合国内的状况,MStore 提供的认证方式是用户在购买和下载收费应用时,服务器会自动生成一个跟机器序列号和收费应用的MD5值绑定的认证文件跟随 App 一起下载到用户的手机里面,而收费应用可以通过魅族提供的一个验证库去验证是否有合法的认证文件。当然这种方式最大的问题是一旦生成认证文件的加密算法被破解,就等于破解了所有的收费应用,对于 Google 来说,这样方式当然不可取,在线认证还是最安全有效的方式,虽然这种方式对用户来说多少有些麻烦。

PS:
从作者看到的外国网站对该消息的评论,这项服务自然得到开发者的普遍赞许,但是也有不少来自终端用户的反对意见,例如:

1,以后要用 Pirated Paid App 就困难了-_-
2,不联网情况下如何解决认证问题(正文中给出了一种可能的解决方案)
3,3rd App 会不会侵犯用户隐私(如正文所述,认证的过程是由 Google 的 Market App 来完成,3rd App 仅仅是向 Market App 发送认证请求,甚至请求的部分还是通过 Google 提供的 LVL 来进行,所有 3rd App 根本不会直接去访问用户的信息)
4,一旦开发者没有了被破解的压力,App 的价格会不会大幅度提升

作为开发者或者作为终端用户,您的意见是?欢迎留言。

没有评论:

发表评论