我正在尝试为 Ubuntu 手机制作一个应用程序,但我有很多问题。
如果我的应用程序依赖于某个库
qxmpp
,那么哪种方法更好?将库的本地副本添加到我的应用程序,还是使用系统库将依赖项添加到最终包等?我是否必须使用 QML 层来开发我的应用程序?或者我可以使用纯 C++ 吗?
例如,我根本不喜欢
ubuntu-sdk
(我不太喜欢 IDE),是否可以自己开发应用程序,然后将其上传到 Ubuntu 商店?
谢谢,如果我的一些问题没有意义,我很抱歉,这是我第一次尝试开发手机平台,我感觉有点迷茫。
答案1
我没有看到
qxmpp
所谓的“框架”(它是一个ubuntu-sdk-libs
包)。手机上没有安装 xmpp 包。所以,它可能是捆绑副本。手机上软件的只读部分称为“OS 映像”。它作为
.deb
一个整体通过无线方式更新。它由桌面 Ubuntu 的软件包组成。因此,直接的方法是 chroot 到映像中并查看dpkg -l
安装了哪些软件包。或者dpkg -l
在手机或模拟器上执行此操作。文件说早些时候(13.10)可用的库在虚拟包的依赖项中列出ubuntu-sdk-libs
:http://packages.ubuntu.com/vivid/ubuntu-sdk-libs。但现在在所有包的列表中搜索可能更有用。您不必使用 QML 层。您甚至可以使用 Qt Widgets。但相信我,QML 很棒。它不会以任何方式损害 C++。
是的,您无需 SDK 即可进行开发。Ubuntu-Touch 应用程序只是为 ARM 编译的常规应用程序(如果
qemu-user-static
安装了软件包,它甚至可以在桌面上运行)。只有最后一步将其包装到 Click 软件包中。它是用 CMake 构建的,因此可以与其他编辑器兼容。我有一个构建文件的示例这里. 通常进行编译并在里面放一个小样板
CMakeLists.txt
来调用 Click 打包程序。您可能会使用 SDK 来生成 chroot。然后代码将在这些 chroot 中编译,并且模拟器可以在其中运行(在 SDK 之外)。