Qt for Android開發入門

可以先根據這個網址https://blog.csdn.net/u013816798/article/details/86326306 

基於Qt平臺開發安卓應用

下載其收集到的軟件

 

1.    Qt for Android環境搭建

1.1    打包需要的工具

1.2   JDK安裝

如果之前配置過,就可以跳過這一步。

下載java jdk 64:java jdk 1.8 x64

下載java jdk 32:java jdk 1.8 x86

Java jdk 1.8 官網:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

配置系統環境變量:

變量名:JAVA_HOME

變量值:C:\Program Files\Java\jdk1.8.0_144

變量名:CLASSPATH

變量值:.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar

注意%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar前面還有一個.;

在Path變量名中添加變量值:%JAVA_HOME%\bin

配置圖示:

1.3      Android SDK安裝

Android sdk配置最方便的方法是下載一個Android Studio,然後安裝它,它提供了sdk和adb。

下載地址:

https://dl.google.com/dl/android/studio/install/2.3.3.0/android-studio-bundle-162.4069837-windows.exe

中國官網:http://www.android-studio.org/

安裝完畢後,運行程序,他會解壓自帶的sdk,可以在設置裏面更改SDK版本。

還有一種方法是直接下載SDK安裝:installer_r24.4.1-windows.exe,運行安裝目錄下面的“SDK Manager.exe”,然後勾選安裝,在方框的前兩個中是必選的,之後的Build-tools最好是選擇對應版本。對於安卓的版本我這裏安裝的是Android 8.0 (API 26)以上,你們可以自行選擇。SDK下載完成後會佔用較大的硬盤空間,請將其安裝在空間充足的盤符中。(sdk下載安裝需要比較長時間,如果網速快還好,否則要等好久)

sdk安裝目錄最好不要放在有空格的目錄下,比如C:\Program Files (x86), 不要放到這種有空格的目錄,因爲下方需要拷貝NDK到該目錄,後面用QtCreator時如果目錄有空格會提示Android ndk install into a path without spaces。故最好放在一個沒空格的目錄,我是放在:D:\Andriod下

安裝完畢後,如下圖目錄所示,找到SDK安裝目錄下面的“platform-tools”目錄,把此目錄的路徑“..\platform-tools”添加到系統環境變量中。

sdk下載完後,還需使用AVD Manager.exe手動創建一個AVD,後面Qtcreator中才會出現這一步,否則即使使用Add按鈕也會提示有cannot create a AVD for ABI armeabi-v7a,實際上已經有下載的,欠缺的是要手動創建一個AVD。見下下圖。

點開AVD Manager.exe點擊Creatr按鈕,創建一個AVD。

如果需要在虛擬設備上運行程序,則必須使用鏡像armeabi-v7a,否則即使創建成功虛擬設備,起來後也會是一直黑屏。

這個鏡像可以通過sdk manager下載。只有Android 7.0纔有,7.1也有一個,名字稍有不同,再往上版本就沒有這個鏡像了,我試了8.0,10.0的x86和x86_64,虛擬機起來了,但是一直黑屏。用了7.0的這個鏡像並且要選擇安卓手機,如果選擇手環那些也是一直黑屏,不知道爲什麼。

創建好虛擬設備後,需要先運行虛擬設備。然後再編譯代碼,編譯的時候會提示你選擇掛載的設備,選擇剛創建的虛擬設備,編譯後,運行,會自動在虛擬設備上運行你的程序。下圖是運行起來的虛擬設備。

 

1.4      Android NDK安裝

Android NDK 提供一組隨新的 Android API 級別後續發佈而逐漸增加的原生標頭和共享庫文件。

Android NDK 是在SDK前面又加上了“原生”二字,即Native Development Kit,因此又被Google稱爲“NDK”。

Android程序運行在Dalvik虛擬機中,NDK允許用戶使用類似C / C++之類的原生代碼語言執行部分程序。NDK包括以下方面:

1、從C / C++生成原生代碼庫所需要的工具和build files。

2、將一致的原生庫嵌入可以在Android設備上部署的應用程序包文件(application packages files ,即.apk文件)中。

3、支持所有未來Android平臺的一系列原生系統頭文件和庫。

ndk_r9d:      http://dl.google.com/Android/ndk/android-ndk-r9d-windows-x86.zip

ndk_r11c:       http://dl.google.com/android/repository/android-ndk-r11c-windows-x86.zip

最新版:       https://developer.android.google.cn/ndk/downloads/ (我使用的!)

注意:我剛開始也使用了r11c的版本,但是編譯會出錯,建議選擇最新版本的!

解壓下載好的ndk,將其與sdk置於同一級目錄下即可。

1.5      Apache Ant安裝

Apache Ant,是一個將軟件編譯、測試、部署等步驟聯繫在一起加以自動化的一個工具,大多用於Java環境中的軟件開發。由Apache軟件基金會所提供。

Android ant下載官網:http://ant.apache.org/bindownload.cgi

在這裏我採用的是目前來說 最新版的 ant1.10.5:

http://mirror.bit.edu.cn/apache//ant/binaries/apache-ant-1.10.5-bin.zip

然後解壓出來置於sdk同一級目錄,將..\apache-ant-1.10.5\bin添加到系統環境變量Path中。

1.6      QT軟件包以及Qt Creater安裝

對於QT的版本,我這裏使用的是最新的5.12版本(帶QT Creater5.12)

下載:http://download.qt.io/archive/qt/5.12/5.12.0/

安裝可參考:https://blog.csdn.net/gaojixu/article/details/82185694

 

2. HelloQtOnAndroid實例

2.1   Qt Creater中配置Android

打開Qt Creater,菜單[工具]->[選項]->[設備]-“Android”以及“設備”,填寫各項如下:

正確配置應用後,轉到“Kits”中可以看到已經可以吧構建Android的套件顯示出來了。

 

之後,點擊確定(OK),然後新建項目時選中自己需要的構建套件,可以全部選中用的時候比較方便。

2.2  Qt Creater中新建工程

[文件]->[新建文件或項目],選擇Qt Widgets Application,可以看到支持的平臺包括:Android設備

設置Qt項目名稱爲“HelloQtOnAndroid” 

下一步… “Select all kits” 

下一步… 選擇基類“QWidget”

彙總並點擊[完成]。

 

2.3   Qt Creater中項目構建配置

點擊[項目],選擇Android for armeabi-v7a配置Build

此處如果沒有祕鑰文件,需要創建祕鑰文件和證書,否則直接點瀏覽選擇證書目錄。點擊create按鈕,彈出創建祕鑰窗口,其中國家代碼需要填對,其他的都可以隨便填

點擊Save按鈕,彈出文件窗口讓你選擇目錄保存。當你選擇目錄後,會讓你輸入密碼剛纔界面上的密碼,輸入後確認,即顯示出保存的證書目錄。

 

執行build…

經歷“qmake”-“make”-“make install”-“androiddeployqt”過程!

成功後,在build-HelloQtOnAndroid-Android_for_armeabi_v7a_Clang_Qt_5_12_0_for_Android_ARMv7-Debug

\android-build\build\outputs\apk\debug中找到生成的apk文件,安裝測試即可!

編譯的時候提示有sdk編譯工具沒有安裝,去Android sdk manager選擇對應的sdk build版本下載即可。

Failed to install the following Android SDK packages as some licences have not been accepted.

build-tools;28.0.3 Android SDK Build-Tools 28.0.3

 

 

2.4  運行實例

本實例驗證一下QT的基本部件在Android上的顯示效果。

Android設備安裝運行效果顯示(我給app換了個好看的ico):

可以看到除個別(如spacer)以及一些複雜的部件外,大多數部件都能在Android端顯示出來,但是顯示的字體大小等需要進行一定的移動端適配操作。

3. 參考

Qt幫助文檔

《Qt On Android核心編程》

http://www.runoob.com/android/android-application-components.html

 

希望大家能把自己的所學和他人一起分享,不要去鄙視別人索取時的貪婪,因爲最應該被鄙視的是不肯分享時的吝嗇。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章