Codename One 是 Java 和 Kotlin 開發人員的行動優先跨平台環境。它可以將 Java 字節碼編譯為本機作業系統可執行檔(iOS、Android、UWP 等)。它是一個完整的行動平台,具有虛擬機器、模擬器、設計工具(視覺主題/建構器/CSS)、IDE 整合、多個作業系統的連接埠等等。它透過可移植的抽象化提供對底層本機作業系統程式碼(例如 Objective-C、C#、Dalvik/ART)的完全訪問,從而實現 100% 程式碼重用。
與您在 Android 等中看到的模擬器不同,Codename One 使用模擬器。這意味著即使在調試時它也能快速啟動。您可以享受 IDE 功能,例如即時程式碼重新載入以在運行時修改程式碼等。
這意味著更快的調試週期和更快的開發過程!
從大量裝置「皮膚」中進行選擇,以查看您的應用程式在特定裝置上的外觀。皮膚會考慮解析度和設備密度等因素,以提供應用程式的像素完美呈現,就像在真實設備上一樣。設備皮膚之間的切換幾乎是即時的。
您可以在此處編輯和貢獻他們自己的開源專案中的皮膚。
使用互動式 Groovy 控制台在運行時與應用程式的 API 進行互動。在應用程式運行時檢查應用程式狀態或嘗試變更。
這使您可以調查問題並進行實驗,甚至不需要重新編譯的少量開銷。
透過模擬器,您可以利用IntelliJ 中的「重新載入更改的類別」功能(在NetBeans 中稱為「應用程式碼變更」),以便您在Java 原始程式碼中所做的變更將立即套用到模擬器中已運行的應用程式。
請注意,這通常優於互動式控制台,但存在一些限制,例如添加方法/更改程式碼結構的能力。這些限制不適用於互動式控制台!
當您變更應用程式的 CSS 樣式表時,變更會立即反映在模擬器中。這包括更改您的主題、圖像、字體等。
這使得設計應用程式樣式的過程變得非常簡單和快速。
使用強大的元件檢查器瀏覽應用程式中的 UI 元件層次結構。使用此工具可以輕鬆找出額外填充的來源或為什麼某些內容沒有按照您想要的方式排列。您也可以在執行時間變更元件的 UIID(選擇器),以查看它如何影響 UI,並查看層次結構中的哪個元件會對應到元件樹(相當於 DOM)中的元素。
使用網路監視器查看您的應用程式建立的所有網路連線。當您試圖找出 HTTP 請求對您不起作用的原因時,這個有價值的工具會派上用場。檢查請求和回應的標頭和正文。您甚至可以限制網路來模擬慢速網路連線。
使用測試記錄器工具記錄應用程式的單元測試。一旦開始錄製,它會將您的互動保存到單元測試中,稍後可以回放以驗證行為是否正確。
然後,您可以將記錄的測試連接到 CI 流程,包括自動化設備測試。
Codename One 是一個成熟的開源項目,其根源可以追溯到 Sun Microsystems (2006),其中一個核心底層元件是在 Sun Microsystems 開發並開源的。您可以在此影片中了解其歷史及其工作原理。
Codename One 應用程式的效能類似於本機應用程序,因為它們是真正的本機應用程式。
使用目標平台的官方建置工具將它們靜態編譯為本機二進位。
在本機不支援 Java 的平台(例如 iOS)上,應用程式的 JVM 字節碼首先被轉換為本機構建工具可接受的形式。在 iOS 上,應用程式的 JVM 字節碼在真正的 xcode 專案中轉換為 C 原始碼。在 Android 上,由於原生支援 Java,因此無需進行此類轉換。應用程式 jar 直接捆綁到 Android studio gradle 專案中,可以直接使用 Android SDK 建置工具進行建置。
您可以點擊圖像放大或在此處查看 PDF 版本。
提示:我們目前正在過渡到 Maven,並創建了一種新的、更簡單的方法來建立專案。請造訪 https://start.codenameone.com 立即開始。
關於代號一號有很多東西需要了解,這段 3 分鐘的影片給出了非常簡潔的高層視圖。請注意,這裡有關於 Eclipse、IntelliJ/IDEA 和 Netbeans 的類似影片:
Codename One 可以使用包含本機作業系統程式碼的第三方程式庫輕鬆擴充。這裡有這些函式庫的詳細列表 (cn1libs)。庫列表是根據這個 github 專案自動產生的。
您可以在主站點了解有關 Codename One 及其功能的更多信息,並且可以在此處查看詳細的文檔和教程列表。
您可以在下載部分開始使用二進位檔案和鳥瞰圖。其他重要連結是:
注意:我們正在從 Ant 遷移到 Maven,這簡化了從原始碼建置的過程。有關舊版 Ant 建置說明,請參閱 Ant 快速入門。
本文和影片詳細介紹了該設定。
重要提示:目前建置 Codename One 需要JDK 8 。您不能使用 JDK 11,因為某些子模組必須使用-source 1.5
和-target 1.5
來保持與部分工具鏈的向後相容性。
git clone https://github.com/codenameone/CodenameOne
cd CodenameOne/maven
mvn install
這將在您的本機 Maven 儲存庫中建置並安裝 Codename One。此過程可能需要一段時間,因為它會自動下載大小約為 1GB 的依賴項。
要從原始程式碼建立原型項目,您應該查看 cn1-maven-archetypes 儲存庫並建置它:
git clone https://github.com/shannah/cn1-maven-archetypes
cd cn1-maven-archetypes
mvn install
現在 Codename One 已安裝在本機 Maven 儲存庫中,您可以在專案中使用該版本而不是發布版本。可以使用 Codename One 初始化快速產生新的測試項目。
下載並解壓縮專案後,開啟其 pom.xml 檔案並尋找<cn1.version>
和<cn1.plugin.version>
屬性。然後將它們變更為指向透過mvn install
安裝到本機Maven 儲存庫中的版本。本機建置的版本通常是 SNAPSHOT 版本(例如 7.0.21-SNAPSHOT)。
獲取和建構資源
$ git clone https://github.com/codenameone/CodenameOne
$ cd CodenameOne
$ ant
運行單元測試
$ ant test-javase
運行樣品
Samples 目錄包含越來越多的範例應用程式。這些範例並不是演示,而是如何使用 API 的範例。
您可以使用以下命令從命令列啟動範例執行程式應用程式:
$ ant samples
Codename One 的 iOS VM 非常獨特,而且也是開源的。您可以在此存儲庫的專用資料夾中閱讀有關它的更多資訊。
ParparVM 是一種獨特的保守 VM,可將 Java 字節碼轉換為 C 程式碼。從而提供本機性能和訪問,同時仍提供安全網。這種方法是代號一號所獨有的,對於未來的兼容性至關重要!
Apple 傾向於突然改變事物,例如 64 位元支援、位元代碼等。就好像您自己手工編寫了該項目一樣!
您甚至可以在 xcode 中開啟生成的項目並直接在 iOS 裝置上進行偵錯或分析。這提供了很多有用的信息,例如可讀的調用堆疊和有價值/可操作的性能追蹤...
傳統編譯器在這些情況下會表現不佳。
Codename One 維護 iKVM 的一個分支,它是 CLR 的 JVM。此修改後的連接埠可讓我們在 Windows 10 裝置上本機執行 Codename One 的通用 Windows 平台實作。
當您使用 codenameone 進行標記時,我們會在 StackOverflow 上提供支持,您可以在那裡詢問任何問題,我們會盡力做出回應。 StackOverflow 連結也可以作為優秀的社群驅動的常見問題解答,因為它確實將使用者問題映射到答案。
Codename One 有一個討論群組,您可以在其中發布問題。然而,由於該小組的性質,我們試圖限制對來源的討論。討論論壇的目的是為了更簡單的使用,更複雜的原始碼駭客/本機編譯可能會在那裡產生雜訊。
感謝這些優秀的人(表情符號鍵):
比茲爾-彼得 | 莉安娜卡斯帕 | 謝爾蓋代號一號 | 托馬斯H99 | 哈維爾·安東 | 鑽石 | 弗朗西斯科·加爾加尼 |
庫托曼 | 拉姆塞斯托姆 | 馬阿蒂努斯 | 杜蘭克 | 迪耶0 | 卡洛斯韋爾迪耶 | 羅伯特·埃德爾曼 |
阿達爾伯特393 | 史蒂夫漢納 | 迪加普塞普 | 帕夫尼特·辛格 | 威普萊斯 | 傑米德夫 | 特里·威爾金森 |
賈努斯·漢森 | 雅科夫·格謝爾 | 麥可·蒙克 | 賽德爾 | 米格爾·穆尼奧斯 | 艾哈邁德·阿布馬爾瓦 | 法比奧 |
皮奧特爾 | 馬蒂亞斯灣 | 桑尼·薩諾夫 | 麥克西姆28 | 梁家偉 | 大衛戴 | 尼克·普萊斯 |
阿納夫·本·阿扎德 | 奧克塔維奧·E·阿尼諾 | 雅什丘疹 | 妮娜 | 費庫納特 | 伊米迪安多公司 | 大衛·普里馬斯克 |
DB107 | 蘆峰一光 |
該項目遵循所有貢獻者規範。歡迎任何形式的貢獻! ❤️