【发布时间】:2010-09-30 05:32:22
【问题描述】:
几个月前,我购买了诺基亚 N800 设备,从那时起我就渴望为它编写一些代码。我知道我正在运行的一些应用程序是用 Python 编写的,而且 Maemo 平台也有一个 Mono 端口。
基本上我要问的是:
- 是否有推荐的 Maemo 平台开发语言?
- 存在哪些开发工具?
- 我可以使用 Windows 或 Linux 作为我的主要开发机器吗?您推荐哪一种?为什么?
【问题讨论】:
标签: maemo
几个月前,我购买了诺基亚 N800 设备,从那时起我就渴望为它编写一些代码。我知道我正在运行的一些应用程序是用 Python 编写的,而且 Maemo 平台也有一个 Mono 端口。
基本上我要问的是:
【问题讨论】:
标签: maemo
Hildon 框架由 GTK+ 扩展组成,因此语言是 C。您也可以使用 C++ 包装器 (maemomm)。或者您可以使用pymaemo 来使用 Python 构建应用程序,这对我来说比 C 或 C++ 容易得多。我也看到了一个 ruby 端口的尝试,但最近没有跟进那个项目。
对于开发环境,有“scratchbox”,它为您提供了一个用于编译和运行应用程序的沙盒。这是有关如何设置scratchbox 开发环境的链接。 (我确实花了很长时间才完成所有设置。)
您必须使用 Linux 作为您的开发机器,因为您的诺基亚 N800 确实是一台迷你 Linux 计算机。
如果您想体验 IDE,请尝试使用 Eclipse 的 ESbox 插件。
玩得开心!
【讨论】:
为了获得额外的移动乐趣,您可以获取 linux gcc 并使工具在平板电脑本身上运行,并在设备上进行编程和编译。 对于此类问题的任何帮助,Maemo Talk 论坛非常棒。
【讨论】:
我刚刚在 Maemo.org 上找到了两个教程:
【讨论】:
有一个 Scratchbox Virtual Appliance 用于 Maemo 开发(我不确定链接是否正确),但这就是我开始破解的方式。我花了很长时间才弄清楚如何自己设置 Scratchbox。
【讨论】:
我强烈建议您尝试 C++ 和 QT。
QT 已经得到 Diablo 和 Fremantle 的良好支持,Maemo (Harmattan) 的下一个版本应该是 based on QT。
学习QT会比GTK+容易得多,编码会更快更有趣,你的应用程序可以在各种平台上编译,你甚至可以在Windows中开发和调试,然后在scratchbox环境中简单地运行一个qmake && make .
看看这个教程:Getting started wit QT for Maemo
您仍然需要一个 Linux 机器来为 Maemo 设备编译代码。 如果您使用的是 windows,您可以在 VirtualBox 机器中设置 ubuntu(或 kubuntu)。
Maemo SDk + 和 Scratchbox 2 是比 Maemo SDK 和 Scratchbox 更好的选择。
就个人而言,我在 Windows 中使用 QT creator,在 VirtualBox 中使用 kubuntu 9.04,我从未如此快乐过。 当我开始时,我尝试了“官方”的方法:Ubuntu、GTK+、C 语言和 Scratchbox 1。...那很痛苦。
【讨论】:
Ruby for Maemo 托管在 http://code.scottishclimbs.com/maemo/
我自己还没试过。
【讨论】:
诺基亚一直在努力为开发人员提供工具和文档。我想说最好的起点之一是诺基亚论坛:
http://www.forum.nokia.com/Technology_Topics/Device_Platforms/Maemo.xhtml
为 Maemo 开发的下一站当然是 Maemo 的总部:
这两个链接指向您必须深入了解更多信息的门户,但它们是很好的起点。现在直接回答您的问题:
我想这两种“推荐”语言是 C 和 python。尽管这些都得到了很好的支持,但它们并不是您从以前的答案中看到的唯一选择。除了这些语言之外,perl 还在设备上,尽管它与在 debian 上的状态不同。
主要的开发工具是SDK。它允许您测试环境并为设备编译软件。您还可以使用有插件的 Eclipse。
建议大家使用linux作为开发机,但是可以在Windows上的虚拟机中运行。虽然我更喜欢我的操作系统是 100% 免费的,因此选择了 debian,但诺基亚正在努力为 Windows 打造更好的开发环境。所以请放心,诺基亚不一定和我一样有偏见! :-)
【讨论】:
我必须回应 Karatchov 的回应。
目前推荐的两种方法是:
Python + PyGtk
C++ & Qt
使用其他任何东西,你都会让自己承受一些痛苦(除非你是 Gtk+ 的老手——既然你在问这个问题,我假设你不是)。无论如何,C++ 和 Qt 是 Maemo 的未来,而 Qt 在诸如暗黑破坏神之类的“旧”平台上运行良好。
作为调试器,我建议你选择(编译)“cgdb”。普通的旧 gdb 可能有点太简陋了。
通常,您应该使用 Qt Creator 将您的应用程序开发为“普通”Qt 应用程序,并偶尔在暂存箱中对其进行测试。
【讨论】:
我主要使用 python 和 pyside 进行开发(我在 N900 上开发)。 我的所有文件都在诺基亚 N900 中,我使用 sshfs 将我的主目录挂载到我的电脑上。 然后我在我的桌面上进行开发,同时将所有内容都保存到手机中,并使用 SSH 远程运行它。
如果你懒得拿起设备看屏幕,你可能想使用 VNC;虽然就个人而言,我觉得它只是响应不够。
是的,我的桌面上只有我的编辑器(顺便说一句,sublime-text)。其余的生活在移动设备上。我使用 git 来同步内容/进行备份等。
py2deb 非常适合在您想要分发项目时制作软件包。同样,无需在您的桌面上安装任何东西。
如果您宁愿更保守一点,SDK 是为 debian 设计的,您将在使用任何非基于 debian 的操作系统时遭受很多的影响(除非您使用虚拟机)。被警告! :)
【讨论】: