200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > 安卓原生运行Win11 再跑 Apk 搁着套娃呢!

安卓原生运行Win11 再跑 Apk 搁着套娃呢!

时间:2020-02-06 00:12:06

相关推荐

安卓原生运行Win11 再跑 Apk 搁着套娃呢!

在 Android 手机上装 Windows 11,再运行 Android Apk。PC & 手机,都在向着相同的方向发展。

大家好,这里是承香墨影!

前段时间,微软带来了全新的 Windows 11 更新。其中最夺人眼球的,大概就是宣布将原生支持 Android App,无需在通过虚拟机绕一道,是原生支持。这无疑是一个新的开始,这将极大的改变 PC 的使用方式。

而我最近逛 B 站的时候,偶然发现 B 站有个 UP 主「极客湾Geekerwan」,尝试在安卓手机上,原生运行 Windows 11。不是类似 Limbo 模拟器,也不是远程镜像,更不是虚拟机,而是真实的原生运行 Windows 11。

上图是运行效果,骁龙 845 处理器,八个核心全部可以识别,你甚至可以用它玩儿 PC 上的大型游戏。

以后再有小学生问:"手机能玩吗?",不能喷了。

实现原理

ARM 的 Windows

在 Android 手机上,安装 Windows 听上去不可思议。但其实也能理解,毕竟自从搭载高通处理器的 Surface Pro X 发布之后,Windows 就原生支持 ARM 架构,甚至很多高通芯片的驱动,都能直接从 Windows On ARM 笔记本上提取出来。

那么对于 ARM 架构的手机而言,系统和驱动都有了,想要运行 Windows 系统好像也不那么难了。

但其实还是有一些难点的,毕竟系统和驱动,都不是针对手机而设计的。

启动系统 UEFI

我们回顾一下 Android 系统的启动过程,在手机启动时,首先会启动 Bootloader 程序。

Bootloader 会检查手机硬件,并加载运行参数,最后运行 Kernel 内核。然后启动 init 进程,它是 Android 系统的第一个进程,之后启动 Zygote,然后通过 Zygote fork 出 Android 的各个系统进程。

在 Windows 中,也有类似职责的程序,叫做UEFI,它用来定义操作系统与系统固件之间的联系。

简单来说,无论是 Bootloader 或是 UEFI,都是系统与硬件之间的对接层,没有它们,软件系统就无法操作对应的硬件。

前面提到,系统和驱动我们都有了,现在只需要编译一个为手机硬件而设计的 UEFI,然后在 Bootloader 阶段加载它,就可以在 Android 手机上启动 Windows 11 了。

看似简单,其实还有一些小问题需要解决。正常情况下,Android 设备是无法直接加载 UEFI 的,手机的硬件厂商,在固件上都会做一道签名验证。这里就需要用到一个开源项目 Renegade Project。

Renegade Project 这个项目,一方面借助 edk2 给手机编译 UEFI,使得可以在移动设备上安装 Windows 和 Linux 系统,另一方面,也做好了驱动的适配工作(包括修复 ACPI),让 Windows 系统,可以识别出手机设备上的这些硬件。

参考:https://forum.renegade-/t/845-windows/36

有兴趣研究细节的可以参考上面这个文档。

不过这个项目并非所有手机上都可以完美运行,之前提到了骁龙 845,但也并非所有 845 的设备都可以。现阶段支持的比较好的,就只有一加 6 和 6T 了,只能说一加 V5,其他设备都或多或少会有一些小问题。

准备好系统、驱动、UEFI 后,我们就可以通过键鼠、U盘等工具,在 Android 手机上运行 Windows 11 系统了。流程较为繁琐,这里就不描述了,有兴趣的可以直接在文末看 UP 主的视频。

运行效果

Android 手机 + Windows 11 这种搭配,要看性能当然要跑个分看看。

这里使用 CINEBENCH R23 进行跑分,足足跑了 50 分钟才得到结果。

单核分数 254,多核 1011,这骁龙 845 的八颗核心,跑出来的还没有 16 年出的 i7 7700k 的单核高呢。这 1011 的多核分数,只能接近 13 年的 i5 4200U 的水平。

单核最多只有酷睿2 U2160 的水平,仅比 Atom 略强一点,不过已经比 PS4 的美洲豹性能强了。

这个结果也能理解,毕竟 845 本来 A75 的芯片就没多少性能,这里还要经过一层转译去模拟 x86,性能自然是有一些损耗的。

从测试游戏的数据来看,孤岛危机 3 的图形可以正常渲染,只是 FPS 只能到个位数的水平,只能说能看,玩起来还是费劲的。在降低分辨率后,可以达到 30 帧的 FPS。

不过在降低分辨率之后,玩儿古墓丽影之类的游戏,可以做到 50 FPS,玩起来还是没什么问题的。

小结时刻

这里虽然已经做到 Android 手机上运行 Windows 11 系统,但还是有不少问题,例如运行 64 位程序时,无法调用 GPU,只能吃 CPU 性能(Windows 会用 CPU 模拟 GPU)。

并且也没法真的在 Windows 11 上安装一个 Apk 看看,毕竟现在的版本还不支持,据微软消息,大约到等到 年才能真的在 Windows 11 上,原生安装运行 Apk 了。

不过可以再装个 Android 虚拟机,再通过虚拟机运行 Apk,套娃的快乐。

今天的内容就到这里,推荐看看原视频。大家看看热闹即可,毕竟我们多数情况下也不像科技区 UP 主那么能倒腾。

-- End --

references:

https://forum.renegade-/t/845-windows/36

/edk2-porting

本文对你有帮助吗?留言、转发、点好看是最大的支持,谢谢!

推荐阅读:

把RecyclerView撸出花儿来,自定义无限循环的LayoutManager

面试问Handler内存泄露的场景,别就只知道静态内部类&弱引用!

try-catch OOM,可行吗?

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。