博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
微软发布UWP Bridge项目将一切应用转为Windows应用
阅读量:5780 次
发布时间:2019-06-18

本文共 2234 字,大约阅读时间需要 7 分钟。

在不久前的Build 2015开发者大会上,微软宣布了Windows通用平台UWP(Universal Windows Platform),基于此平台开发的App可在所有Windows 10以上的设备上运行。日前,微软发布了,内含、、、四个项目,可将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平台上正确的运行。它的主要工具是一个转换程序,受到项目的启发但更加复杂,因为它允许开发者进行自定义。转换程序会对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中文站投稿或者参与内容翻译工作,请邮件至。也欢迎大家通过新浪微博(,),微信(微信号:)关注我们,并与我们的编辑和其他读者朋友交流(欢迎加入InfoQ读者交流群)。

转载地址:http://tauyx.baihongyu.com/

你可能感兴趣的文章
Redis学习手册(内存优化)
查看>>
springboot系列十 Spring-Data-Redis
查看>>
excel进行矩阵计算
查看>>
iOS: Block的循环引用
查看>>
变量声明提升1
查看>>
Magento XML cheatsheet
查看>>
haproxy mysql实例配置
查看>>
MySQL 8.0 压缩包版安装方法
查看>>
JS prototype 属性
查看>>
iphone-common-codes-ccteam源代码 CCEncoding.m
查看>>
006_mac osx 应用跨屏幕
查看>>
nginx中配置文件的讲解
查看>>
HTTP库Axios
查看>>
CentOS7下安装python-pip
查看>>
陀螺仪主要性能指标
查看>>
gen already exists but is not a source folder. Convert to a source folder or rename it 的解决办法...
查看>>
20个Linux服务器性能调优技巧
查看>>
填坑记:Uncaught RangeError: Maximum call stack size exceeded
查看>>
SpringCloud之消息总线(Spring Cloud Bus)(八)
查看>>
实时编辑
查看>>