可行性分析
Java SE 程序不能直接運行於 Android,因為:
- Android 使用自定義運行時**(ART/Dalvik)**,不包含完整 JDK 類庫(如 Swing、AWT、JavaFX、Corba 等)。
- Android 應用模型基於四大組件**(Activity、Service、BroadcastReceiver、ContentProvider)**,無
main() 入口。
- UI 系統完全不同:Android 用 XML 佈局 + View 系統,非 Swing/AWT。
移植路線圖
- 分層解耦:將業務邏輯(算法、數據處理、網絡協議)提取為純 Java 模塊(Kotlin/Java),零 Android 依賴**。
- 構建 Android 項目:創建新 Module,將核心模塊作為依賴 (
implementation project(':core'))。
- 重寫 UI 層:用 XML/Compose 實現界面,調用核心模塊 API。
- 適配平台差異:
- 文件 I/O →
Context.getFilesDir() / getExternalFilesDir()。
- 線程 →
Handler/Coroutines/RxJava,避免在主線程耗時操作。
- 網絡 →
OkHttp/Retrofit,而非 HttpURLConnection。
工作量評估
- 核心邏輯零修改**(若無平台相關代碼)。
- UI 重寫佔 60%-80% 工作量。
- 配置構建、權限、適配各機型佔 20%。
工具輔助
- J2ObjC:將 Java 轉為 Objective-C(iOS 移植)。
- Kotlin Multiplatform:共享業務邏輯跨 Android/iOS/Desktop/Web。