可以先根據這個網址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。
下載地址:
中國官網: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
希望大家能把自己的所學和他人一起分享,不要去鄙視別人索取時的貪婪,因爲最應該被鄙視的是不肯分享時的吝嗇。