[Android] Qt安卓教程(2):移植Qt到安卓

2puT發表於2016-07-31
系列教程主要講述與安卓移植版Qt的相關內容,如平臺特性、功能限制、特定使用者體驗和內容釋出等,其餘與Qt自身非平臺相關的內容不會作詳細講述,筆者預設童鞋們已經有一定的Qt功底。
另:請自備安卓機子一臺,不推薦用模擬器。

第二篇:移植Qt到安卓

1. 直接移植Qt自帶的例子

    首先開啟安裝Qt的目錄,再進入desktop版Qt的庫目錄(我這個因為是Linux所以顯示的是gcc版,win的應該顯示mingw或vs2010),找到examples資料夾——quick資料夾——demo資料夾——samegame資料夾;
    
    
    這時可以先把samegame.qmlproject這個檔案拖進creator裡面試試看效果,一個簡單小遊戲,而且支援兩人一起玩;
    
    
    現在開始移植工作;
    建立一個Qt安卓專案(QT QUICK 2),先不要改任何程式碼,試試看能不能在手機上執行,不知道怎麼執行的請看第一篇;
    
    回到剛才的samegame資料夾,把samegame.qml 、setting.js和content資料夾複製到剛剛建立的新專案的qml資料夾內,這時資料夾內應該有這麼幾個檔案:
    
    
    現在進入main.cpp檔案,把第九行的main.qml改成samegame.qml,儲存;
    
    
    然後進入.pro檔案,新增一行: QT += quick multimedia sql , 儲存後編譯;
    
    去到 專案————執行————包配置,點“從應用程式讀取資訊”,然後確保sql模組被選中;
    
    
    (此步驟可選)其實現在就能執行程式了,執行前可以嘗試修改android的配置檔案,在 其它檔案————android————AndroidManifest.xml,開啟這個檔案,會出現一個配置視窗,而不是xml編輯視窗,這個配置視窗可以修改包的名字,程式名字,圖示和許可權,這裡建議不要修改“run”的文字,不然可能會出現找不到可執行檔案的情況;
    
    
    點左下角的執行按鈕,手機上執行起來了。
    
    
    
    以上步驟可用於純qml程式的移植,其它情況另作討論。
    
    
2. 移植widget類程式
    很多童鞋說不會用qml,那麼在安卓上用c++ widget行不?那當然是可以的,筆者表示不推薦,官方也不推薦,原因很多,主要是widget不適合觸控式螢幕,而且預設不使用opengl加速,導致程式效率不高。下面我示範簡單執行一個widget程式在安卓上。
    
    新建一個專案,選擇Qt Gui程式(筆者只有很少幾個widget寫的程式,而且都比較大,不適合移植到安卓,這裡只示範一個新的widget專案)
    
    
    記得選擇安卓的套件;
    
    
    在designer中加入幾個widget;
    
    
    編譯,然後去 專案————執行————包配置裡面確認執行庫,保證widget庫被選上;(Qt5中widget被獨立出來了,可能有一些還在用Qt4的童鞋不知道)
    
    
    這時可以執行了,效果如下,筆者表示挺醜的。。。
    


筆者智商捉急,也只能寫到這種程度了,嫌我不夠水平的童鞋請忽略我。。

相關文章