65.9K
CodeProject 正在变化。 阅读更多。
Home

使用 Ubuntu SDK 开发 Ubuntu 应用程序

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.69/5 (4投票s)

2015年12月20日

CPOL

13分钟阅读

viewsIcon

30299

本文讨论了Ubuntu SDK和Ubuntu SDK中用于开发各种Ubuntu应用程序和软件服务的Qt IDE。

引言和背景

在本文中,我将重点介绍Ubuntu平台的应用程序。自从三个月前我开始为Ubuntu编程以来,我一直想写关于该平台、SDK、功能以及更多内容的文章。这个平台非常吸引人,即使是脚本小子,也逃不过它吸引人的功能。我不喜欢写需要经常使用shell脚本的应用程序。但是,Ubuntu对我来说是一个例外。我还没有尝试在Ubuntu上使用C#或开源的.NET Core,但我一定会找个时间尝试一下,届时我会更新这篇文章或者为那部分内容写一篇新文章。

有很多关于Ubuntu编程、Ubuntu图形用户界面、Ubuntu SDK等问题,我一直想确保能将我的一些知识作为文章分享给社区,但我总是忙于其他项目和博客等,以至于无法真正写出来。所以,现在我闲下来了,在开始我的计算机科学硕士课程之前,我应该为Ubuntu初学者写这篇文章。我相信您在阅读时一定会喜欢上SDK和这篇文章。

关于Ubuntu的一些介绍

如果您不知道Ubuntu是什么,那么它是一个基于Linux(内核和Debian)的操作系统。所以,在GUI之下,有一个Linux内核在进行底层操作。Linux内核负责管理操作系统和机器硬件之间的进程和通信通道。机器硬件与操作系统完全抽象化,内核(以及一些其他组件)被用来确保操作系统能在每种(选定或支持)架构的机器上运行。例如,您可以在32位和64位、x86和其他架构上运行Ubuntu。进程看起来是一样的,您为一台机器编写的应用程序也能在另一台运行Ubuntu的机器上运行。为什么?因为Ubuntu在层级结构中运行在非常高的层面,所以运行应用程序的程序与机器是抽象的。在这种状态下,操作系统只充当虚拟机,例如,其中运行着一个字节码。这个字节码被“即时”编译成本地机器代码!由于这个事实,您编写一次的代码可以在每台机器上执行,因为虚拟机决定哪个代码被编译成哪个指令。指令对于不同的机器是不同的。

Linux简介

Ubuntu是Linux的一个发行版,Linux只是一个内核,它不是一个操作系统。这正是Linux和GNU之间的区别。GNU是一个缺乏内核的项目,直到Linus Torvalds创建了Linux,GNU的人才采用了这个开源内核(它仍然向Linus先生支付版税),并完成了他们的操作系统项目。因此,Linux是内核,GNU是操作系统。所以,如果有人问您在GNU系统上做某事,不要困惑地说:“嘿,但我只知道怎么在Linux上做。”

更多信息:好了,关于Linux就到这里。如果您想了解更多关于Linux本身的信息,请阅读

  1. Minix 3
    关于Minix 3的背景和一些您可能感兴趣的书籍。
  2. Linux
    背景和历史
  3. GNU

读完这些,您就会对Minix 3是什么,Linux是如何开始的,以及它如何完成了GNU有一个大致了解。:-) 我不会再多说这些了,现在继续讨论Ubuntu。

Ubuntu—一个Linux发行版

Linux本身将是Shell爱好者和命令行界面狂热者的首选操作系统。但是,对于像我这样的人来说,如果没有图形用户界面,没有点击按钮打开“此电脑”的方式,那么这个OS就不是“我的类型”。对吧?Linux内核有很多发行版,许多公司和组织投入了金钱和时间,在Linux内核之上创建了操作系统。Linux内核让他们不必担心操作系统本身以及它将提供的程序和服务,而内核负责管理低级服务、CPU中断、RAM管理和其他功能。最新版本的Linux包含了许多错误修复、安全补丁和其他漏洞修复,这样操作系统就可以专注于自己的代码。

Ubuntu就是这些发行版之一,主要用于个人电脑。Ubuntu基于Linux(根据网站所说,是的,很多技术爱好者都知道,它是一个Debian-based Linux发行版),是的,您可以使用Linux拥有的相同功能,相同的用户账户和命令。但是Ubuntu只是在其之上添加了一个图形用户界面,以及一个框架和设计来支持第三方应用程序的开发和移植到设备上。Ubuntu不仅仅是一个桌面操作系统,还为以下方面提供服务:

  1. Web服务器
  2. 智能手机
  3. 平板电脑
  4. 云管理
  5. 由于它不是基于单台机器的操作系统,因此还提供了许多其他选项。

在我看来,Windows 10的概念与Ubuntu的架构非常相似。一个操作系统统一所有设备。因此,您在一个设备上创建的应用程序可以在多个设备上运行,就像Windows 10应用程序一样,只需稍作调整即可运行。

从这张讨论Ubuntu架构的帖子中可以看出,以下表示可能足以满足您对架构的理解需求。


图1:从Linux角度对Ubuntu OS进行的图形化表示。在单个图中绘制每个服务和进程的模式几乎是不可能的。

现在,如前所述,解释和连接Ubuntu OS或内核中提供的每一个服务几乎是不可能的。因此,我将为您提供一个抽象的概述,层级是这样的:首先是Linux内核(忽略机器),然后是一些继续运行并与Linux内核通信的服务,然后是一些UI服务,它们在屏幕上渲染打开的窗口和标签页的图形,之后是您的应用程序。这些服务与内核通信,内核在CPU上执行命令。

另一方面,我创建了一个更简单的图,您可能会觉得更容易理解。


图2:一个更容易理解的Ubuntu OS抽象概述。

在上面的图像中,您可以对Ubuntu OS本身有一个整体的了解。现在,如果这还算清楚,我们就可以继续讨论主要话题Ubuntu SDK了。在接下来的章节中,我将引导您了解如何使用Ubuntu SDK以及如何在Ubuntu SDK中为Ubuntu OS创建应用程序。

Ubuntu SDK—Qt Creator和一堆服务

Ubuntu SDK是每个SDK都拥有的一些服务的集合。Ubuntu是一个基于Linux的系统,因此它的IDE不像Windows的IDE那样是完全集成的,例如**Visual Studio**。Ubuntu最初没有提供功能齐全的IDE,但现在有了。Ubuntu OS也有一个功能齐全的IDE(特别感谢Qt项目),它包括:

  1. 带有语法高亮的文本编辑器。
    当然,大多数程序员都需要它,语法高亮包括JavaScript、C++、C以及许多其他语言,包括QML(Qt应用程序的标记语言)。Qt是用于跨平台开发的最广泛使用的IDE和框架。Qt用于Windows、Linux(Ubuntu、Debian和Android等)、Mac和手机开发。因此,它必须包含多种语言的语法高亮。
    • C/C++
    • JavaScript
    • QML
    • XML
    • JSON
    • 等等…
  2. 语言编译器。
    除了编译器,它还附带标记语言和JavaScript解析器。
    • QML允许您集成客户端脚本(使用JavaScript)。因此,事件使用JavaScript处理,并且模式相同。此外,QML标记语言也非常简单,创建GUI一点问题都没有。
    • 集成的C/C++编译器使得运行和调试应用程序变得容易,而无需为每个进程执行单独的命令。
      • 编译代码
      • 解析标记
      • 汇编二进制文件
      • 创建包
      • 查找可执行文件
      • 运行它们以查看结果。
    • 在Ubuntu中,您只需运行应用程序;或调试它
  3. 调试器
    如果您在应用程序中遇到任何问题,或者想在发布应用程序之前进行测试,SDK都包含了所需的内容。
    • 调试器
    • 性能分析器
  4. 模拟器和设备
    SDK还包含可帮助您创建模拟器和设备的内容,您可以在其上运行应用程序。在本指南中,我将使用我正在使用的设备来运行应用程序。
    • 您可以为手机、桌面或其他您希望应用程序运行的平台或架构创建模拟器。
    • 在本指南中,我将只使用桌面版本。
  5. 源代码控制
    如果您是一个团队开发人员一起开发一个项目,那么您将需要源代码控制,每个团队都需要它。Ubuntu SDK拥有从git到Bazaar的各种源代码控制。您可以选择最适合您需求的产品。
    • **Git**是最广泛使用的源代码控制,它也允许您将代码托管在GitHub上。它速度很快,并且被命令行程序员广泛使用。此外,已经提供了许多指南供您学习**Git**。
    • **Bazaar**是另一个主要在Ubuntu中使用的源代码控制,我从未在Windows中遇到过它。但是,我没有找到创建账户的方法,所以您需要自己查找。:-)
  6. 发布工具
    Ubuntu SDK还为您提供了将应用程序发布到Ubuntu软件中心的功能。您的应用程序可以在那里被成千上万的用户下载!
    **注意**:有商业版本的应用程序可供选择,但由于我人在巴基斯坦,没有PayPal账户,所以我不知道如何操作,但那也很简单。只需添加您的账户详细信息,他们就会为您支付应用程序产生的收入。

这只是Ubuntu SDK的概述,但使用和安装Ubuntu SDK非常容易。我确实喜欢Visual Studio,每个人都喜欢,但安装Ubuntu SDK是一个非常简单易行的任务。SDK的体积也非常小,所以下载二进制文件不会花费太长时间。安装也非常稳定和快速,无论您做什么,最多只需要10分钟;取决于您的网络和机器

安装SDK

我将假设您已经安装了Ubuntu。您可以通过两种方式获取Ubuntu SDK,

  1. 从软件中心;您只需单击“安装”按钮即可完成安装。
  2. 或者… 从终端。在这里,所有步骤都会被逐步处理,您会清楚需要多长时间以及正在执行什么过程。

我将分享这两种方法的“操作指南”,以使其对您更清晰。我个人偏爱终端安装SDK的方式,只需要3个命令,就可以为您完成大部分工作!

1. 使用图形用户界面安装

首先,为图形用户界面爱好者准备的部分。过程非常简单,您只需要进入软件中心并安装Ubuntu SDK。使用软件中心,您只需单击一个按钮。其余的事情由软件中心自己管理。

进入开发人员工具,在其下方找到IDE。Ubuntu SDK就属于这一类。


图3:Ubuntu SDK在“开发人员工具”部分的IDE类别中列出。

您应该单击“更多信息”以获取有关此产品的更多详细信息。应该会弹出这个窗口:


图4:Ubuntu SDK详细信息和“快速安装”按钮。

如果您已经阅读了此软件产品的详细信息,则应单击“**安装**”。单击该按钮后,Ubuntu会要求您输入密码以执行超级用户操作。这需要一些时间,同时需要互联网连接和一些时间。它将为您安装SDK!

2. 从终端安装

这是我最喜欢的安装Ubuntu SDK的方法。它花费的时间不多,但非常强大且简单,因为它只需要几个命令即可为您安装SDK!

从您的机器打开终端,然后继续安装SDK

1. 添加SDK发布PPA
$ sudo add-apt-repository ppa:ubuntu-sdk-team/ppa

它会提示您输入密码,请输入您用户帐户的密码。完成后,继续安装SDK包。

2. 安装SDK

执行以下命令安装SDK

$ sudo apt update && sudo apt install ubuntu-sdk

现在,它将在网络上查找软件包和其他资源以下载并设置SDK。这需要一些时间,这一步将花费大部分时间。这取决于您的网络速度,所以请确保您有良好的网络,慢速网络也可以工作,但会很慢。:-)

一旦完成,就没有其他事情需要担心了。SDK已设置完毕。通过终端启动它。

$ ubuntu-sdk

您将在前面看到SDK运行。是的,它是Qt Creator,并带有几个附加插件,可以与Ubuntu编程配合使用。


图5:Ubuntu SDK启动屏幕。

在下一节中,我将引导您了解Qt Creator(Ubuntu SDK)提供的用于开发Ubuntu应用程序的各种选项。该IDE有许多功能和许多应用程序模板供您使用。应用程序种类繁多。

  1. 控制台应用程序
    如果您想构建一个不需要任何图形或渲染的程序,那么您可以创建一个简单的C/C++控制台应用程序并编写应用程序的逻辑。
  2. 服务或模板
  3. 图形用户界面应用程序
    如果您想创建使用图形的应用程序,那么这些是您的选择。
  4. 非Qt项目
    当您需要利用Ubuntu的本机功能时,您可以创建非Qt项目并编写利用本机功能以获得更好性能的软件。

在GUI模式下创建的应用程序使用QML作为用户界面的标记语言,使用JavaScript作为客户端交互的处理程序。C++用作处理复杂算法和结构的后端语言。在大多数情况下,JavaScript就足够了,例如在网络请求等情况下。但在需要CPU处理的情况下,您可以充分利用C++语言的优势!

值得关注的要点—文章的未来版本

好的,我认为这对于本文来说已经足够了。到目前为止,您已经对Ubuntu SDK、Ubuntu以及如何构建应用程序有了基本了解。您可能还对SDK IDE的环境和其他基本工具和软件包有了了解。这正是本文旨在提供的。

在下一篇关于Ubuntu SDK的文章中,我将向您展示如何在Ubuntu平台上构建不同的应用程序。Ubuntu是一个非常强大的应用程序构建平台。从基于控制台的应用程序,到服务,再到GUI应用程序。使用Qt构建的GUI应用程序在Ubuntu SDK中也非常容易。QML、C++配置以及所有这些东西都非常简单且易于理解,即使您从未为Ubuntu编程过,或者您是一名Web开发人员,您仍然可以很快上手Ubuntu!

下次文章再见。:-)

© . All rights reserved.