写点什么

Mac 和 Ruby 综述:MacRuby AOT,用 ChocTop 创建 DMG 文件

  • 2009-07-22
  • 本文字数:884 字

    阅读完需:约 3 分钟

相比较 JRuby 或者 IronRuby 与其所属平台的集成而言,MacRuby 与 Cocoa 平台的结合更为紧密,这也是 MacRuby 的价值所在。MacRuby 似乎是 Mac 开发者使用 Ruby 开发客户端应用的最佳选择。最近在 MacRuby 的试验性分支上,引入了预编译(Ahead of Time,简称为 AOT)技术:

引入了 macrubyc,一个命令行工具,作为 AOT 编译器的接口。 macrubyc 允许你将一个给定的 Ruby 文件编译成 Mach-O 目标文件,并且还可以生成最终的可执行文件。

尽管现在使用 MacRuby 编写和部署 Ruby 应用已经可行,但这些应用依然需要携带 MacRuby 运行时一同发布。实现 AOT 的目标是为了解决如下问题:

所生成的 Mach-O 目标是真正的目标文件。它们可以用来生成 MacRuby 的可执行文件,你也可以在 Objective-C 的项目中通过 MacRuby 的 Objective-C API 来使用它们。 所生成的可执行文件嵌入了所有已编译的 Ruby 代码,当然也包括静态编译的 MacRuby。它可以独立发布,不需要依赖任何 MacRuby 或者 LLVM 运行时。因为 Ruby 源代码已经编译成了原生机器码(正如我们使用 JIT 编译器在运行时所做的一般),因此这也是混淆代码的一个不错的方式。最终的二进制文件看上去和 Objective-C 的二进制文件很像(当然体积要更大一些)。

举个例子, Chris Wanstrath 的 BaconDrop 工具使用 MacRuby 开发。尽管这个工具很小,但是在捆绑了 MacRuby 之后,它的体积达到了 15MB。如果借助于 AOT 编译成二进制文件的话,应该会更小一些。

BaconDrop 也展示了基于 Ruby 的工具是如何辅助 Mac 开发的。BaconDrop 以 Mac DMG 文件的形式发布,这是由 Dr Nic 开发的一个叫做 ChocTop 的工具来创建的。这个工具对所有的 Cocoa 应用都可以使用,自动创建 DMG 文件,并且会安装 Sparkle (用于处理软件更新)。ChocTop 拥有一套 DSL 化的配置系统,并在你的 rake 文件中添加一些任务。

一旦所有的 MacRuby 应用都可以使用 AOT 编译,在 OS X 应用开发方面,Ruby 便可成为 Objective-C 的有力竞争者(也许在 iPhone 开发方面还不会,因为 iPhone 的 Objective-C 运行时不支持垃圾回收)。

查看英文原文: Mac and Ruby Roundup: MacRuby AOT, DMGs with ChocTop

2009-07-22 11:441397
用户头像

发布了 80 篇内容, 共 19.7 次阅读, 收获喜欢 5 次。

关注

评论

发布
暂无评论
发现更多内容

一次奇葩面试经历,没去过BAT的Android研发就不配面试架构师?

android 程序员 移动开发

一篇文章搞懂Android 自定义viewgroup的难点,又是一年金九银十

android 程序员 移动开发

一篇文章教你读懂UI绘制流程我的Android重构之旅:框架篇

android 程序员 移动开发

一线大厂大型APP性能优化系列-自定义启动器(三),整理出Android逆向系列学习进阶视频

android 程序员 移动开发

一起来玩Weex,kotlin操作符重载

android 程序员 移动开发

一键登录了解一下?,揭秘

android 程序员 移动开发

构筑“数据连接器”,腾讯云大数据推出“开源开放”战略

科技热闻

一键调用,Get Android 实现视频连麦直播的核心原理,kotlin常用高阶函数

android 程序员 移动开发

三年备战阿里面试功亏一篑,失败是成功他妈,最终拼下美团Android开发

android 程序员 移动开发

三次失力美团Android 开发岗后,时隔一年终于成功拿下offer

android 程序员 移动开发

一篇不太一样的RxJava介绍,2021年Android开发者跳槽指南

android 程序员 移动开发

一篇文带你了解程序员的生存环境到底有多难!,android开发案例教程与项目实战

android 程序员 移动开发

一次违反常规的大厂OPPO面试经历(文末有面试答案领取)

android 程序员 移动开发

一文读懂 AOP _ 你想要的最全面 AOP 方法探讨,kotlin数据库框架

android 程序员 移动开发

一直认为Android不好找工作的同学,你的问题在这里!(1)

android 程序员 移动开发

一直认为Android不好找工作的同学,你的问题在这里!,移动软件开发

android 程序员 移动开发

腾讯云李纲:国产数据库即将进入规模化阶段,未来五年助力1000家金融机构完成核心国产化

科技热闻

三年磨一剑,这一次的金三银四打算离职的我准备好了,androidrom开发前景

android 程序员 移动开发

三月唯一一篇凉经奉上(Android 岗),成功跳槽阿里

android 程序员 移动开发

腾讯云音视频发布腾讯云视立方等多款新品,助力全行业快速构建音视频能力

科技热闻

一篇文章教你搞定内存泄漏与排查流程——安卓性能优化,20道高频面试题(含答案)

android 程序员 移动开发

一道腾讯面试官指点:组件之间的跳转和组件通信原理机制

android 程序员 移动开发

三年 Android 开发的技术人生,浅谈自身面试的感悟,华为架构师深入讲解Android开发

android 程序员 移动开发

三年Android开发却只有一年工作经验,是怎么收到offer的?

android 程序员 移动开发

三面阿里被挂,内推历经5面终获offer,我总结出了这些Android常用面试题和常见问题

android 程序员 移动开发

一篇文带你了解程序员的生存环境到底有多难!(1),Android端简单易用的SPI框架

android 程序员 移动开发

一篇文章教你搞清楚——Kotlin-进阶---不变型,android开发框架mvp

android 程序员 移动开发

实用函数式 Java (PFJ)简介

码语者

Java

三年开发经验,从小厂离职后,我凭什么拿到了阿里,作为一个Android开发者

android 程序员 移动开发

三面字节跳动被虐得“体无完肤”,为什么spring能最好地改变Android

android 程序员 移动开发

百万大数据 5 期 - BSM -02 课作业

Clarke

Mac和Ruby综述:MacRuby AOT,用ChocTop创建DMG文件_Ruby_Werner Schuster_InfoQ精选文章