英特尔如何致力于吸引新晋年轻程序员进入安卓开发领域





0/5 (0投票)
一位教育工作者对 Beacon Mountain 的看法。
引言
作为“科技”行业的教育工作者,我需要不断更新和提升自己的技能,同时也要为我的学生寻找进入新技术的便捷途径。我在大学一级教授视频游戏设计与开发,这是一个充满挑战且日益复杂的领域。我所教授的课程内容充实且前沿,但仍然需要不断更新和修订。这正是教育和技术行业的本质。随着开发领域新技术的不断涌现,我们教育工作者需要决定何时以及在课程中加入哪些内容。一个具体的例子是,在过去三年里,iOS 和 Android 开发一直是雇主们向我的项目(位于安大略省西南部)学生提出的最重要的两个移动技能,其中 Android 在过去一年里最为重要。但是,我们如何在已经内容密集的视频游戏开发项目中加入 Android 开发呢?英特尔的 Beacon Mountain 是帮助回答这个问题的一个很好的起点,并且英特尔已准备好通过最近推出的 Intel INDE,进一步兑现其为快速发展的 Android 开发社区提供强大、易用工具的承诺。
早在 2013 年的英特尔开发者论坛 (IDF) 上,首席执行官 Brian Krzanich 的主题演讲就提出了英特尔的新焦点:让英特尔直接与开发者建立联系。Brian 呼吁英特尔积极投入他所说的“生活方式计算”,并在主题演讲的开头和结尾都向他的团队发出挑战,并向开发社区喊话——“我们在一切计算领域都要领先。”
于是 Beacon Mountain 应运而生。Beacon Mountain 于 2013 年年中推出,它是一个包含谷歌和英特尔提供的开发工具的软件包,支持 Windows 和 OS10,可免费下载给 ARM 和 Atom 芯片组的开发者。该软件包包含 ADT (Android Developer Tools),Eclipse IDE,谷歌的 Android NDK。英特尔还包含了 硬件加速执行管理器 [HAXM],英特尔的 图形性能分析器 [GPA],集成性能原语 [IPP] 预览版,以及 线程构建块 [TBB]。创建这个软件包的根本原因是为了让开发者能够轻松地开始 Android 开发。
最近,英特尔公司总裁 Renee James 在 2014 年世界移动通信大会 (MWC) 上发表演讲,宣布了她的公司最新的开发者计划:Intel Integrated Native Developer Experience (Intel INDE):“Intel INDE 通过提供用于环境设置、代码创建、编译、调试和分析的工具、示例和库,实现了更快的开发。”
INDE (发音与朗朗上口且恰当的绰号“indie”相同) 是一个跨平台生产力套件,支持 Android 和 Windows 设备,并提供原生支持。INDE 专为希望通过硬件平台提供最佳体验的原生应用开发者而设计,并实质上取代和扩展了 Beacon Mountain 最初提出的理念。
在考虑向课程中添加教学材料时,我的首要 concerns 是建立在已有的知识基础上。我不想抛弃我的学生已经掌握的 C++ 框架和引擎设计的扎实基础,因此使用和包含 Android NDK 似乎提供了一个很好的机会,可以通过 ADT 来研究原生 C/C++ 编程。
作为一名教师(或一名有抱负的新程序员),另一个主要的 concerns 是进入门槛。工作室显然希望新程序员/招聘人员能够使用市场上最新、最强大的工具。但硬件和软件制造商常常未能提供强大且具有潜在中间件解决方案的设备和 API,并且仍然足够易于所有开发者使用。
此外,学生们——通常是刚毕业的学生——会成为独立开发者,直接从事游戏开发公司的工作。因此,他们只能接触到在学校提供的课程中学到的“类型”的材料。而且,独立开发者没有资源花费数年时间进行研发来优化和提高他们的系统效率。他们需要获得许可方和制造商的帮助。
截至当时,我计划在课程中引入使用 Android NDK 环境下的原生 C/C++ 代码的高级 Android 应用程序开发,这意味着需要做大量的基础工作。从教育工作者的角度来看,我主要教授大一大学/学院学生,Android 开发的学习曲线非常陡峭。
对视频游戏开发感兴趣的学生的教育选择主要有:荣誉计算机科学项目,这很可能侧重于语言和编程范式;系统与操作,但缺乏对所学理论的全面实践;或者,一个专注于视频游戏开发的课程,其学制可能较短,编程技能较弱,但遵循完整的开发周期和生产方法论,将所学代码直接付诸实践。无论哪种途径,都需要了解的知识太多,而在毕业前吸收和应用所有这些知识的时间又太少。
因此,任何新毕业生,按照定义,都是未完成的产品。他们面临着自我学习额外技能和学习新工具的艰巨任务。
随着我的学生在编程方面取得进步,他们所需的工具的数量和复杂性(希望如此)也随之增长,与他们的能力和知识并驾齐驱。作为一名教育工作者,我的职责是确保这些新工具的引入速度能够与学生使用和适应新技术的能力直接匹配。这是一个持续存在的挑战。因此,我试图将任何新技术分解为“需求层次结构”——现在学生 X 已经学会了技术 A,什么新技术最适合学生 X 需要学习的工具集?
为此,我花了一些时间,在考虑“需求层次结构”的情况下,分解了 Beacon Mountain 的每个组成部分,以检查随着他们在程序员的开发过程中取得进展,学生们可能会发现哪些工具有越来越大的益处。
分解
新开发者的需求:希望开始 Android 开发,同时保持低研发成本。
解决方案:HAXM 技术
英特尔的硬件加速执行管理器允许开发者在 PC 上运行 Android 应用程序的模拟器。因此,这使得开发者可以在支持 Intel VT 的机器上运行支持硬件的 x86 版本的 Android。这立即意味着教育机构和学生无需拥有硬件即可运行和测试他们的应用程序。在考虑将新课程内容添加到课程中时,学生和学校的“成本”非常重要。
新开发者的需求:我已经学会了如何创建应用程序,现在我想提高它们的性能。
解决方案:英特尔的图形性能分析器
性能分析工具的强大之处在于其使用。也就是说,工具使用得越多,工具就越强大。仅仅向学生展示如何运行一个性能分析器,其中包含大量数据和可能出色的指标,如果他们不熟悉评估 GPU 处理瓶颈或检查负载分配图,那么它的价值就很小。
英特尔的 GPA 优点在于易于设置,并通过提供超过二十几个关键系统指标的实时视图以及其他许多用于各种 API 的强大监控功能,实现了可行的性能和帧分析。“易于使用”对于学生(以及可能对性能分析工具没有太多经验的成熟开发者)来说至关重要,而英特尔做到了这一点。
新开发者的需求:跟上快节奏、不断变化的 Android 生态系统。
解决方案:英特尔的线程构建块
TBB 通过预先测试的算法和功能提升应用程序性能,从而简化了并行化。这在理论上还可以确保应用程序能够随着当前和未来的处理器一起扩展。
我的学生通常对多线程不够熟悉,无法尝试线程构建块,但普遍了解(我们讨论其重要性)SIMD,如通过 XNA Math 库和 DirectX 11 游戏项目实现的 SIMD。
然而,将工具集成到开发环境中,至少可以向学生介绍这个概念。希望更高级或好奇的学生会询问自动安装在 Eclipse 中的“Tachyon 演示”项目。从而为从课堂练习到实际代码的第一个小步骤铺平道路。
新开发者的需求:缩短开发周期和设置时间,面向未来,同时创建高性能 Android 应用程序。
解决方案:英特尔的集成性能原语 (适用于 Android)
在开发早期阶段使用 IPP 开发新应用程序是快速轻松地为应用程序添加并行性的方法。英特尔提供了免费下载的代码示例,其中包含用于视频和音频编解码器、图像处理等的线程安全且高度优化的软件功能(所有功能均免版税)。本质上,根据用户设备的可用功能(如 SIMD 和其他优化指令集),函数算法会在硬件级别进行优化。
随着英特尔 Android 开发工具的功能不断发展和深化,我建议让这些工具对学生更加易于访问、易于使用和易于理解。这将是这些工具集成到新开发者开发环境中的基础。
*****
硬件制造商继续做他们的事情:开发越来越强大的设备,这些设备可能带有越来越复杂的系统和依赖项。但是,强大的力量伴随着巨大的责任……确保开发社区能够为这些设备创建应用程序。
典型的 Android 开发环境(尤其是如果包含任何原生 C/C++ 集成)不仅包括 Android ADK,还包括 Eclipse IDE 的使用,大量使用 Cygwin 和 GNU++ Makefile。为了让毕业生能够正确驾驭 Android 开发的航海,他们需要 shell 访问权限,以及修改环境变量的权限。图形和系统优化工具并不总是与虚拟设备一起工作,这意味着开发者需要准备一系列设备进行部署才能使用性能分析工具。这可能是一个“科学怪人”式的 IDE,通常是流行的开源软件的后果。
Android 社区需要一个领导者,而英特尔似乎正在挺身而出。Beacon Mountain 和 INDE 似乎是英特尔在宣告:“我们将承担重任; THIS 将成为事实上的开发环境。”
随着英特尔对这些工具的成功高度关注,这些开发工具将有望继续避免大多数开发者已经意识到的陷阱,并专注于提供干净的 UI 和符合人体工程学的 IO。硬件和工具开发者经常忽视的是我所谓的数字人体工程学的需求;创建功能强大、易于访问且进入门槛低的有吸引力的工具。如果你能让新程序员在他们成为熟练开发者的旅程早期就开始采用你的产品,那么你就拥有了一个宝贵的产品拥护者。这将向外传播,并贯穿该程序员的整个职业生涯。这种推广对所有软件开发相关人员都非常有价值,并能培养出更快乐、更好的编码员。此外,“易于使用”并不意味着“不够强大”,它只是意味着在工具的“如何使用”上投入了更多的思考,而不仅仅是“工具能做什么”。
我对英特尔在 Beacon Mountain 中提供了大量预集成、易于访问的工具感到非常满意。虽然这些工具还很新,可能还不是初学者学生的理想选择,但我认为 Beacon Mountain(以及新的 Intel INDE)将发展成为新兴 Android 开发者的关键工具。我将将其用于我的个人项目,并密切关注我的未来学生。Beacon Mountain 目前可供使用,并包含许多内置演示,这些演示应该能使启动和学习这些新工具变得简单:只需运行内置演示即可。
在撰写本文时,INDE 刚刚发布了 beta 版本,但当它正式发布(并且任何 beta 阶段的小问题都已解决)时,它将成为创建高性能 Android 应用程序的强大英特尔和第三方工具的真正军火库。
Intel INDE 包含本文详述的所有 Beacon Mountain 工具(不包括英特尔的集成性能原语),以及大量额外的工具和库,包括 Intel® INDE Media Pack for Android,它提供了源代码和示例,用于增强应用程序的媒体功能,如相机和屏幕捕捉、视频编辑、视频流、音频指纹识别,以及 Compute Code Builder,一个帮助最大化计算 API 和可编程图形性能的开发平台。Compute Code Builder 工具帮助开发者创建、编译、调试和分析计算 API,如 Google Renderscript 和 Khronos OpenCL。
当然,与 Windows 设备进行跨平台集成对于任何有远见的开发工作室来说都是一个受欢迎的补充,并且 INDE 集成了开发者最熟悉的 IDE:Visual Studios、Eclipse、命令行开发等。对我这个老师来说,这是值得欢迎的,因为它可能意味着在将这个开发套件引入课程时,我不必向我的学生介绍(另一个)新的 IDE。
新工具套件有望面向未来,并将自动包含新产品更新以及新工具的可用信息。作为一名专注于提供最佳用户体验的开发者和教育工作者,像这样的工具套件使我能够更具生产力,并让我的学生和其他新开发者有机会让他们开发的应用程序在原生平台上真正大放异彩。在一个套件中完成设计、编码、调试和加速。
有关 Intel® Integrated Native Developer Experience beta (INDE) 的更多信息,请访问:https://software.intel.com/en-us/intel-inde