從礦工轉行為新時代農民工,一直從事的是PC端開發,聽說qt可以給手機開發開發應用,遂進行了嘗試,歷時約兩個晚上的時間終於給我的手機開發了一個丑陋無比的應用。
開發環境:linux(deepin)pc一台 + android 手機一部
一、PC 搭建開發環境
1. 安裝 Qt 開發環境(記得選擇 Android 相關組件)
qt 下載地址:https://download.qt.io/archive/qt/5.9/5.9.2/qt-opensource-linux-x64-5.9.2.run
2. 安裝 openjdk
sudo apt-get install -y openjdk-8-jdk
3. 安裝 android-sdk
下載后解壓: http://dl.google.com/android/android-sdk_r24.4.1-linux.tgz
解壓后在 tools 文件夾下執行 android 腳本 打開android sdk 管理器 進行安裝
4. 安裝 android-ndk
下載后解壓: https://dl.google.com/android/repository/android-ndk-r14b-linux-x86_64.zip
5. 打開 qt creator -》工具-》選項-》設備-》Android 設置好JDK、SDK、NDK的路徑(三個路徑依次是前三步的路徑),配置好如下圖
參考博客:https://blog.csdn.net/zssrxt/article/details/79120896
二、鏈接華為手機(暫且理解為開發環境提供編譯環境吧)
1.打開手機開發者模式,華為P20為
1.1 手機-->設置-->關於手機 -->版本號 ,找到后連續點擊版本號,就是使手機處於開發者選項模式
1.2 找到開發人員(系統和更新菜單中)選項(找不到就搜索該設置項),設置如下
2. 用數據線鏈接開發機器(注意數據線的選擇,有的只能充電)
鏈接后手機會跳出一個授權窗口的東西,選擇同意即可
3. 開發機器執行 adb devices 后會顯示手機設備(adb 沒有的話用apt安裝即可)
此時如果找不到,請繼續操作第4步驟,否則進行下一節
4. lsusb 能看到鏈接的設備(鏈接前后對比很容易找到,如果找不到換數據線試試)
vim /etc/udev/rules.d/51-android.rules 后追劇如下內容(注意 設備ID 要與 lsusb 查到的保持一致,沒有該文件就新建)
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", MODE="0666"
SUBSYSTEM=="usb_device", SYSFS{idVendor}=="12d1", MODE="0666"
修改權限為777,重新鏈接手機,執行第3步
參考博客:https://blog.csdn.net/hubbybob1/article/details/90032774
三、應用開發
經過前兩節的折騰,開發環境已經完全搭建成功了,剩下的就是開發一個應用了。
為了便於測試整個流程,根據 qt creator 向導創建一個簡單的程序即可(注意選擇正確的開發套件 Kit Selection,如下圖)。
注意不要使用cmake,使用qmake,否則可能無法編譯(Qt5的還不支持cmake,據說Qt6將支持 https://www.kdab.com/qtcreator-cmake-for-android-plugin/)
創建成功后即可進行構建(qt creator 可以生成apk安裝包),構建時,點擊下圖紅色按鈕
不出意外的話會彈出如下圖,剪頭指的就是手機設備,選擇該設備點擊 “OK”后開始構建,構建結束后,apk會自動發送給手機(注意觀察過程),手機會提示是否進行安裝,安裝后,就可以使用了
當然,也可以通過構建的apk包手動安裝,路徑如:./build-untitled-Android_for_armeabi_v7a_GCC_4_9_Qt_5_9_2_for_Android_armv7-Debug/android-build/build/outputs/apk/android-build-debug.apk