標籤:qt for android qt on android qt 5.4
2014年12月10日, Qt 5.4 終於發布了!官方部落格的博文:http://blog.qt.digia.com/blog/2014/12/10/qt-5-4-released/ 。
下載連結:http://www.qt.io/download/ 。
著作權 foruok,轉載請註明出處:http://blog.csdn.net/foruok 。
Qt 5.4 有哪些變化
Qt 5.4 帶來了很多變化,比如 Qt Quick 2D renderer 使得 Qt Quick 可以不使用 OpenGL ;又比如 Qt WebEngine,……具體詳情看下面的連結:
- http://blog.qt.digia.com/blog/2014/12/10/qt-5-4-released/
- http://qt-project.org/wiki/New-Features-in-Qt-5.4
- http://qt-project.org/wiki/Change-files-in-Qt-5.4.0
有的同學比較關心 5.4 有哪些問題,看這裡吧:http://qt-project.org/wiki/Qt540-KnownIssues 。
對Android的支援有哪些變化
這是我最關心的,我的書《Qt on Android核心編程》已經上市銷售一段時間, 5.4 的發布帶來的變化可能導致讀者在學習時產生疑問,因此我整理了與 Android 相關的變化供大家參考。
分兩部分來說,一部分是 SDK ,一部分是開發環境 Qt Creator 。
Qt SDK 的變化
Qt SDK 中與 Android 有關的變化有這些吧。
Android Native Style
5.3,5.2 ,Qt on Android 開發出來的 APK ,不論是基於 Widgets 還是 Qt Quick ,都不能很好的支援 Android Native Style ,對很多同學來說是一個遺憾嘍。好訊息是, Qt 5.4 支援了!看下面的連結:
http://blog.qt.digia.com/blog/2014/12/03/native-android-style-in-qt-5-4/
關於 Qt Widgets on Android ,在 5.3 裡,如果你使用 ministro 服務,有一部分控制項已經支援 Android Native Style ,比如 QLineEdit , QMessageBox 等等。而 5.4 帶來的變化是:Android Native Style 與 ministro 無關了!你不用 ministro 也一樣可以得到 Android 原生風格介面。
關於 Qt Quick , 5.4 之前是沒有 Android Native Style 的,這次是跳變哈,非常棒。
另外 Android 的版本更新也很快, Android L 正式版發布了一段時間了! Qt 5.3.2 已經支援了 Android L 預覽版,可是工作有很多很多了, Android L 的 Material 風格, Qt 5.4 還不支援……變化太大了麼,讓人怎麼 catch up 得及……不過,福音還是有的,這世上就是不缺彪悍的人,看下面的連結,基於 Qt Quick 從零開始實現的 Material 風格:
https://github.com/7ymekk/qml-material
還開源!
發行版的變化
Qt 5.4 是 the Qt Company 成立後的第一個整合版本,在發行版的規划上也有一些變化。我們看下載頁面上的說明吧,下面是:
圖1 Qt 5.4 發行版本
看到沒,四個版本,三個收費……我支援這種策略,公司要生存下去才行!
Community 版本,即社區版本,會少一些特性支援,自己看下面頁面的說明嘍……下面是安裝後開始菜單裡的變化:
圖 2 Qt 5.4 社區版本的捷徑命名
對比 5.3.1 和 5.4.0 ,留意一下捷徑的變化吧。
Qt on Android Known Issues
好了, SDK 裡關於 Android 的變化講完了,有些值得期待的,比如 基於 Widgets 的視頻支援,依然沒有到來……有什麼問題呢,看下面連結吧:
http://qt-project.org/wiki/Qt_for_Android_known_issues
哎呀, Android 5.0 上面不能遠端偵錯了……不過我基本也沒怎麼用過遠端偵錯,都是在 Windows 上調試介面和邏輯, Android 真機看實際運行效果,這才是 Qt 跨平台帶來的大大大大大便利!
Qt Creator的變化
隨著 Qt 5.4 發布的是 Qt Creator 3.3.0 ,相較於 SDK 引入的 Android 特性變化, Qt Creator 的關於 Android 方便的變化來得更猛烈一些,顫抖吧少年!
項目選項的變化
5.3 和 5.2 攜帶的 Qt Creator 版本(3.2.x、3.1.x), Qt on Android 應用的項目選項,比如簽名、部署策略、建立 AndroidManifest ,實在回合組態中,其實不那麼合理吧,你想想看。
Qt Creator 3.3.0 這點做了改變。是構建配置:
圖3 Qt on Android 構建配置
圖裡面的 Create Templates 按鈕,點擊它會建立 Android 項目需要的模板檔案,比如 AndroidManifest.xml 等。看我的《Qt on Android 核心編程》(基於 Qt 5.2 、 Qt 5.3)時,發現找不到書裡介紹的項目設定選項時,注意這裡的區別。
除了位置變化,還有一些新變化,比如 Advanced Actions 裡的 Use Gradle ,後面會講。
是回合組態:
圖 4 Qt on Android 回合組態
不用多說了吧……
編譯系統的變化
Qt Creator 實際上是調用構建 Android 的應用的工具鏈來把 Qt on Android 的 so 和必要的 Android 項目模板檔案編譯、打包成 APK 。不清楚的參看我的書《Qt on Android 核心編程》。這個過程對於開發人員基本上是透明的,原本不需要特別關心。
Android項目構建有幾種方式了,原始人的方式不說了,自動化的有 ant ,有 gradle ,據說都是提高生產率的哈,按我提到的順序,一個比一個好哦。前幾天 Google 發布了 1.0 版本的 Android Studio ,使用 gradle 來編譯 Android 項目……
Qt Creator 3.3.0 也支援使用 gradle 來構建 APK ,同時也保留了對 ant 的支援。我們使用時需要做一些選擇。來看看怎麼做吧。
兩步,第一個建立模版(Create Templates)時(參看圖 3 紅框內的按鈕,點擊即可)選擇支援 Gradle ,看圖 5 吧:
圖 5 建立Android模板檔案時支援 Gradle
這樣建立之後呢,看圖 6 ,項目視圖的變化:
圖6 使用Gradle構建時的項目視圖
OK ,建立了模板,就該配置構建選項了, 7 所示:
圖7 構建配置裡選擇 Use Gradle
好啦啦,現在就可以 Run 了……
咦,腫麼這麼慢……原來,看圖8:
圖8 使用Gradle構建的編譯輸出資訊
原來啊,Qt Creator要自動為我們下載 gradle ,它可能還會自動設定好吧,我上周配置 Gradle 2.2.1 來編譯我的 Android 項目時花了不少功夫,後來還是直接安裝了 Android Studio ,話說 Android Studio 啟動那叫一個慢載入那叫兩個慢啊,簡直像上個世界的……比 Eclipse 還慢……
我急性子,取消了,沒往下走,決定還是用 ant 吧。
歡迎回到老路上哦。
圖9是建立模板時的:
圖9 使用Ant構建,建立模板取消對Gradle的支援
建立模版後的項目視圖:
圖10 使用Ant構建時的項目視圖
看著是不是清爽了一些……我是看著覺得越看越好看……我屬於遺老遺少……
點擊 Run ……,看看輸出資訊:
圖 11 使用Ant構建時的編譯輸出資訊
關於構建的變化,就說這麼多吧。
部署策略的變化
因為 Android 5.0 的原因,你懂得……
看:
圖 12 Android 5 不能使用 Deploy local Qt libraries
有點悲劇啊,Android 5,對開發人員很友好的 “Deploy local Qt libraries to temporary dirrectory” 這種部署策略,居然不適用了。
不過, Qt Creator 3.3.0 還是蠻友好的,給了我們提示,之前的版本都很任性,不搭理我們……
就到這裡吧,吧拉啦吧啦吧啦……
Qt 5.4發布,詳解Android特性變化