使用 Qt 開發安卓 APP 體驗如何?
簡單的說就是:
如果你的項目沒有跨平台需求,那麼不建議使用Qt開發Android或者iOS或者WP的app
為什麼這麼說,因為如果要開發一個單平台相同質量(能不能到相同質量還有待權衡)的移動端app,用Qt相比原生框架往往需要更多開發量。如果相同的開發量,往往意味著更平庸的軟體質量。
但是如果是跨平台,Qt的優勢就體現出來了。可以理解為1.1份的開發獲得2份平台的結果或者1.2份的開發或者3份平台的結果。
我目前用Qt開發了Windows、OS X、Linux、iOS(11款已上架)、Android、WP(1款已上架)的客戶端。Linux、WindowsServer的伺服器端。
對我而言,我發揮了Qt跨平台的特點,降低了總體的開發量。而且也降低了各個平台開發的入門門檻以及學習成本。
可以說一份代碼,幾乎不需要更改就可以編譯到另外一個平台是非常爽的。
對了,如果是桌面端的程序,哪怕只部署到一個平台,Qt也具備高開發效率、高質量等特點。移動端畢竟還需要很多的改進。
寫在前頭,Qt 開發安卓是個大坑,沒有能力填坑的娃,就看看,感興趣的娃可以玩玩,有能力有情懷的娃可以研究研究。
PS:Qt 5.7 的推出,尤其是 Control 2 這個模塊,簡直是官方逼死同人的節奏呢。另外 Qt 5.7 的安裝包體積似乎縮小不少,純粹 Qt 5.7 的話,安裝後體積為 33 MB 比過去的 45 MB 小了不少。
此外推薦使用 V-Play: Cross-Platform Development in Days for Games amp;amp;amp;amp;amp;amp; Apps 作為 QML 開發安卓應用有力框架。安裝簡便,使用後,停不下來。
此外開發過程中使用 olegyadrov/qmlcreator 可以提升不少效率呢。
如果想要入坑,請先看如下的文章。
Qt for Android 開發大坑Qt for Android 開發大坑 2
Qt for Android 開發大坑3
Qt Android 鍵盤問題
Qt 安卓上圖片縮略圖問題
將 shadertoy 上的著色器例子移植到 QML 中
有關 QML QtLocation 的 Plugin 的使用問題
Qt on Android 字體挑選
Qt on Android 沉浸式狀態欄
Qt For Andorid 的繪製機制?
Qt on Android 的 SSL 支持
有興趣的娃還可以去看看我挖的坑:
專欄:使用 Qt 一周開發安卓應用 GitHub - GDPURJYFS/A-week-to-develop-android-app-plan: 一周開發Android App計劃之Qt on Android
---
今天再加一個Qt開發智能家居tommego/GSYSmartLab
目前正使用Qt5.7開發Android平台的APP,沒有遇到什麼問題,覺得Qml非常靈活、易用。
如果不打算跨平台建議還是不要用了,一個hello world 的apk都要8M,什麼藍牙等各種模塊雖有api可調用,但是還有各種問題待完善.
我猜一定是不怎麼愉快得經驗
很麻煩的說,沒意思。
3年前搞過,簡單的還可以,尤其用qml,但是app複雜後,感覺手寫js文件就能把人寫死,沒jQuery,沒react...。並且那時基本沒人用,包括現在,比起HTML編寫app的熱情,qt就是極端少數。但是,如果在嵌入式方向,推薦,app真看不到未來。
QT用作移動開發確實沒有原生java好,相同功能,安裝包體積大了好幾倍,不過跨平台是其主要特性。如果想簡單了事,可以嘗試下。主要是布局解析度啥的很爛,需要花不少時間搞。桌面widget還不錯,尤其是linux下,少了很多的實用工具,倒是可以利用QT來寫
還是要寫安卓代碼,而且還麻煩
更新:自驗收已經結束,下個月就可以結題了好開心!
不要吐槽我的能力,我真的好儘力了~
…………………………………………………
簡直想死!一個項目做了一年半還沒結題,聽到QT就想吐。T_T
Qt移動開發工具是收費的!並且還是按月收!
推薦閱讀:
※Google 開發了很多優秀的 iOS 應用, Apple 卻沒有開發任何 Android 應用,這是為什麼,意味著什麼?
※安卓升級是否會封堵ROOT漏洞?
※如果你是面試官,我來應聘一年Android開發經驗,你會問什麼?
※Square 為何在開源方面如此強勁?