Ubuntu SDK開發工具鏈的安裝和使用

    Ubuntu系列如今已經發展爲雲、服務器、桌面、平板、手機通吃的全功能OS了,這裏介紹了Ubuntu SDK如何爲其全面的應用開發提供支持,包括Ubuntu SDK的安裝以及Scope、QML和JavaScript集成應用等基本概念。web

    你們都知道Ubuntu是目前最好用的桌面Linux發行版(之一?),並且Ubuntu Server也與OpenStack徹底攪合到了一塊兒,雲端的開發功能也是至關的強大了。除此以外,Ubuntu也在大舉向移動端進軍,已經支持平板和手機了(效果如何看市場了)。這裏先介紹Ubuntu SDK,是Ubuntu最新推出的開發工具鏈。shell

    在桌面和服務器已經有不少的開發工具,如Eclipse,爲何還要搞個Ubuntu SDK? 由於小型設備自身沒有強大的運行IDE的能力,還須要經過交叉編譯工具來進行開發,而Ubuntu SDK主要就是面向移動端設備開發的。可是因爲其基於QT,引入了QML進行界面設計,從而建立出了一套徹底跨越全部設備的界面開發支持工具,只能說其野心仍是大大的。再加上QT對JavaScript的內置支持,以及PyQt等工程的日益完善,若是可以把這些資源整合到一塊兒,說是最爲強大的開發套件也不爲過(前提是要整合到一塊兒哈)。數據庫

1、安裝Ubuntu SDK   

    移動設備的軟件開發須要幾個東西:IDE、代碼編輯器、聯機調試器、模擬器、交叉編譯器,其中模擬器和交叉編譯器是桌面開發不須要的。ubuntu

    先看看如何安裝Ubuntu SDK。swift

    使用Ubuntu14.10及其之後版本的,能夠直接安裝:xcode

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

若是是Ubuntu14.04及其之前的版本,首先執行如下操做把安裝源加入進系統:瀏覽器

$ sudo add-apt-repository ppa:ubuntu-sdk-team/ppa

而後,就能夠運行啦。能夠看到與QT Creator幾乎徹底同樣的界面,只是增長了不少工程模版。
服務器

$ ubuntu-sdk

    接着就能夠開始一個QML程序的設計了。這裏是一個QML的例子:https://developer.ubuntu.com/zh-cn/apps/qml/tutorials/building-your-first-qml-app/架構

2、Scope界面做用域

    Scope是針對移動應用建立的新界面體驗,與之前的Unity界面互相補充,提供了設備的新的桌面,而Unity也在移動設備上可使用,能夠經過觸摸屏進行快捷劃出。查看Scope的開發過程:https://developer.ubuntu.com/zh-cn/scopes/tutorials/scope-development-procedures/
app

    Scope將從幾乎任意來源衍生出來的內容直接提供給Ubuntu shell。用戶在Scope中輸入一個檢索項,Scope產生內容,而後該內容即顯示出來,一如咱們所見。用戶隨後選擇感興趣的搜索結果及其預覽內容, 一般還有 更多數據。用戶輕觸或單擊預覽、歌曲或視頻畫面、相關頁面將顯示在瀏覽器中,或者打開應用程序並進行恰當操做。

    Scope將內容發送給任意應用程序以外的用戶。 諸如web或數據庫查詢等簡單內容,或者通過細粒度訪問控制的、組織多樣化 的內 容(衍生自多種數據源)將直接進入用戶體驗。Scope是Ubuntu的核心特徵之一。那麼,就讓咱們從Scope開發人員較爲感興趣的主要Scope特 性概覽開始吧。

3、Scope是數據聚合的呈現

    Scope實質上就是查詢。它向調用它的客戶提供結果(內容),同時還提供結果預覽階段的數據。例如,用戶可能在Ubuntu shell中輸入一個檢索項,shell即調用一個Scope。Scope執行查詢並將結果呈現給shell(呈現查詢結果的位置)。

    可是,Scope並不知道也不在意是什麼調用的它,這就意味着Scope也能調用Scope。Scope可從包括其餘Scope在內的任意數據源聚合數據。

    Scope是一種自動查詢程序,它向調用它的任何東西返回查詢結果(以及預覽數據)。正是由於這種架構,在Ubuntu shell中,以聚合自多種數據源且顯示風格具備美感的豐富內容提升用戶體驗的可能性也比較的多。即便沒有初始查詢字符串,Scope也能提供內容;從而使得沒有用戶交互做用的狀況下也能顯示豐富的內容。

4、QML和JavaScript的集成應用

    QML與HTML5相似,提供了一種描述性的界面設計語言,同時能夠支持與JavaScript的集成應用,從而提供了一種相似於網頁的內容呈現界面。但與HTML5不一樣的是,QML已經定義了原生API的調用框架和API,而HTML5還須要進行擴展,經過增值開發商的運行框架層提供支持原生API的轉接。最終,都提供了輕量化的、動態的具備HTML的設計和原生API的強大功能,爲開發新一代的「混合式」App提供很好的支持。

    不過,第三方經過HTML5擴展出來的混合APP框架能夠同時支持iOS和Android系統,而Scope目前就只能運行在Ubuntu的設備上了,因爲基於QT理論上是能夠跨平臺的,但Scope是否會移植到其它平臺暫時未知,並且若是用了Ubuntu的特有功能確定是不行的了。

5、實踐經驗和問題、總結

    目前在Ubuntu14.10上在VirtualBox虛擬機中使還有些小Bug,使用Ubuntu-SDK啓動後,主窗口會把其它的窗口蓋住,這時選擇一下左邊的其它工具欄,就能夠正常操做了,多是這個版本的QTCreator的Welcome窗口的問題。建立工程後運行,老是提示glx錯誤,致使crash,鬱悶也!

    下一步再試下獨立安裝的環境有沒有問題。

    安裝Ubuntu14.10。下載,作一個啓動U盤,執行以下的命令:

df -h                                    #看一下設備列表
sudo diskutil umount /dev/disk3s1        #卸載設備,不是彈出啊!彈出就沒法找到裸設備。
sudo dd bs=1m if=ubuntukylin-14.10-desktop-amd64.iso of=/dev/rdisk3    #寫入U盤,用時較長,耐心等候。

    一點小插曲:按照上面的方法作完啓動盤後,Mac OS X就顯示沒法識別的設備了(嚇了朕一跳!),作了兩遍都是如此。硬着頭皮放到啓動機器上,結果正常啓動,十分鐘左右就安裝完了(贊一個!)。而後再執行Ubuntu-SDK的安裝,徹底正常,上面的虛擬機中的問題都沒有了。估計是VirtualBox對OpenGL驅動的問題了。   

    整體來講,QT與Ubuntu的結合,創造出一個跨多種設備、統一OS內核的開發套件,是堪比微軟的Virsual Studio+.NET和蘋果的xcode+swift的東東,並且背靠gnu的gcc等強大的編譯工具集,雖然整合性仍需完善,但可用的各類工具是要遠遠超過那兩個王牌軍的,並且仍是開源的。

相關文章
相關標籤/搜索