Skip to content

Cross-platform framework for building truly native mobile apps with Java or Kotlin. Write Once Run Anywhere support for iOS, Android, Desktop & Web.

License

Notifications You must be signed in to change notification settings

LOVISH066/CodenameOneopensource

 
 

Repository files navigation

Codename One - 使用 Java 或 Kotlin 构建跨平台原生应用

Codename One 是一个面向 Java 和 Kotlin 开发者的移动优先跨平台开发环境。它可以将 Java 字节码编译为原生操作系统可执行文件(iOS、Android、UWP 等)。Codename One 是一个完整的移动开发平台,提供虚拟机、模拟器、设计工具(可视化主题/构建器/CSS)、IDE 集成、多操作系统端口等。它通过可移植的抽象层提供对底层原生操作系统代码(如 Objective-C、C#、Dalvik/ART)的完整访问,实现 100% 代码复用。

🌟 Codename One 的独特优势

  • 真正的 "一次编写,随处运行",无需特殊硬件,支持 100% 代码复用。
  • 将 Java 或 Kotlin 编译为 iOS、UWP(通用 Windows 平台)、Android 甚至 JavaScript(支持无缝 PWA 和线程)
  • 开源且免费,同时提供企业级商业服务
  • 易于使用,提供 100% 可移植的拖放式 GUI 构建器
  • 完整访问底层原生操作系统功能,可使用本机编程语言(如 Objective-C)进行扩展,而不会影响可移植性。
  • 完全掌控屏幕上的每个像素,可以重写绘制逻辑或使用玻璃面板进行绘制。
  • 支持原生控件(视图),可与 Codename One 组件混合使用(重量级/轻量级组件混合)。
  • 开箱即用的无缝持续集成(CI)支持

✨ Codename One 的具体优势

Codename One 的模拟器即时运行

不同于 Android 等平台的模拟器,Codename One 采用模拟器,启动速度快,即使在调试时也能迅速运行。同时支持 IDE 功能,如实时代码热重载,可在运行时修改代码。

这意味着更快的调试周期和更快的开发进程!

丰富的设备皮肤选择

选择各种设备 "皮肤",查看应用在不同设备上的外观。皮肤会考虑分辨率和设备密度,提供像素级精确的呈现效果。切换设备皮肤几乎是即时的。

您可以在这里编辑和贡献设备皮肤。

交互式控制台

使用交互式 Groovy 控制台在运行时与应用 API 进行交互,检查应用状态或实验性修改代码。

这样,您无需重新编译就能进行问题排查和实验。

实时代码重载

模拟器支持 IntelliJ 的 "Reload Changed Classes" 功能(在 NetBeans 中称为 "Apply Code Changes")。这样,您对 Java 源代码的修改会立即生效,无需重启应用。

CSS 实时更新

修改 CSS 样式表后,模拟器会立即反映更改,包括主题、图片、字体等,所有修改在保存时即时更新,无需刷新或重新加载。

这让应用的样式调整变得极为高效!

组件检查器

使用强大的组件检查器浏览 UI 组件层级结构,帮助找出多余的间距或未对齐的元素。您可以在运行时更改 UIID(选择器),查看其对 UI 的影响。

网络监视器

查看应用的所有网络请求,检查 HTTP 请求的头部和主体,还可以模拟慢速网络环境。

UI 单元测试录制

使用测试录制工具录制应用的 UI 单元测试,并集成到 CI 过程中,实现自动化设备测试。

🛠 Codename One 的工作原理

Codename One 是一个成熟的开源项目,其核心组件可追溯至 Sun Microsystems(2006 年)。

Codename One 应用的表现与原生应用无异,因为它们是真正的原生应用。

Codename One 使用目标平台的官方构建工具将代码静态编译为原生二进制文件。

  • 在不原生支持 Java 的平台(如 iOS)上,Codename One 先将 JVM 字节码转换为本机代码,如 iOS 平台转换为 C 代码,并生成标准 Xcode 项目。
  • 在 Android 上,Java 本身受到支持,因此应用 jar 文件直接打包进 Android Studio Gradle 项目,可直接使用 Android SDK 构建。

🚀 快速入门

目前,我们正在迁移到 Maven,推荐使用新的项目创建工具

Maven 快速入门

git clone https://github.com/codenameone/CodenameOne
cd CodenameOne/maven
mvn install

此过程可能较长,因为会自动下载约 1GB 的依赖项。

如果要构建 archetype 项目,还需执行:

git clone https://github.com/shannah/cn1-maven-archetypes
cd cn1-maven-archetypes
mvn install

下载并解压项目后,在 pom.xml 文件中找到 <cn1.version><cn1.plugin.version> 属性,并将其修改为本地安装的 SNAPSHOT 版本(如 7.0.21-SNAPSHOT)。

Ant 快速入门

git clone https://github.com/codenameone/CodenameOne
cd CodenameOne
ant

运行单元测试

ant test-javase

运行示例

ant samples

🔍 ParparVM

Codename One 的 iOS 虚拟机 ParparVM 采用保守的转换策略,将 Java 字节码转换为 C 代码,提供原生性能和安全性。

由于 Codename One 生成标准 Xcode 项目,因此 Apple 任何架构更改(如 64 位支持、bitcode)都无需代码修改。

🛠 iKVM 修改版

Codename One 维护了 iKVM 的一个分支,允许我们在 Windows 10 设备上原生运行 Codename One 的 UWP 实现。

📚 重要资源

❓ 获取帮助

我们在 StackOverflow 提供支持,使用 codenameone 标签提问即可。您还可以在讨论组进行交流。


Codename One 让移动应用开发变得更快、更简单,立即开始您的跨平台开发之旅吧!

About

Cross-platform framework for building truly native mobile apps with Java or Kotlin. Write Once Run Anywhere support for iOS, Android, Desktop & Web.

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 87.7%
  • C# 6.4%
  • Objective-C 3.8%
  • C 0.9%
  • HTML 0.9%
  • C++ 0.2%
  • Other 0.1%