在Snapdragon上开始为Windows开发ARM64应用程序比你想象的要容易,而且一直在变得越来越容易。
不妨将Snapdragon上的Windows看作一个开发聚宝盆:
- 移动处理器具有较长的电池使用寿命和较高的性能,例如本公司的Snapdragon®计算平台
- 无处不在的Windows 10/11应用程序
- 采用ARM架构的5G/LTE移动计算背景
- 利用Snapdragon硬件引擎进行的分布式计算,例如人工智能(数字信号处理器)和摄像图像信号处理器(Qualcomm Spectra™图像信号处理器)
宏碁、惠普、联想、微软和三星等原始设备制造商生产基于Snapdragon软件、运行Windows 10的常开常连式个人电脑。微软已经发布了大量关于ARM开发的程序和学习资源。
这意味着像您这样的开发人员所需要的唯一东西就是工具,而您甚至不需要再等待这些工具了。
你的意思是说我现在就可以为ARM移植和开发应用程序了?
是的,我就是这个意思。
事实就是如此。许多开发人员甚至不知道标准的Visual Studio工具链可以在ARM上运行。事实上,它从2017年Visual Studio第15.9版就可以运行。为ARM进行编译所需要的工具和库已经内置到集成开发环境(IDE)中,而.NET应用程序现在可以在Windows ARM64上本机运行。
这些工具不仅支持消费者和企业应用程序的开发。你可以说该类工具的发展已经达到了第二宇宙速度:正如我们之前在博客帖子Windows 10 ARM64支持虚拟引擎中所表明的那样,这些工具目前支持3D游戏开发。
一批本地、开源ARM64工具
在Snapdragon上提供了许多很棒的工具,可以帮助Windows开发人员;我们维护了一个页面Windows on Snapdragon开发人员资源,展示了常用的、带有本地ARM64版本的开源工具;
- 用各种编译器,例如ARM上Windows所使用的低级虚拟机,包括链接器和编译器程序库。
- 各种框架,例如用于网络浏览的Chromium和.NET 5.0,包括Forms和WPF。
-
可以虚拟运行完整Linux内核的各种编辑器和程序库,例如Visual Studio Code,用于安装程序的WiX,用于跨平台桌面应用程序的Electron,以及用于Linux 2的Windows子系统(WSL 2)。
我们选择重点突出可以帮助您针对ARM和端口现有应用程序创建全新应用程序的各种工具。有了这么多架构背后的动力,就不需要绕过无法获得的组件或分支代码让应用程序运行。我们已经提供了各种工具,并且非常有用。
当您利用某些工具在Snapdragon上进行Windows开发时,也会发现性能方面的优势。例如,FFmpeg是一种跨平台的多媒体框架,可以记录、转换和播放音频和视频。FFmpeg可以利用Qualcomm Technologies, Inc.(QTI)公司的硬件加速程序;因此,如果您只是将FFmpeg打包到应用程序中,您可能会发现性能方面的提升。
进行ARM开发
正如微软指出的那样,“ARM64应用程序无需任何仿真就能运行,而x86应用程序则在仿真下运行。”计划在今年晚些时候推出有关x64的支持版本。”
我们注意到,某些软件供应商在移植到ARM64时不需要更改任何代码。如果您的情况并非如此,那么您始终需要进行一些重新编码工作(取决于架构)。例如,简单的应用程序和基本功能可能只需要简单的重新编译,但我们发现其他软件开发人员采取了阶梯式移植方法。例如,如果您的产品是一个会议应用程序,而您的目标是Snapdragon上的Windows,那么您可以分三个阶段进行移植:
1. 优化应用程序的核心功能。
2. 使用QTI提供的加速器优化Snapdragon设备在Windows上的性能。
3. 基于Windows在Snapdragon设备上的强大功能和性能,将独特的人工智能和混合现实体验(例如:眼睛注视)带到边缘。
直到最近,对于开发人员来说,对第三方组件的依赖可能还是一项挑战。但是在其发布的Windows 11公告中,微软提到使用新的ARM64仿真兼容ABI(ARM64EC),在同一进程或模块中混合本地ARM和模拟x64代码。因此,即使您的应用程序依赖于或加载了您无法控制的x64插件,您仍然可以针对Snapdragon上的Windows对其进行优化。
如何获得支持?
通过Snapdragon上的Windows所获得的机遇正在迅猛发展,因为我们通过自身的生态系统引起了巨大关注。我们已经在Adobe、Zoom、Cisco、Citrix和Sophos等方面(仅举几个例子),通过Snapdragon上的Windows应用程序为合作伙伴们提供帮助,所以我们认为现在是其他开发人员采取同样措施的最佳时机。
如果您需要支持,请查看本公司的Snapdragon上Windows开发人员资源页。您可以找到本人在上文所提及的开源工具、微软公司提供的文档、以及QTI公司为ARM64开发设置的Visual Studio攻略。
对于未来的开发,请继续关注Snapdragon开发人员工具包,微软公司计划近期内推出该工具包。可以将其用于测试您移植动到Snapdragon上Windows的应用程序。
目前,我们的合作伙伴可以通过Microsoft App Assure提供额外的支持。他们不但提供了丰富的信息,而且是一种很好的资源,可以帮助您解决在Snapdragon上Windows应用程序兼容性方面的任何问题。