eRCP (embedded Rich Client Platform) 是 Eclipse RCP 的嵌入式裁剪版,保留核心運行時、eSWT、eJFace、eUpdate Manager、eWorkbench 等組件,針對移動設備的有限存儲、觸摸屏/按鍵交互、多屏適配等特性優化。支持平台:Windows Mobile 2003/5、Win32 桌面、Nokia Series 80。
Window > Preferences > Plug-in Development > Target Platform 指向 eRCP 運行時目錄charconv.zip、classes.zip、locale.zip、map.zip| 模型 | 特徵 | 適用場景 |
|---|---|---|
| 獨立 eRCP 應用 | 每 JVM 一個 GUI,擁有獨立 Display/Shell | 全屏獨佔式嵌入式應用 |
| eWorkbench 應用 | 多應用共享單 JVM/Workbench 窗口,支持多屏切換 | 手持設備多應用共存、外屏/內屏差異化顯示 |
public class Application implements IPlatformRunnable {
public Object run(Object args) {
Display display = PlatformUI.createDisplay();
Shell shell = new Shell(display, SWT.CLOSE);
Label label = new Label(shell, SWT.NORMAL);
label.setText("Hello eRCP!");
label.setBounds(100, 80, 100, 20);
shell.setSize(300, 200);
shell.open();
while (!shell.isDisposed()) {
if (!display.readAndDispatch()) display.sleep();
}
display.dispose();
return IPlatformRunnable.EXIT_OK;
}
}
<extension point="org.eclipse.ui.views">
<view id="org.eclipse.testworkbenchapp.views.SampleView"
class="org.eclipse.testworkbenchapp.views.SampleView"
name="Sample View" />
</extension>
<extension point="org.eclipse.ercp.eworkbench.applications">
<application id="org.eclipse.testworkbenchapp.application"
name="Test workbench app" singleton="true">
<views normal="org.eclipse.testworkbenchapp.views.SampleView"/>
</application>
</extension>
OK, INFO, WARNING, ERROR, CANCELworkspace/.metadata/.loggetDefault().getLog().log(new Status(...))\My DocumentseRCP 是 RCP 子集,繼承大部分 API,犧牲桌面特有功能(如複雜拖拽、大內存模型),增加移動專屬擴展(觸摸手勢、軟鍵映射、多屏適配、小屏佈局優化)。
遷移建議:桌面 RCP 遷移 eRCP 時,優先檢查 SWT 組件兼容性、線程模型差異(UI 線程單一性更嚴格)、持久化存儲路徑權限。