在 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-project.org/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 看看,毕竟现在的版本还不支持,据微软消息,大约到等到 2022 年才能真的在 Windows 11 上,原生安装运行 Apk 了。

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

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

-- End --

references:

  • https://forum.renegade-project.org/t/845-windows/36

  • https://github.com/edk2-porting

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

推荐阅读:

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

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

try-catch OOM,可行吗?

安卓原生运行Win11 再跑 Apk,搁着套娃呢!相关推荐

  1. 虚拟机运行win11以及安装apk

    安装win11 在虚拟机中安装 win11, 首先需要 VMware Workstation Pro 以及 win11 的镜像 准备好这两个后,就是在 VMware 中安装 右击我的计算机选择 &qu ...

  2. 虾米回应“关闭”消息:不予置评;明年 Win 10 或将原生运行安卓应用;Perl 项目治理新规| 极客头条...

    整理 | 屠敏 头图 | CSDN 下载自东方 IC 快来收听极客头条音频版吧,智能播报由出门问问「魔音工坊」提供技术支持. 「极客头条」-- 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极 ...

  3. 安卓盒子运行 linux,全志 Allwinner A20 机顶盒刷入原生 Debian

    花费 60 大洋购买了一台天敏电视精灵 3 安卓机顶盒.买来的目的就是为了刷入原生的 Debian 或其他发行版本. 查看了一下具体的硬件:全志 Allwinner A20 双核 CPU,Cortex ...

  4. ncnn填坑记录八:将自己训练的模型打包为APK并部署到安卓端运行

    上一篇:ncnn填坑记录七:examples/squeezenet.cpp代码阅读 做一个分类任务,模型选取的mobilenetv3,训练好模型,并按前文依次转换为onnx.ncnn后,参考官方htt ...

  5. 微软商城过半android,爆料:微软 Win10 2021 年版本将支持原生运行安卓 App

    IT之家 11 月 25 日消息 外媒 Windows Latest 报道,微软正在开发一个新项目,通过支持原生运行安卓 App,以弥补微软商店(也称 Windows 商店)中的 "应用空白 ...

  6. 安卓怎么用抖音做锁屏_安卓手机忘了解锁密码怎么办?学会3招,不用再跑维修店...

    手机在生活中的重要性不言而喻,不少用户已经习惯用手机处理生活中所遇到的衣食住行问题,同时手机中保存的用户信息以及个人秘密也越来越多.因此很多消费者都习惯于给手机设置密码,防止避免个人信息泄露或者是个人 ...

  7. Uniapp——使用安卓原生插件

    Uniapp--使用安卓原生插件 1. 开发环境 2. 解压SDK压缩包 3. 导入UniPlugin-Hello-AS项目.并切换为project显示 4. 可删除提供的demo文件 5. 新建mo ...

  8. 【TTS】uni-app语音播报app开发 / MT-TTS安卓原生自带语音合成插件(免费无限次)

    什么是TTS? TTS是Text To Speech的缩写,即"从文本到语音",是人机对话的一部分,让机器能够说话.TTS是语音合成应用的一种. 在程序开发中,有很多TTS的插件, ...

  9. 安卓运行php程序,安卓怎么运行php?

    安卓怎么运行php? 一.安装Paw server (1)将de.fun2code.android.pawserver.apk这个安装包放在电脑上某个文件夹.(apk可以在谷歌应用中获取) (2)手机 ...

最新文章

  1. Error:Unsupported method: BaseConfig.getApplicationIdSuffix(). The version o
  2. whoosh学习(1)
  3. c语言编程:输入一个数看它是不是素数
  4. poj3264 - Balanced Lineup(RMQ_ST)
  5. python 基础命令-Python 命令行(CLI)基础库
  6. 简便的chrome插件安装
  7. python内置序列类型_Python序列内置类型之元组类型详解
  8. 阿里面试_技术问题和经验总结
  9. 如何在内部 Stash 服务器上添加 hook
  10. np.percentile获取中位数、百分位数
  11. music的matlab程序,MUSIC算法matlab程序
  12. linux合并ts文件吗,UNIX LINUX MACOS shell 下载合并*.ts视频
  13. vue中变量名前加三个点代表什么意思
  14. Mac电脑如何调整鼠标光标大小?
  15. dedecms织梦后台账号或密码忘记了怎么办?
  16. 【百度AI开放平台】植物识别
  17. steam游戏存档迁移
  18. 贪婪洞窟2一直显示连接服务器失败,贪婪洞窟2公测服务器应急情况处理公告
  19. 外推法的matlab程序
  20. DTI脑网络构建 详细介绍处理过程以及PANDA的使用

热门文章

  1. 什么是一体化管理体系
  2. 阿里云和腾讯云服务器10M带宽能支持多少人在线?
  3. js操作cookie有效期至当天晚上23点59分59秒的cookie
  4. 串口工具Kermit
  5. react钩子_使用Web动画API和React钩子创建高性能动画
  6. 微带线microstrip和带状线stripline
  7. 如何解决app store显示invalid address的问题
  8. 新兴实践_新兴文件系统简介
  9. jQuery笔记——工具函数——jQuery标志
  10. MobaXterm 全能型开源远程终端