概述
基于英特尔® 凌动™ 处理器的安卓* 设备越来越受到欢迎,支持应用也在不断推出。 为了满足应用开发人员(专注于开发面向采用英特尔凌动处理器的安卓设备的游戏)的需求,中间件公司开始支持 x86。
CRI Middleware Co., Ltd就是一家这样的公司,该公司提供对安卓中间件的运行时库 x86 支持。 该公司通过更改安卓 NDK 中生成文件的构建设置并更换 ARM* NEON* 指令来提供支持。 一种面向 Unity* 的插件包含在面向安卓设备的中间件运行时库的 x86 支持中,它是一种由 Unity Technologies 开发的游戏引擎,支持开发人员通过简单地设置 x86 文件夹作为安卓 NDK 的构建目标,从而构建游戏。
关于 CRI
CRI 是一种日本公司研究、开发和销售音频/视频中间件。 CRI 于 1983 年作为独立 IT 解决方案供应商 CSK 公司的研究机构成立,专注于开发面向 Sega 家庭视频游戏控制台的中间件。 于 2001 年独立后,它在面向游戏控制台的中间件方面获得了成就,现在以 CRIWARE* 品牌生产产品。
在过去的几年中,CRI 一直专注于支持智能手机,并扩展面向 iPhone* 和 Android 的中间件。 CRI 目前提供面向安卓的集成声卡中间件 CRI ADX*2、高品质、高性能的电影中间件 CRI Sofdec* 2 以及文件压缩/打包中间件 FileMajik PRO。 通过使用这些,游戏和应用开发人员能够将强大的视频添加到游戏以及带交互声音的新沟通渲染,同时提高开发效率。
集成声卡中间件 CRI ADX 2
高品质、高性能的电影中间件 CRI Sofdec 2
英特尔® x86 支持的背景
从 2012 年基于英特尔凌动处理器的安卓设备上市以来,CRI 一直专注于提供面向中间件的英特尔 x86 支持。 软件开发商开始要求提供安卓 x86 模拟器支持。 模拟 ARM 架构的原始 ARM 模拟器的运行速度存在问题,但高速运行是通过使用 x86 模拟器和英特尔® 硬件加速执行管理器(英特尔® HAXM)实现的。 用过的许多开发人员表示,他们希望使用带 x86 模拟器的 CRIWARE 提高开发效率,因此在 2013 年 6 月首次推出了 x86 支持版本。
CRI 单位负责人 Yusuke Urushihata 表示:“使用 Android NDK 可轻松实现 X86 支持。 我们实际上能够通过向生成文件的输出目的地添加一行来添加支持。
CRI 发布了面向 Android NDK 开发环境的 CRIWARE。
NDK 开发环境
2014 年 8 月末,游戏引擎公司 Unity Technologies 推出了对 Unity 4 和 Unity 5 的 x86 支持,并发布了本地开发环境。 因此,开发人员需要对 Unity 库的 CRI 中间件 x86 支持,而后 CRI 推出了这一支持。
CRI 的开发集成经理 Atsushi Sakurai 表示:“使用 3D 游戏引擎 Unity 游戏开发人员(用户)强烈要求提供 x86 支持,所以我们决定提供 x86 中间件支持。”
Unity 开发环境
除了 Unity 以外,2D 导向的 Coco2d-x 是另一个支持 CRI 的视频游戏框架,在本地 Android 开发环境中运行。 由于它采用 C++ 编写,因此不需要专用库。
开发专注于 x86 支持
CRI 借助程序开发环境 Android NDK 开发了运行时库,以一种预先确定的顺序创建并毫无问题地添加了支持。
Android NDK 生成文件 (Android.mk) 大部分的构建设置进行了修复,并一次添加一行,以便它们以 x86 格式输出。
对视频进行解码处理时,CRI 使用了 ARM NEON 指令,但它在运行针对 x86 的版本时生成了一个 make 错误。 因此,CRI 用优化的 C 和 C++ 改写了解码处理代码,这两种语言在基于英特尔® 架构的平台中得到了验证。
若要立即建立 x86 支持,必须确保 CRI 提供的中间件为多平台中间件。 多平台支持最初包含在 CRI 中间件的设计概念中,因此即使在出现目标特定问题时,也有一个用于切换到另一个环境的 NEON 指令集等框架。 例如,即使源代码中的结尾不同,它们也会使用 CRI 自动区分,以配置通过小结尾构建的环境。
如何使用面向 x86 支持的 CRIWARE*
CRI 提供面向 ARM 和 x86 的库。
使用 Unity 进行视频游戏开发以及使用 CRIWARE 为采用英特尔凌动处理器的安卓设备提供 x86 支持时的程序相当简单。 您只需使用 Android NDK 运行应用版本即可。 只要您使用采用安卓操作系统、基于英特尔凌动处理器的设备,并且您有测试环境,x86 支持很容易实现。
在本地开发环境中,当您运行版本时,应用生成文件和针对 x86 的设置一次修改一行。 在这个过程中,采用 x86 支持的库存储在一个 x86 文件夹中,后者在 libs 文件夹中自动创建。
运行安卓操作系统、基于英特尔® 凌动™ 处理器的设备的评价和未来前景
目前,CRI 尚未完成数据分析,因此尚未针对基于英特尔凌动处理器的安卓设备与基于 ARM 的设备的性能得出任何结论。
然而,应用的视频和音频处理速度几乎总是更多地取决于评估和音频/视频驱动程序,而非架构,因此处理器至关重要。 基于英特尔凌动处理器的设备运行舒畅,没有遇到操作缓慢或屏幕移动不自然的情况。
未来,我们目前正在研究支持英特尔® SIMD 流指令扩展(英特尔® SSE)的可能,以处理 ARM NEON 的视频解码指令。 此外,针对 64 位安卓的准备也已经开始。 因此,CRI 希望继续提供信息和来自英特尔的技术支持。