前言
本書主要介紹Qt 程式設計技術,其次是說明如何在行動平台Android 上使用Qt 框架進行開發。對於Qt 技術有興趣的讀者,無論是專注於傳統的桌面軟體開發,還是希望嘗試使用Qt 在Android 平台開發,都可以從本書中獲得最根本、最重要的知識與實例。
如果你剛接觸Qt,希望能快速入門,本書第2 章提供了圖文並茂的環境架設教學、簡潔實用的Qt Creator 整合式開發環境介紹、各種開發工具的快速使用指南以及詳細的入門專案建立過程。同時,筆者也在第5 章進一步介紹了Qt 的版面配置管理員,在第8 章扼要說明了可以在桌面和Android 兩個平台上同時使用的Qt Gui 控制項,這些可以作為基礎教學。
如果你已經使用Qt 開發過桌面軟體或嵌入式軟體,現在想在Android 平台上小試牛刀,那就趕快行動吧。本書以「從零開始也能學會Qt on Android 開發」為目標,在第3 章首先詳細說明JDK、Android SDK、Android NDK、環境變數設定、Android 虛擬裝置建立、手機連接等一切可能給你入門帶來障礙的內容,然後以Hello Qt On Android
為基礎,詳細地說明如何建立支援Android 平台的專案、如何設定Android 相關的專案選項、如何部署Qt on Android 應用,最後又介紹如何在Android 上使用Qt 及Android 的記錄檔系統、如何使用adb 過濾應用記錄檔,以備你在開發過程中遇到問題時不再為偵錯問題發愁。在第13章,筆者深入Qt on Android 內部,一步一步為你揭開Qt
何以能夠在Android平台執行的秘密。當然,如果你對此不感興趣,可以跳到第14 章開始看,那裡有行動開發的各種主題。第15 章是筆者為你準備的進階利器,以便你需要呼叫Android 系統為你的應用加分時有路可循。至於第16 章,則是本書所介紹內容在Android 平台的大閱兵,你不但會看到Qt 傳統的各種技術(如網路、XML、Qt
Widgets、檔案IO、Json、QTL、事件篩檢程式等)如何在Android 平台上躍馬揚鞭,也會看到感測器、錄音、多點觸控等行動開發技術的實際應用,還會看到JNI 的實作。
訊號與槽是Qt 框架最有特色的內容,是一切Qt 重要技術的基礎,筆者在第5章和第6 章先後多次從不同角度進行說明,既涵蓋訊號與槽的各種典型使用場景,也抽絲剝繭剖析了訊號與槽的原理,甚至以大量篇幅說明Qt 元物件系統,為的就是讓你從「大概知道怎麼用」的階段提升到「了然為什麼這麼用」的境界。
很多開發者在實際的專案開發中經常使用多執行緒,我曾經看到太多的人對Qt多執行緒程式設計感到迷惑,提出了各種各樣的問題,尤其是當訊號與槽遭遇多執行緒,本書的第6 章、第9 章可以帶領你走出泥淖。
如果你對Qt 的網路程式設計(第10 章)、Qt 範本函數庫如何使用(第7 章)、Qt 的XML 技術(第12 章)有興趣,本書也不會讓你失望。
Qt 的事件處理流程,第6 章的第9 節就是為你準備的,看了它你就可以掌握Qt事件處理的七種武器,想攔誰就攔誰,為所欲為。
你需要什麼技術基礎
Qt 是以C++ 為基礎的開發框架,大量使用物件導向概念,諸如繼承、虛擬函數、多載、純虛擬類別等,建議你先了解C++ 和物件導向程式設計。如果已接觸過C++ 但不是十分熟悉,遇到不明之處翻閱C++ 書籍即可。
如果你有C++ 基礎但從未接觸過GUI 程式設計,不要擔心,Qt 雖然是以事件機制為基礎的,但它良好的封裝使得你可以從Qt 開始你的第一個GUI 應用。
如果你想在Qt 中透過呼叫Java 程式來獲得使用Android 系統功能的特權,則需要一點Java 語言和Android 程式設計的基礎。如果你熟悉C++,學習並掌握Java 語言的基礎部分十分容易,而Android 應用程式開發的很多概念和模式又和Qt 相通⋯⋯
軟硬體環境
筆者使用Windows 7 作為開發環境,可供參考。
至於開發主機的硬體規格,筆者建議設定為:
■■ 雙核心以上CPU
■■ 4GB 以上記憶體
而為了驗證Qt on Android 應用在手機上的效果,還需要一部Android 手機,系統版本在2.3 以上。建議設定為:
■■ Android 系統4.0 及以上
■■ 記憶體1GB 以上
■■ 4GB 以上快閃記憶體或加配SD 卡
為了連接電腦和手機進行安裝與偵錯,需要:
■■ 一條與手機符合的資料線
■■ 與手機符合的ADB 驅動
聯繫作者
我非常樂意和本書讀者溝通,接受您對本書以及對我的指正和建議。本書相關的案例原始程式碼下載網址:www.topteam.cc
本書緣起個人部落格,獲得很多朋友的關注和鼓勵。歡迎您存取我的技術部落格,留下您對書籍內容或某個技術專題的指正和建議。我的部落格地址:blog.csdn.net/foruok。
筆者目前擔任CSDN Qt 討論區的版主,您可到那裡找筆者討論技術問題。筆者的電子郵件是
[email protected],歡迎來信討論與書籍相關的問題。