正文 · 原文
IT之家 11 月 4 日消息,开发者 Computershik 在 Claude 加持下打造了开源项目 Megler,旨在让 Windows 10 Mobile 1703(版本号 10.0.15063)及更高版本系统的手机直接运行 Android 应用。
据开发者介绍,该项目无需模拟 Android 硬件,也不需要为系统添加 Android 子系统,而是通过在普通 Windows 应用中实现 Android 运行环境相关组件,让 Android 应用的 Java 代码和原生 ARM 代码直接在手机处理器上运行。
在技术实现方面,Android 应用通常包含 Java 字节码以及针对 ARM 架构编译的原生动态库。Megler 自行实现了动态链接器、C 语言运行库、Java 运行时及部分 Android 框架接口,并通过 Win32、Direct2D、Direct3D 11 和 ANGLE 等 Windows 技术提供文件访问、线程管理、图形渲染及其他系统功能。
为了提升运行效率,Megler 不会对 ARM 原生代码进行指令集模拟,而是直接在手机处理器上执行,并通过即时编译(JIT)将热点 Java 方法编译为 Thumb-2 指令。同时,项目将界面绘制工作交由独立渲染线程处理,并利用图形处理器完成视图、文本、视频及 WebView 等内容的渲染,以减少主线程负担。
在应用兼容性方面,Megler 已支持运行部分采用 Java、Kotlin 开发的 Android 应用,以及基于 NativeActivity 或 Unity IL2CPP 构建的游戏。支持运行官方 Google Play 商店及 Google Play 服务,用户可以登录 Google 账号、搜索应用并直接下载安装。此外,项目集成了基于 Chromium 128 的 Android System WebView,可借助图形处理器渲染网页内容。
开发者强调,Megler 能够调用 Windows Hello 响应 Android 应用的生物识别请求,并支持接收短信验证码、调用手机摄像头、使用锁屏媒体控制功能,以及通过 Windows Media Foundation 解码 H.264、H.265、AAC 和 MP3 等格式的媒体内容。手机本地文件夹也会映射为 Android 应用可访问的 /sdcard 路径。
不过,Megler 目前仍存在一些限制。由于 Windows 10 Mobile 手机采用 32 位环境,该项目暂时无法运行仅提供 64 位 ARM 原生代码的 Android 应用,也不支持 Vulkan 图形 API,且单个应用的可用地址空间受限于 32 位进程的约 2GB 上限。此外,手机需要开启开发人员模式、完成互操作解锁,并信任项目提供的安装证书,才能满足代码生成等功能的运行要求。
IT之家注意到,Megler 现可直接导入 APK、APKS 和 XAPK 格式安装包,也可以通过 Google Play 安装应用。用户还可以将已安装的 Android 应用转换为独立的 Windows 应用,使其拥有单独的开始屏幕磁贴、进程、内存空间和任务切换器入口,感兴趣的用户可以前往项目的 GitHub 页面(点此访问)。
开发者还将 Megler 与微软此前推出的 Project Astoria 进行了比较。Project Astoria 是微软在 2015 年公布的 Windows 10 Mobile Android 应用兼容方案,曾在部分 Windows Insider 预览版本中出现,但最终于 2016 年 2 月取消。该项目尝试在 Windows 系统内部运行基于 Android 4.4 KitKat 的兼容环境,而 Megler 则以独立 Windows 应用的形式实现相关功能,不需要微软在操作系统层面集成 Android 子系统,因此更加轻量化。
广告声明:文内含有的对外跳转链接(包括不限于超链接、二维码、口令等形式),用于传递更多信息,节省甄选时间,结果仅供参考,IT之家包含外链的文章均包含本声明。