14

多种设备自动适配?鸿蒙是不是在吹牛逼?

 3 years ago
source link: https://zhuanlan.zhihu.com/p/78356560
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

多种设备自动适配?鸿蒙是不是在吹牛逼?

同济大学 计算机科学与技术硕士在读

据报道,在2019华为开发者大会上,华为余承东正式宣布推出Harmony OS鸿蒙。

10个问题,让你360度无死角了解华为鸿蒙OS - 鸿蒙OS、Harmony OS,华为开发者大会 - IT之家​www.ithome.com

其中有一张PPT上,鸿蒙OS号称将一举解决多种屏幕适配的难题。控件通过自动适配的方法,可以在手机、车机、大屏这几种跨越了竖屏和横屏的终端上得到良好的安排。

v2-e898eb72cf6cebb3fc529c85767fb3fb_720w.jpg

关于鸿蒙OS的其他方面的质疑自有高人来分析,我只关心鸿蒙是如何能做到这一点的。因为在我之前的回答中有说过,自动适配技术虽然理想很丰满,但是现实是开发者永远会选择抛弃用户少的那种屏幕

我可以下个断言,如果鸿蒙OS能够诞生并且大量部署在各种设备上,竖屏永远会比横屏的优先级要高得多。注意,这里以屏幕而不是设备为分类来讨论应用适配问题,code behind部分的性能以及平台差异问题暂时可以不谈。也就是说,就图中这个示例而言论重要性,手机>>大屏>车机

“通过拖拽方式实现自动适配”

这一点是我最大的疑惑,我甚至怀疑是写新闻的小编不懂技术信口开河,由于我没有看HDC 2019,就谈一谈自己的一点看法吧。

别人是怎么做的?不妨先看看微信小程序

在微信Windows版2.7.0更新中,首次带来了在桌面上运行小程序的特性:

无论如何,腾讯算是成功实现了在安卓、IOS、Windows上同一套代码无需单独适配就能运行的目标。而且效果很不错。但是代价是什么?

在微信开发者工具中,你只可以选择开发竖屏的小程序,横屏事实上几乎不被支持

在2.3.0版本时,才加入了横屏的一个api。微信团队这样做不是没有道理的。如果横屏竖屏一把抓,是根本达不到现在的开发进度的,所有只能委屈ipad用拉胖的竖屏版小程序。那么,有没有不抛弃横屏的方法?

UWP:我全都要!

微软从一开始就为win10定下了很艰巨的目标:一套UI代码,这些全都要支持:

  1. 尺寸从5寸84寸
  2. 竖屏横屏
  3. 分辨率从480P4K
  4. 窗体大小不能写死

可以说比鸿蒙OS吹的牛逼多了,为此UWP用了很多先进的思维来试图简化实现这个目标的难度。

但是尽管如此,布局问题真的不是拖拖拽拽控件就能解决的。也不是靠自带的库,控件就能自己找到合适的位置。

同样是B站,左边是UWP版,右边是微信小程序。UWP的思路是这样:如果的窗体被限制了,不能展示更多内容,就触发竖屏模式,此时跟小程序布局是相同的。

如果窗体被拉了,就触发横屏模式,此时多出来的展示区域就被用来显示更丰富的内容

这种适配方法已经是相对来说事半功倍的一种了,但是由于Windows Phone被砍了,竖屏模式实质上已经被抛弃了,微软的开发资源全面倒向了针对Desktop设备的优化。UWP专门适配多种设备的优势在传统Windows开发技术面前也变得微不足道,即使思路上再先进、技术上再成熟,终究还是会败给没人用这一点上。

微信小程序成功的经验和UWP失败的教训,归根结底就是一点:天平永远会不自觉地倾向于用户多的那一边,无论是开发者还是技术平台。自动适配多设备的思路被抛弃不是因为技术难度问题,而是有着极其现实的原因。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK