10 月 23 - 25 日,QCon 上海站即将召开,现在大会已开始正式报名,可以享受 8 折优惠 了解详情
写点什么

微软发布 UWP Bridge 项目将一切应用转为 Windows 应用

  • 2015-05-07
  • 本文字数:1847 字

    阅读完需:约 6 分钟

在不久前的 Build 2015 开发者大会上,微软宣布了 Windows 通用平台 UWP(Universal Windows Platform),基于此平台开发的 App 可在所有 Windows 10 以上的设备上运行。日前,微软发布了 UWP Bridge ,内含 Astoria Islandwood Centennial Westminster 四个项目,可将 Android、iOS、传统 Windows,以及 Web 网站转换为 UWP Apps。

Astoria 项目

Astoria 项目的目标是帮助开发者将 Android 应用移植到 UWP 平台上,最大限度的重用已有的 Android 代码,并简化移植的工作。它的主要特性有:

  • 尽量多的重用 Android 代码,甚至完全重用。
  • Java 和 C/C++ 代码都能支持,可使用自己喜欢的 IDE 进行开发调试,如 IntelliJ、Android Studio 或 Eclipse。
  • Gradle 可以用一份代码来生成 Android 和 Windows 两个目标平台的应用。
  • 该项目提供的 SDK 包括一个 Windows 模拟器,代码可通过 USB 或 WiFi 部署到真机上,调试和通常的 Android 项目一样。
  • 目前只支持 Android 4.4.
  • 移植的 Android 应用目前只支持智能手机和平板设备,不支持 PC、HoloLens 等其它 Windows 设备。
  • 部分 Android UI 被转换为 Windows 原生 UI,但不能做到完全转换。
  • 移植通过将对 Android 系统的调用转发到对应的 Windows API,并未使用 VM 或 runtime,以避免额外的 CPU 消耗。
  • 对 GMS、摄像头、传感器等的调用被直接转发至对应的 Windows API,无须修改代码。
  • 可使用 Java 来添加 Windows 独有的特性,如动态磁贴。

这个项目目前还处于测试阶段,会根据开发者的需求进行改进。微软为该项目的早期应用者提供了一个静态代码检查工具,以查看有多少比例的代码能够被重用,以及需要修复的 Bug。微软在 Build 2015 大会期间用 Tumblr App 演示了该项目的成果,具体可查看会议视频

Islandwood 项目

Islandwood 项目对应的是 iOS 应用的移植,我们已经知道的有:

  • 可将 Xcode 项目导入到 Visual Studio,并使用 VS 进行开发和调试。
  • 目前支持 Objective-C,未来将支持 Swift。
  • 通过将 iOS API 转发到对应的 Windows API,尽量减少移植过程中的代码的修改。
  • 支持 iOS API 的一个子集,最常用的 API 被最先支持,已经支持的有 UIKit、CoreAnimation、ARC、Foundation 等。不跟踪特定版本的 iOS。
  • 对绝对布局的 iOS 应用提供自定义布局模式。

在 Build 2015 大会上微软以 Candy Crash Saga 移植到 Windows Phone 来演示了该项目成果。它只修改了很少的代码,并将 iOS 应用内支付、本地通知等替换为 Windows 平台的功能。

Centennial 项目

Centennial 项目的目标是将传统 Windows 应用:Win32、.NET、COM 等移植到 UWP 上,据 Windows 架构师 John Sheehan 表示,Centennial 项目已能转换超过 1600 万个传统 Windows 应用。

Centennial 并不改变程序的代码,它只是让程序在 UWP 平台上正确的运行。它的主要工具是一个转换程序,受到 App-V 项目的启发但更加复杂,因为它允许开发者进行自定义。转换程序会对 MSI 文件进行分析,记录传统 Windows 应用在安装过程中的动作,然后生成一个 AppX,在这个过程中它还会要求你制作该应用的动态磁贴。

然后,新应用的安装过程中,所有的资源文件都被安装在应用的目录里,但应用会以为资源文件在原来正确的地方,注册表动作则单独生成一个.reg 文件,它只有在应用运行时才会被加载。因为应用间的资源是隔离的,因此“DLL Hell”也自然消失了。

传统 Windows 应用还有一些权限问题,需要系统高级权限的应用将只能在 PC 等设备上运行,而不能运行在 Xbox、HoloLens 上。

在 Build 2015 上微软以 Adobe Photoshop Elements 13 做了演示,唯一做的代码修改是 Adobe 的授权系统,因为通用应用有自己的授权机制,因此这在将来是不必要的。

想了解更多 Centennial 项目信息可下载 Build 2015 的会议视频

Westminster 项目

Westminster 项目是介绍比较少的一个项目,它是将 Web 网站生成 UWP 应用,需要的只有 URL。开发者还可以调用系统 API 来指定 Microsoft Edge,或使用 Apache Cordova 打包。打包后的 App 可以发布到 Windows Store。之前微软发布过 App Builder,里面也有类似的功能。

这四个项目目前都还处于早期阶段,在今年夏天会公布更多内容,并开放 SDK 下载。你可以注册以了解项目的最新动态,如果想了解更多关于UWP 平台的内容,可以看它的官方文档


感谢崔康对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们,并与我们的编辑和其他读者朋友交流(欢迎加入 InfoQ 读者交流群)。

2015-05-07 07:2511959
用户头像

发布了 164 篇内容, 共 115.1 次阅读, 收获喜欢 392 次。

关注

评论

发布
暂无评论
发现更多内容

MCP Server 开发实战 | 大模型无缝对接 Grafana

阿里巴巴云原生

阿里云 云原生 Grafana

Apache Doris 2025 Roadmap:构建 GenAI 时代实时高效统一的数据底座

SelectDB

AI 数据湖 存算分离 实时分析 日志场景

Nacos-Controller 2.0:使用 Nacos 高效管理你的 K8s 配置

阿里巴巴云原生

阿里云 云原生 nacos

从开发者视角解读 Google Cloud Next 25

声网

CST联合Isight进行天线DOE设计

思茂信息

cst cst电磁仿真 CST Studio Suite

阜博集团完成对 PEX 的收购

财见

CAD如何利用两点间的中点解决镜像中心线问题

极客天地

与AI深度融合的Go开发框架sponge,解决使用cursor、trae等AI辅助编程工具开发项目时的部分痛点

vison

golang 代码生成 AI助手

CAD缩放后有符号不显示怎么办

极客天地

Claude 语音模式曝光:支持多音色和文件上传;谷歌发布和海豚对话的语音模型 DolphinGemma|日报

声网

利用代理 IP 突破反爬限制,实现跨境电商数据高效爬取

Yan-英杰

Python 爬虫 爬虫实战

DeepSeek Function Calling调用实践

AI时代的一滴水

Python LLM模型 Function Calling DeepSeek v3

CodeBuddy 焕新升级: 软件开发智能体 Craft 重磅发布

CodeBuddy

腾讯云 腾讯 AI编程 CodeBuddy

【活动预告】4.19 相约上海,详解数据库与 AI 的理念融合

Apache IoTDB

如何高效使用 Text to SQL 提升数据分析效率?四个关键应用场景解析

镜舟科技

数据湖 数据分析 分析型数据库 StarRocks Text to SQL

KWDB 开源社区走进重庆大学

KaiwuDB

数据库 kwdb数据库 校园行

Cision宣布获得2.5亿美元新资金

财见

代码成为 "乐高积木"——AI 时代的开发革命

代码制造者

#AI编程

阿里云 MSE Nacos 发布全新“安全防护”模块,简化安全配置,提升数据保护

阿里巴巴云原生

阿里云 云原生 nacos MSE

Flutter 与 uni-app 的深度对比:鸿蒙开发的最佳选择竟是原生开发

坚果

鸿蒙 HarmonyOS

直播预告 | KWDB 数据库安装使用快速上手

KaiwuDB

数据库 直播

CAD中的草图绘制功能

极客天地

哈尔滨等保:保护企业终端数据

黑龙江陆陆信息测评部

前端热更新:无声引擎驱动中国互联网的数字化转型

xuyinyin

字节跳动开源 Godel-Rescheduler:适用于云原生系统的全局最优重调度框架

字节跳动开源

云原生 全局最优调度 多策略协同 高吞吐执行 生产级稳定性

无感改造,完美监控:Docker 多阶段构建 Go 应用无侵入观测

阿里巴巴云原生

golang 阿里云 云原生

Kube-Proxy 可观测性最佳实践

观测云

Kubernetes

海信三筒洗衣机全系配置及价格公布,疯狂宠粉!科技创新引领产业升级

新消费日报

线上线下畅玩无阻,陪玩系统小程序源码是怎样做到的?

DUOKE七七

php vue.js MySQL uniapp

Serverless MCP 运行时业界首发,函数计算让 AI 应用最后一公里提速

阿里巴巴云原生

阿里云 Serverless 云原生

《Operating System Concepts》阅读笔记:p667-p699

codists

操作系统

微软发布UWP Bridge项目将一切应用转为Windows应用_微软_徐川_InfoQ精选文章