- Android開發精要
- 范懷宇
- 2774字
- 2018-12-31 16:21:47
前言
為什么要寫這本書
一直覺得我和Android還是蠻有緣分的,從Android發布第一個版本的SDK開始,我就一直在“摸著石頭”寫各種Android應用,了解一切與Android有關的事情,直至今日。還記得剛開始接觸Android時,由于缺少相關的學習資料或書籍,入門都是一件非常困難的事情,只能靠自己不斷地翻看SDK文檔、嘗試各種代碼實現來揣摩如何開發Android應用,因而走過很多彎路,幾乎犯過所有可能出現的錯誤,深感寫好Android程序并不是一件很容易的事情。
如今有大量的開發者開始從事Android開發,幸運的是很多前輩寫了大量關于Android開發的書籍,其中包括很多非常優秀的書籍,能幫助Android開發者更快速地學習Android開發,使他們不用再重復我當年初學時的痛苦。
但從我在工作中接觸到的Android開發者來看,雖然學會如何編寫Android應用不再是難事,但他們依舊困擾于如何寫出地道的、貼近Android設計理念的、更加高效和運行可靠的Android應用。雖然已經有很多功力深厚的書籍詳細剖析過Android底層實現的方方面面,能幫助開發者把Android應用寫得更出色,但正是由于這類書中包含了大量底層實現細節,因此使得開發者學習成本較高,難于從中快速獲取期望的內容,痛感“遠水解不了近渴”。
因此,我萌生了寫這本書的念頭,期望從我的開發經驗和繁雜的Android源代碼中,抽取出Android開發的“精華”和“要點”,這些“精要”剝離了很多瑣碎的實現細節,進行了更多的概括和總結。這一方面能夠幫助開發者更深入理解Android的應用開發,從學會Android進階到理解Android;另一方面又使他們不會被太多細節所牽絆,能夠更快速地學習和掌握所需內容。
本書主要內容
本書將所有內容整理成四個部分共13章。
第一部分幫助讀者重新認識Android,并從各個角度來介紹一些Android的核心理念和學習方法,包含前兩章內容。第1章從多個方面介紹和闡述了對Android架構的理解,只有真正理解Android的設計理念和思想才能夠更快地掌握Android開發。第2章介紹了如何獲取、編譯和閱讀Android源代碼,對于愿意投入更多時間學習Android的開發者來說,源代碼無疑是最好的學習資料。
第二部分深入闡述了Android最核心的組件機制,包含4章內容。第3章從整體上闡述了Android組件機制的設計理念和重要特征,詳細介紹了4大組件的特點和使用方式。第4章從設計和源代碼出發,講解了Intent對象和Android的意圖機制,旨在幫助開發者理解Android是如何將來自不同應用、不同進程的組件整合在一起工作的。第5章介紹了Android各個組件的生命周期,包括每個組件的進程模型、線程模型,以及編程時需要把控的一些“要點”。第6章從實際開發的角度出發,詳細介紹了組件間數據傳遞的解決方案,以及這些解決方案的優缺點和使用場景。
接下來的第三部分,轉換到了另一個核心話題,即Android的交互界面開發,包括兩章內容。第7章講解了Android的控件框架,結合實際的項目,對重要控件的實現和使用逐一進行了分析與講解,其中包含了最新的Android 4.0界面開發的一些實踐“精華”。第8章繼續介紹了Android的資源體系,詳細剖析了Android底層對資源的處理,并結合具體的應用實現介紹了如何正確地配置資源和構建交互界面。
剩下的章節是第四部分,其內容涵蓋了Android的各個核心模塊,對每個模塊的實現機制都做了分析,并結合具體的工程實踐針對使用模塊時最容易遇到的問題給出了解決方案。第9章介紹了Android的數據存儲結構,以及不同的數據存儲模式的使用要點,包括基于文件、基于設置文件(Preference)、基于數據庫、基于云端等多種模式。第10章介紹了Android豐富多彩的網絡連接方式,著重介紹了開發時常見問題的解決,范圍不僅涵蓋了傳統的HTTP連接、藍牙傳輸,還包括最新的近場通信(NFC)和基于 WiFi的P2P連接等。第11章講解的是Android的地理信息服務,不僅包括Android的定位服務、地址服務和地圖服務的框架實現,還特別針對定位時會遇到的各個問題給出了解決方案。第12章圍繞Android的多媒體信息處理展開,具體包括了圖像、音頻、視頻和相機的實現和使用,內存占用量大是多媒體處理中最常見的問題,該章結合對一些系統應用的剖析,總結了一些常用的解決策略。第13章涵蓋內容比較多,主要介紹的是Android中比較有特色的一些模塊,包括短信和通話的處理、聯系人的使用、通知機制(Notification)、桌面小工具(App Widget)的開發等內容,著重介紹的是一些比較有特色的實現細節,以幫助開發者寫出更為“地道”的Android應用。
本書特色
本書最大的特色在于對底層實現機制的總結和整理,以及結合項目實踐經驗對開發中常遇到的核心問題給出具體的解決策略。
對于底層實現機制的整理,可視為Android開發的“要點”,每個開發者都需要理解和掌握這些內容,才能在開發時“下筆如有神”。為了能夠更好地傳達這些要點,本書中不會出現大段的底層實現代碼,而是把所有的實現機制和策略,整理成文字和圖表進行總結解析,以幫助讀者更輕松地學習和理解。
而對于實際開發問題的解決策略,可看做是Android開發中的“精華”部分。本書從系統應用和一些優秀開源項目中整理出常見問題的解決策略,并結合個人實踐經驗分析不同解決策略的思想和適用場景,不僅能夠授讀者以解決問題之“魚”,更能夠授其分析問題之“漁”。
本書面向的讀者
我期望所有的Android應用開發者都能夠從本書中獲益。對于Android初學者而言,可以著重閱讀本書對Android設計思想、組件機制、UI框架的介紹,增強對Android底層機制的理解,這對于日后開發更高效、可靠的Android應用,必將有所裨益。
而對于具有豐富Android開發經驗、對Android基礎框架有很深認識的資深開發者而言,可以在本書中尋找針對具體問題給出的一些解決策略,相信這些策略會對解決開發中的實際問題有所幫助。小貼士 這是一則小貼士,所謂小貼士,就是對相關內容進行擴展介紹,或者是加入一些個人的理解。
如何閱讀本書
從本書的結構來看,前三部分包含的內容對于大部分開發者都適用,可以逐節進行閱讀;而第四部分包含的內容則可以結合具體問題有選擇地進行閱讀。
本書在介紹內容的過程中,會涉及Android中的具體Java類,在首次提及時會使用完整的類名進行描述,如android.app.Activity,而在之后再次提及時則會略去全部的包信息,僅使用類名,如Activity,以節約篇幅便于閱讀。
與之類似,本書會將一些英文的專有名詞翻譯成中文,在首次提及時會使用中英文對照的方式,如界面組件(Activity),而再次涉及時則會直接使用中文名稱,如界面組件。
本書幾乎沒有完整的代碼實例(具體的實例來源會給出對應的鏈接或描述),只有從中截取并改良過的代碼片段,其描述風格如下:
// 這是一段示例代碼,在代碼的重要位置,會用注釋給出解釋
String hello = "Hello, "; // 重要的變量、函數會用粗體表示
String user_name = GetUserName(); // 一些虛擬的函數、變量,會用斜體表示... // 一些略去的實現細節,會用省略號表示
此外,本書會穿插一些小貼士,提供相關聯的知識內容,小貼士的格式形如:
小貼士
這是一則小貼士,所謂小貼士,就是對相關內容進行擴展介紹,或者是加入一些個人的理解。
資源及勘誤
由于個人能力的局限,雖已竭盡所能,但在本書中對于一些問題的理解難免會有所紕漏,給出的一些解決方案也可能會有缺陷,敬請讀者海涵。如在閱讀過程中發現問題或者有所疑問需要討論,可發郵件至我的郵箱,所有關于本書內容的勘誤會在個人博客
上不斷更新。
- SpringMVC+MyBatis快速開發與項目實戰
- Python for Secret Agents:Volume II
- 零基礎玩轉區塊鏈
- ASP.NET Core 2 and Vue.js
- Python零基礎快樂學習之旅(K12實戰訓練)
- 基于免疫進化的算法及應用研究
- Blockly創意趣味編程
- Python 3破冰人工智能:從入門到實戰
- Kinect for Windows SDK Programming Guide
- Cocos2d-x學習筆記:完全掌握Lua API與游戲項目開發 (未來書庫)
- Getting Started with Gulp
- 深入理解Android:Wi-Fi、NFC和GPS卷
- Building Android UIs with Custom Views
- Android項目實戰:手機安全衛士開發案例解析
- Django 3.0應用開發詳解