当你手持最新的安卓手机的时候,你或许不知道它的内置打印功能已经大幅度进步了。这对于很多只是打印照片的美女们来说基本体会不到,但是对于办公的白领和打印作业的家长来说,手机打印文档太重要了!今天我们就来回顾和展望一下安卓移动打印这些年的历程以及未来会如何。今天谷歌就将要召开IO大会,最新的Android P又会增加哪些新的特性?

谷歌安卓系统的开源部分(回顾安卓打印的进步)(1)

从无到有

谷歌的移动操作系统在Android 4.4 KitKat之前并没有获得本地打印机支持,除了惠普等第三方解决方案外,设置打印机需要特定的打印企业的插件和驱动程序。 但是由于有量智能手机和打印机制造商联合发起的Mopria联盟,Android与打印机的兼容性突飞猛进。 Android最新的 Oreo(奥利奥)支持市场上超过97%的打印机,并且支持如双面打印,Wi-Fi Direct打印,定位和纸张大小调整。

谷歌安卓系统的开源部分(回顾安卓打印的进步)(2)

安卓4.4之前,基本依赖谷歌云打印

早期版本的Android本身不支持打印。从4.4的KitKat Android智能手机或平板电脑上打印文档、图像或其他任何内容都需要下载第三方工具,如Google Cloud Print,在另一个应用中提取文档,并使用Android的共享菜单将其传递给上述工具。与苹果的AirPrint相比,安卓系统当时的移动打印过程麻烦,搞不定的用户大有人在。

谷歌安卓系统的开源部分(回顾安卓打印的进步)(3)

安卓4.4时代的打印界面

Android的打印服务需要进行改造,Google于2013年推出.Android 4.4 KitKat标志着用于管理打印机和原生Android打印平台的API的首次亮相。其发布的Android Print Framework具有一个用户界面,具有用于打印机和页面选择的下拉菜单,以及一个将应用程序的打印请求传递给可用打印机服务的打印管理器。

谷歌安卓系统的开源部分(回顾安卓打印的进步)(4)

4.4时代安卓打印依赖厂商自己的APP,谷歌只是给出了API

当然,打印机制造商不会受限于新的打印管里。他们可以使用这些API来开发自己的打印APP,并通过Google Play或是其它的安卓应用市场来让用户获得这些服务,其中许多APP包括HP,Canon,Epson和Brother,它们推出的APP功能都很强大。与此同时,应用程序开发人员可以自由地将打印操作添加到应用程序中,或者实现新的打印API来创建,取消和检查正在进行的打印作业的状态。

安卓打印的技术实现

下面介绍Android的打印堆栈是如何工作的,它在今天仍然如此。当用户从应用程序中启动打印作业时,应用程序对Android打印框架进行API调用,然后调用Android打印框架打印服务。 (其中一个API调用是Google的PDF渲染器,它生成了要打印的文件的分页PDF版本。)然后,打印服务完成与打印机的握手,从而开始打印过程。

谷歌安卓系统的开源部分(回顾安卓打印的进步)(5)

安卓7.0之后可以查看打印作业了

但是,KitKat的新打印平台能实现的功能太基础了。 Android 5.0 Lollipop在打印菜单上进行了改进,具有打印预览和用于纸张大小,颜色,方向和页面范围的下拉选择器。 Android 7.0 Nougat带来了新的API调用,可以显示打印作业的状态,允许应用程序显示打印进度的指示。 (在以前的Android版本中,它并不是很明显。)但是,直到直到安卓8.0的Oreo版本,Android的打印堆栈才开始出现。

谷歌安卓系统的开源部分(回顾安卓打印的进步)(6)

Mopria你可能不知道,这些成员企业你肯定有知道的

非营利性质的移动打印标准机构“Mopria联盟“可能没有太多的品牌知名度,但它却是由业内行家组成的。成立五年来,Mopria已经招募了包括惠普,Adobe,柯尼卡美能达,高通,利盟,京瓷,戴尔和东芝在内的打印机和移动巨头,他们都致力于支持跨移动设备的核心打印技术、功能和服务。Mopria联盟指导委员会主席表示,Mopria的技术被安装在7.5亿多台不同移动设备上,并且每天向打印机提交多达140万页打印指令。 Richtsmeier先生说:“随着世界变得更加紧密,所有东西都是相互关联的,移动性更强,但人们仍然需要打印。”

谷歌安卓系统的开源部分(回顾安卓打印的进步)(7)

三星对于安卓移动打印的推动非常积极

为此,Mopria与Android原始设备制造商三星合作,通过Mopria的开发工具套件Mopria Print Library(MLP)提供平板电脑和智能手机。其中一项成果是三星打印服务,这是一款用于Android Print Framework的移动打印工具,预装在三星Galaxy S4,S5,S6,S7,S8和S9上。 (Richtsmeier先生说,它每月有约4亿活跃用户)。另一个是中兴的Axon 7和Axon 7 Max,预装了Mopria打印服务。

谷歌安卓系统的开源部分(回顾安卓打印的进步)(8)

安卓开放源代码项目

与此同时,Mopria开始与Google合作,将其技术与Android开源项目(AOSP)代码库合并。在KitKat发布之后的几年中,它贡献了数千行代码,最终实现了Android Oreo的新改进的默认打印服务。

如何获得谷歌和Mopria认证?

Android 8.0中的默认打印服务Oreo支持标准打印设置,如颜色调整,媒体类型选择和复制。它免费且易于使用,但也不妨碍开发人员创建自己的Mopria认证产品。根据Richtsmeier先生的说法,定制路线相对容易。

谷歌安卓系统的开源部分(回顾安卓打印的进步)(9)

获得Mopria认证意味着打印机会被数以亿计的手机支持

加入Mopria联盟是第一步 - 这会涉及少量许可费用。然后,开发人员有两种选择:(1)使用自己的代码编译Mopria库,(2)使用Mopria许可给Mopria联盟所有成员的代码库,或者使用Mopria现有的AOSP代码编写定制解决方案,同过上面的操作,作为打印厂商,就可以很方便的制作自己的移动打印内置插件了。

谷歌安卓系统的开源部分(回顾安卓打印的进步)(10)

Mopria打印的开发流程

一旦代码到位,接下来就是测试。 Mopria联盟成员可以使用工具集进行合规性测试,包括特定的自动执行和打印机测试。一旦运行了必要的测试并收集了数据,结果必须发送给Mopria工程师,Mopria工程师会对其进行审查,以确保代码的行为符合预期,并检查所有必要的框架。如果一切顺利,该应用程序将被视为Mopria认证。

安卓打印的未来

从KitKat时代算起,Android的打印平台已经走过了一段很长的路,当时,笨拙的解决方法(通常涉及共享菜单)是打印某些东西的唯一方式 ,当然这里核心的思维是不能将文件传输到打印机连接的PC,即使是谷歌云打印,也是传输光栅化之后的文件。也就是说,Android Oreo的默认打印服务显着缺乏企业功能,如打孔,折叠,装订,PIN身份验证或会计功能,因为这些功能只在PC版本的驱动程序里面才有。

谷歌安卓系统的开源部分(回顾安卓打印的进步)(11)

Google Play下载应用就不能说太细了

第三方打印服务,例如Mopria打印服务,可从Google Play商店免费获取,有助于填补功能上的空白,增加了输入纸盒选择,蓝牙打印, Wi-Fi打印等功能。 并直接进行USB-OTG打印(就是把OTG的U盘插手机上打印U盘内文档)。 不过由于Google Play不是哪里都可用,比如国内的安卓手机,基本都是没有的,因此获取Mopria需要一些成本,可能要多找几个应用商店才行。

谷歌安卓系统的开源部分(回顾安卓打印的进步)(12)

安卓P的打印更值得期待,它会在明天的谷歌IO大会降临吗?

新的改进的还在继续,未来的Android P将在某种程度上缩小功能差距。Mopria开发人员去年年底提交的Android Gerrit中的一些支持仅限IPPS的打印机。 IPPS是基于HTTPS的互联网打印协议(IPP)安全实现,允许应用程序通过连接到互联网的打印机发送打印作业,查询打印作业状态等。

谷歌安卓系统的开源部分(回顾安卓打印的进步)(13)

打印设备直连并不新鲜,但是要做到安卓内置要看新安卓版本

今年1月,Mopria开发商开始为Wi-Fi Direct打印奠定基础。目前,Android上的默认打印服务仅支持通过路由器或或是AP等其它设施连接到打印机上,但新提交可直接支持Android智能手机和平板电脑与Wi-Fi Direct兼容打印机之间的连接。借助Wi-Fi Direct,不需要配对,与Wi-Fi热点不同,某些打印机甚至不需要密码。

谷歌安卓系统的开源部分(回顾安卓打印的进步)(14)

更多的特性内置,要逐步推动

或许有人会说,很多移动打印功能不是APP已经实现了吗?比如惠普的一些,但那需要APP,而打印企业和Mopria的目的显然是安卓内置支持,让用户买了手机就能打印,这样显然更方便。背后需要的努力和耗费的工作量不可同日而语,虽然进展不快,但是考虑到安卓的兼容性等特性,已然不易。

,