RAD Studio Amalthea Delphi 13.1 Beta深度解析:Delphi重磅更新,原生支持Windows ARM64EC

这里写自定义目录标题

    • 前言
    • [一、划时代的更新:原生Delphi ARM64EC工具链](#一、划时代的更新:原生Delphi ARM64EC工具链)
      • [1.1 什么是ARM64EC?](#1.1 什么是ARM64EC?)
      • [1.2 Delphi ARM64EC的技术实现](#1.2 Delphi ARM64EC的技术实现)
      • [1.3 迁移注意事项](#1.3 迁移注意事项)
      • [1.4 当前限制](#1.4 当前限制)
    • 二、IDE现代化改进
      • [2.1 Windows 11风格全面适配](#2.1 Windows 11风格全面适配)
      • [2.2 Bookmarks插件深度集成](#2.2 Bookmarks插件深度集成)
      • [2.3 高DPI支持持续增强](#2.3 高DPI支持持续增强)
    • 三、性能革命:LSIF引入
      • [3.1 什么是LSIF?](#3.1 什么是LSIF?)
      • [3.2 LSIF的优势](#3.2 LSIF的优势)
      • [3.3 配置与使用](#3.3 配置与使用)
    • 四、VCL/FMX新特性
      • [4.1 VCL改进](#4.1 VCL改进)
      • [4.2 FireMonkey更新](#4.2 FireMonkey更新)
    • 五、Web开发增强
      • [5.1 服务器推送事件(SSE)支持](#5.1 服务器推送事件(SSE)支持)
      • [5.2 TWinHTTPClient IPv6优化](#5.2 TWinHTTPClient IPv6优化)
    • 六、平台支持更新
      • [6.1 Android API Level 36](#6.1 Android API Level 36)
      • [6.2 iOS 26支持](#6.2 iOS 26支持)
    • 七、已知问题与解决方案
      • [7.1 ARM64EC平台](#7.1 ARM64EC平台)
      • [7.2 通用问题](#7.2 通用问题)
    • 八、升级建议
      • [8.1 适合立即尝试的场景](#8.1 适合立即尝试的场景)
      • [8.2 建议等待的场景](#8.2 建议等待的场景)
      • [8.3 组件开发者注意事项](#8.3 组件开发者注意事项)
    • 结语

前言

近日,Embarcadero发布了RAD Studio Amalthea Beta版本,这是继RAD Studio 13 Florence之后的又一个重要更新。作为一个长期关注Delphi/C++Builder发展的开发者,我认为这次更新有几个亮点值得深入探讨:原生ARM64EC支持、IDE现代化改进、以及代码洞察性能优化。本文将基于官方Beta文档,为大家详细解读这些新特性。

一、划时代的更新:原生Delphi ARM64EC工具链

1.1 什么是ARM64EC?

ARM64EC(Emulation Compatible)是微软为Windows on ARM设计的应用程序二进制接口(ABI)。它的最大特点是允许原生ARM64代码与模拟的x64代码无缝互操作。这意味着:

  • ARM64:纯原生ARM应用,只能加载ARM64模块
  • X64:通过模拟运行的Intel x64应用,只能加载Intel模块
  • ARM64EC :原生ARM应用,同时支持加载ARM和Intel x64模块

1.2 Delphi ARM64EC的技术实现

Delphi的Windows ARM工具链基于LLVM 20构建,使用Microsoft UCRT进行核心RTL操作,并通过LLDB进行调试。支持创建在Windows 11 ARM设备上运行的原生ARM二进制文件,完全绕过Intel模拟层。

delphi 复制代码
// 条件编译示例:针对不同平台编写特定代码
{$IFDEF ARM64EC}
// ARM64EC特定代码
ShowMessage('Running on ARM64EC native');
{$ELSEIF Defined(WIN64)}
// 传统x64代码
ShowMessage('Running on x64 emulation');
{$ENDIF}

1.3 迁移注意事项

1. 条件定义的变化

定义 Win64 ARM64EC
CPUX64
CPUARM64
ARM64EC
ASSEMBLER

2. 内联汇编的替代方案

ARM64EC不支持内联汇编,需要改用Pascal实现:

delphi 复制代码
function InterlockedBitTestAndReset(Base: PInteger; Offset: Integer): ByteBool;
{$IF not Defined(ASSEMBLER)}
var
  Mask: Cardinal;
  Old: Integer;
begin
  Mask := Cardinal(1) shl (Offset and 31);
  Old := InterlockedAnd(Base^, Integer(not Mask));
  Result := (Cardinal(Old) and Mask) <> 0;
end;
{$ELSE}
// 原有的汇编实现
{$ENDIF}

3. Windows API的特殊处理

在ARM64EC中,不能直接使用VirtualAlloc分配可执行内存,需要使用VirtualAlloc2

delphi 复制代码
var
  Param: MEM_EXTENDED_PARAMETER;
begin
  FillChar(Param, SizeOf(Param), 0);
  Param.TypeAndReserved := Ord(MEM_EXTENDED_PARAMETER_TYPE.MemExtendedParameterAttributeFlags);
  Param.Ulong64 := MEM_EXTENDED_PARAMETER_EC_CODE;
  Block := VirtualAlloc2(GetCurrentProcess, nil, PageSize, 
                         MEM_COMMIT, PAGE_EXECUTE_READWRITE, @Param, 1);
end;

1.4 当前限制

  • ❌ 不支持动态包(runtime packages)
  • ❌ 无法构建RAD Server模块
  • ⚠️ 需要通过PAServer调试(即使直接在ARM设备上运行)
  • ⚠️ LLDB不支持"混合模式"调试

二、IDE现代化改进

2.1 Windows 11风格全面适配

Amalthea引入了全新的Windows 11浅色/深色主题,支持:

  • 窗口圆角效果
  • 增强的IDE搜索控件
  • 可配置的编辑器标签样式(现代方角/圆角)

2.2 Bookmarks插件深度集成

原Parnassus开发的Bookmarks插件现已完全集成到IDE中:

快捷键操作:

  • Ctrl+B:放置/移除书签(自动编号)
  • Ctrl+Alt+←/→:在书签间跳转
  • Ctrl+Shift+B:放置临时插入符书签
  • Esc:跳回上一个插入符书签

新特性:

  • 无限书签数量
  • 书签面板(View | Tool Windows | Bookmarks)显示代码上下文
  • OpenTools API更新,支持编程方式管理书签
delphi 复制代码
// OpenTools API新接口示例
IOTAEditView145 = interface(IOTAEditView140)
  ['{5EBBa00C-059D-4571-B30A-328D1264BBB8}']
  procedure ClearAllBookmarks;
end;

2.3 高DPI支持持续增强

  • MigrationTool.exe支持Per-Monitor v2
  • 位图样式设计器DPI感知
  • License Manager UI全面更新,支持VCL样式
  • "附加到进程"对话框显示进程图标

三、性能革命:LSIF引入

3.1 什么是LSIF?

LSIF(Language Server Index Format)是本次更新的重头戏。它通过预生成索引文件,显著提升代码洞察性能:

传统方式: 每次需要代码洞察时调用编译器
LSIF方式: 直接使用预生成索引,避免编译器调用

3.2 LSIF的优势

  • ✅ 为VCL、FMX、FireDAC等核心框架提供预建索引
  • ✅ 常见导航操作(如Go To Definition)零延迟
  • ✅ 减少后台编译导致的IDE卡顿
  • ✅ 支持第三方库(需开发者自己生成LSIF)

3.3 配置与使用

在项目选项中启用LSIF生成:

复制代码
Project Options > Building > Delphi Compiler > 
  Generate LSIF file for package symbols

如需完全禁用LSIF(Beta 4942):

  1. 打开注册表
  2. 导航至 HKEY_CURRENT_USER\Software\Embarcadero\BDS\XXX\LSP
  3. 创建 EnableLsffalse 的REG_SZ值

四、VCL/FMX新特性

4.1 VCL改进

Windows 11专属样式:

  • Windows Modern
  • Windows Modern Dark
  • Windows Modern SlateGray
  • Windows Modern Green

对象检查器表达式支持:

现在可以直接在Left、Top、Height、Width属性中输入表达式:

delphi 复制代码
// 输入:100 + 80
// 按Enter后自动转换为:180

DFM文件96 DPI保存选项

解决团队开发中不同分辨率显示器的协作问题:无论设计时DPI如何,都可以选择以96 DPI保存表单文件。

4.2 FireMonkey更新

  • TTintedGlyph控件:支持ImageList图标重新着色
  • Linux样式和视图在IDE设计器中可见
  • DirectX纹理过滤支持
  • TFrame嵌入表单的边距管理优化

五、Web开发增强

5.1 服务器推送事件(SSE)支持

服务端(WebBroker支持Indy/Apache/IIS/FastCGI):

delphi 复制代码
// 新类:TWebResponseStream
// 新方法:BeginStream、BeginEventsStream
var
  Stream: TWebResponseStream;
begin
  Stream := Response.BeginEventsStream('text/event-stream');
  try
    Stream.Write('data: ' + GetCurrentTime + sLineBreak + sLineBreak);
  finally
    Stream.Free;
  end;
end;

客户端(跨平台):

delphi 复制代码
uses System.Net.HttpSse.pas;

// 使用THTTPEvent和THTTPEventSource

5.2 TWinHTTPClient IPv6优化

新增选项启用IPv6快速回退,避免60秒超时阻塞:

delphi 复制代码
// 自动配置,无需手动干预

六、平台支持更新

6.1 Android API Level 36

  • targetSdkVersion更新至36
  • 自动检测Android SDK路径(支持4种策略)
  • 支持生成包含DT_SONAME的.so文件

6.2 iOS 26支持

  • iOS API头文件升级
  • 最低支持版本从11.0提升至15.0
  • Firebase SDK更新至12.7.0
  • AdMob SDK更新至12.14.0

七、已知问题与解决方案

7.1 ARM64EC平台

  1. 组件添加限制:切换到ARM64EC后无法添加新组件

    • 临时方案:切回Win64 Intel添加组件后再切回
  2. LoadPackage调用失败

    • 团队计划后续返回更具体错误信息
  3. PAServer崩溃

    • 临时方案:删除安装目录下的paServer配置文件

7.2 通用问题

  • 64位IDE中结构面板不显示编译器错误
  • 某些场景下DelphiLSP数据异常(导航面板灰色)

八、升级建议

8.1 适合立即尝试的场景

  • 新项目开发,特别是面向Windows ARM设备
  • Web应用(SSE特性)
  • 需要现代化UI的VCL应用

8.2 建议等待的场景

  • 现有大型项目迁移(尤其是含大量汇编代码)
  • 依赖运行时包的应用
  • RAD Server模块开发

8.3 组件开发者注意事项

delphi 复制代码
type
  [ComponentPlatforms(pidWin32 or pidWin64 or pidWinARM64EC)]
  TMyComponent = class(TComponent)
  // 或使用通用常量:pidAllPlatforms

结语

RAD Studio Amalthea Beta展示了Embarcadero对未来的清晰规划:拥抱ARM生态、现代化开发体验、性能优化。特别是ARM64EC的原生支持,为Delphi在Windows ARM设备上的应用开辟了全新可能。虽然目前还存在一些限制,但方向无疑是正确的。

建议感兴趣的开发者尽快下载Beta版本体验,通过官方Quality Portal(https://qp.embarcadero.com)反馈问题,共同参与RAD Studio的演进。

特别提醒 :Beta版本不建议在生产环境使用,泰山老父官网建议在虚拟机或专用测试机安装体验。

相关推荐
YoungHong19924 小时前
Windows Terminal:AI时代的现代化命令行方案
windows·terminal·powershell7
love530love5 小时前
【OpenClaw 本地实战 Ep.2】零代码对接:使用交互式向导快速连接本地 LM Studio 用 CUDA GPU 推理
人工智能·windows·gpu·cuda·ollama·lm studio·openclaw
编码者卢布5 小时前
【Azure App Service】为什么启用 Health Check 后应用服务实例持续显示 Unhealthy?
windows·azure
云小逸15 小时前
【nmap源码分析】Target 类——目标主机信息管理的核心引擎
服务器·windows·nmap
x***r15115 小时前
VMware17安装步骤详解(附虚拟机创建与常见问题解决)
windows
微八度16 小时前
.Net Web API应用部署成windows服务
windows·.net·web api·winddows服务
脆皮瞎17 小时前
openclaw本地部署(windows)
windows·ai·openclaw
小云小白1 天前
windows Wsl2 搭建rockyLinux podman 容器开发环境
windows·podman·wsl2
凯子坚持 c1 天前
在 openJiuwen 里把在线小工具搬回本地
人工智能·windows·stable diffusion·openteledb·openclaw