gpt4 book ai didi

Ruby 后台 OS X 应用程序

转载 作者:数据小太阳 更新时间:2023-10-29 08:06:14 24 4
gpt4 key购买 nike

创建 ruby​​ OS X 应用程序很容易——创建这样的结构:

xxx.app
└── Contents
├── Info.plist
├── MacOS
│ └── xxx
└── Resources
└── xxx.icns

并将要执行的代码放入xxx。但是启动时间很明显,所以我希望这个应用程序留在后台并运行一些方法,当应用程序打开时:所以当我第一次运行该应用程序时,它执行代码并留在后台,当我再次运行时,应用程序是已经在后台,所以它只运行指定的方法。

最小 Info.plist:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleExecutable</key>
<string>newTabHere</string>
<key>CFBundleIconFile</key>
<string>newTabHere</string>
<key>LSUIElement</key>
<true/><!-- hides icon from Dock -->
</dict>
</plist>

最佳答案

缓慢是由于 ruby​​ 解释器所需的启动时间。这就是为什么它对于 bash 脚本或 objective-c 来说并不慢。

与后台ruby程序通信的步骤:

  • 让你的 ruby​​ 程序使用 daemons gem .(可选,但更容易在后台运行)
  • 编写一个 bash 脚本,在运行时远程登录到一个端口。
  • 让你的 ruby 程序运行eventmachine (可通过 Rubygems 获得)或其他支持 telnet 的套接字服务器。
  • 当 ruby​​ 套接字服务器通过 telnet 接收到消息时,让程序以您想要的方式运行。
  • 将 bash 脚本打包到您在问题中描述的应用程序中。

bash 脚本必须:

  1. 启动 ruby​​ 程序或启动守护进程(如果它尚未在后台运行)。
  2. 使用 telnet 连接到 ruby​​ 程序中指定端口上的本地主机
  3. 发送消息以运行该方法。
  4. 保存或打印结果。

此解决方案的优势

  • 易于实现。
  • Telnet 自动安装在所有 mac 上。
  • Bash 脚本易于学习使用。
  • Ruby 有很好的套接字 gem 和易于实现的库。

警告

这会导致 ruby​​ 解释器不断耗尽计算机内存。因此,这不是一个用户友好的解决方案。

要在 ruby​​ 中创建具有图形界面的真正应用程序,您必须将 macruby 与 ruby​​cocoa 结合使用。

或者使用 Appcelerator 的 Titanium Desktop,你必须用 javascript 编写界面代码,但你可以用 ruby​​ 完成其余的工作。这种方法还具有跨平台的优点。见http://developer.appcelerator.com/doc/desktop/ruby

关于Ruby 后台 OS X 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4356340/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com