Android是移動開發(fā)三大平臺之一。本書是DevDiv移動開發(fā)社區(qū)版主、資深會員在該平臺實際開發(fā)經(jīng)驗的總結(jié),通過大量原創(chuàng)示例全面介紹了Android應(yīng)用開發(fā)的方法和技巧。全書共17章,包括Android系統(tǒng)框架與初始化流程、Activity簡介、常用UI界面以及實現(xiàn)、ListView使用詳解、定制控件、Drawable分類匯總、圖像操作技巧、布局優(yōu)化、消息模型、網(wǎng)絡(luò)通信、桌面組件AppWidget、系統(tǒng)服務(wù)、多媒體開發(fā)、圖片異步加載及緩沖、移動廣告平臺、代碼優(yōu)化技術(shù)和加解密等內(nèi)容?勺鳛锳ndroid初中級開發(fā)者參考用書,也可作為高等院校及社會培訓(xùn)機構(gòu)教材,還可作為自學(xué)人員學(xué)習(xí)用書。
DevDiv移動開發(fā)社區(qū)版主、資深會員聯(lián)合編寫 章節(jié)設(shè)置全面涵蓋Android應(yīng)用開發(fā)技術(shù)要點 原創(chuàng)案例細致呈現(xiàn)作者實際開發(fā)經(jīng)驗
DevDiv覆蓋移動開發(fā)主流平臺Android、iOS、Windows Phone、Windows8、HTML5和Symbian等,集資訊、論壇、博客、獵頭服務(wù)、技術(shù)培訓(xùn)于一體,著有《移動開發(fā)全平臺解決方案——Android/iOS/WindowsPhone》、《WindowsPhone開發(fā)實戰(zhàn)體驗(應(yīng)用+游戲)》和《iOS開發(fā)實戰(zhàn)體驗》,DevDiv已成長為國內(nèi)最具人氣的綜合性移動開發(fā)社區(qū)。
第1章 Android系統(tǒng)架構(gòu)與初始化流程
1.1 Android發(fā)展歷史回顧
1.2 系統(tǒng)架構(gòu)
1.3 初始化流程
1.4 權(quán)限安全機制
第2章 Activity簡介
2.1 Activity的架構(gòu)設(shè)計
2.2 Activity的生命周期
2.3 旋轉(zhuǎn)屏幕重新加載Activity
第3章 常用UI界面以及實現(xiàn)
3.1 緩沖界面
3.2 宮格界面
3.3 Tab界面
3.4 二級列表
3.5 抽屜效果
第1章 Android系統(tǒng)架構(gòu)與初始化流程
1.1 Android發(fā)展歷史回顧
1.2 系統(tǒng)架構(gòu)
1.3 初始化流程
1.4 權(quán)限安全機制
第2章 Activity簡介
2.1 Activity的架構(gòu)設(shè)計
2.2 Activity的生命周期
2.3 旋轉(zhuǎn)屏幕重新加載Activity
第3章 常用UI界面以及實現(xiàn)
3.1 緩沖界面
3.2 宮格界面
3.3 Tab界面
3.4 二級列表
3.5 抽屜效果
3.6 左右滑動效果
3.6.1 系統(tǒng)提供ViewFlipper
3.6.2 自定義ViewFlow
3.7 Gallery
3.8 懸浮框
第4章 ListView使用詳解
4.1 ListView與Adapter的關(guān)系
4.2 ListView綁定EmptyView
4.3 自定義Adapter
4.4 ListView的使用技巧
第5章 定制控件
5.1 擴展系統(tǒng)控件
5.2 自繪控件
5.3 觸屏事件處理
5.4 擴展ViewGroup類
5.5 定義控件屬性
5.6 定制控件的style和theme
第6章 Drawable分類匯總
6.1 ColorDrawable
6.2 GradientDrawable
6.3 BitmapDrawable6
6.4 NinePatchDrawable
6.5 InsetDrawable
6.6 ClipDrawable
6.7 ScaleDrawable
6.8 RotateDrawable
6.9 AnimationDrawable
6.10 LayerDrawable
6.11 LevelListDrawable
6.12 StateListDrawable
6.13 TransitionDrawable
第7章 圖像操作技巧
7.1 位圖資源
7.1.1 加載位圖資源
7.1.2 創(chuàng)建位圖資源
7.1.3 保存位圖資源
7.2 常用的位圖操作
7.2.1 View轉(zhuǎn)換為Bitmap
7.2.2 圖片圓角處理
7.2.3 圖片灰化處理
7.2.4 提取圖像Alpha位圖
7.2.5 圖像變換
7.3 內(nèi)存溢出(OOM)問題
第8章 布局優(yōu)化
8.1 復(fù)用布局文件
8.2 布局的層次結(jié)構(gòu)
8.2.1 Hierachy Viewer
8.2.2 創(chuàng)建高效的布局
8.2.3 合并布局
8.2.4 提高控件查找效率
8.3 布局文件延遲加載
第9章 消息模型
9.1 UI線程
9.2 消息系統(tǒng)與消息模型
9.2.1 消息系統(tǒng)構(gòu)成要素和基本原理
9.2.2 消息模型基本原理
9.2.3 消息模型使用方法
9.2.4 Handler常見用法
第10章 網(wǎng)絡(luò)通信
10.1 使用HttpURLConnection發(fā)送Post/Get請求
10.2 設(shè)置Proxy訪問網(wǎng)絡(luò)
10.3 實現(xiàn)文件下載斷點續(xù)傳
10.3.1 設(shè)計下載任務(wù)進度類DownloadBean
10.3.2 創(chuàng)建下載線程并可隨時中斷線程
10.3.3 設(shè)置網(wǎng)絡(luò)鏈接讀取資源的有效范圍
10.3.4 使用RandomAccessFile隨機讀寫文件
第11章 桌面組件AppWidget
11.1 AppWidget框架結(jié)構(gòu)
11.1.1 AppWidget框架類
11.1.2 AppWidget框架相關(guān)類
11.2 AppWidget開發(fā)
11.2.1 AppWidgetProvider類的使用
11.2.2 AppWidget開發(fā)實例
11.2.3 實例改進
第12章 系統(tǒng)服務(wù)
12.1 系統(tǒng)服務(wù)簡介
12.2 系統(tǒng)服務(wù)開發(fā)
12.2.1 電源服務(wù)開發(fā)
12.2.2 窗口管理服務(wù)開發(fā)
12.2.3 Layout擴展服務(wù)開發(fā)
12.2.4 Activity服務(wù)開發(fā)
12.2.5 Notification服務(wù)開發(fā)
12.2.6 鬧鐘服務(wù)開發(fā)
12.2.7 KeyGuard服務(wù)開發(fā)
12.2.8 位置服務(wù)開發(fā)
12.2.9 Vibrator服務(wù)開發(fā)
第13章 多媒體開發(fā)
13.1 Android多媒體系統(tǒng)簡介
13.1.1 系統(tǒng)架構(gòu)
13.1.2 系統(tǒng)功能
13.1.3 OpenCore簡介
13.1.4 OpenMAX簡介
13.2 MediaPlayer的使用
13.2.1 初始化和準備播放
13.2.2 播放控制
13.2.3 釋放播放資源
13.2.4 視頻播放
13.3 音頻視頻錄制
13.3.1 使用Intent錄制音頻和視頻
13.3.2 使用MediaRecorder錄制音頻和視頻
13.3.3 原始音頻錄制與播放
13.4 Camera使用
13.4.1 運用Intent捕獲照片
13.4.2 調(diào)用Camera組件捕獲照片
13.5 SoundPool類的使用
13.5.1 SoundPool類簡介與適用場合
13.5.2 使用SoundPool播放聲音
第14章 圖片異步加載及緩存
14.1 異步加載與緩存的重要性
14.2 垃圾回收機制與引用類型
14.2.1 Java的垃圾回收機制
14.2.2 Java引用類型
14.2.3 使用軟引用構(gòu)建緩存
第15章 移動廣告平臺
15.1 移動應(yīng)用平臺發(fā)展現(xiàn)狀
15.2 移動廣告平臺發(fā)展趨勢
15.3 移動廣告平臺的盈利模式
15.4 選擇廣告平臺
15.4.1 國內(nèi)移動廣告平臺簡介
15.4.2 平臺選擇參考標準
15.5 嵌入廣告插件
第16章 代碼優(yōu)化技術(shù)
16.1 編譯前的代碼優(yōu)化技術(shù)
16.1.1 盡可能避免創(chuàng)建不必要的對象
16.1.2 方法調(diào)用代碼優(yōu)化
16.1.3 代碼變量優(yōu)化
16.1.4 代碼過程優(yōu)化
16.2 內(nèi)存泄漏代碼優(yōu)化及檢測
16.2.1 內(nèi)存泄漏檢測工具——Memory Analyser Tool(MAT)
16.2.2 MAT使用示例
16.3 代碼混淆技術(shù)
16.3.1 ProGuard簡介
16.3.2 ProGuard使用
第17章 加解密
17.1 使用HASH算法(MD5/SHA1)保護應(yīng)用程序的安全
17.2 使用對稱加密算法(BASE 64)隱藏關(guān)鍵信息
17.3 非對稱加密算法(RSA)的使用
第1章 Android系統(tǒng)架構(gòu)與初始化流程
Android系統(tǒng)是一款基于Linux®2.6內(nèi)核的綜合系統(tǒng)平臺,集合了應(yīng)用程序、應(yīng)用程序框架、系統(tǒng)核心庫、Dalvik虛擬機、Linux內(nèi)核等一系列功能模塊。Android系統(tǒng)被認為是首個為移動終端打造的真正開放和完整的移動應(yīng)用平臺。
本章將在回顧Android發(fā)展歷史的基礎(chǔ)上,一方面從靜態(tài)的角度分析Android的架構(gòu),另一方面從動態(tài)的角度分析Android的初始化過程。從而幫助讀者深入理解和開發(fā)Android應(yīng)用程序。
1.1 Android發(fā)展歷史回顧
“Android”一詞最先出現(xiàn)在法國作家利爾亞當于1886年發(fā)表的科幻小說《未來夏娃》中,作者將外表像人類的機器人命名為Android。據(jù)說Android系統(tǒng)之父安迪·魯賓(AndyRubin)是效仿Linus Torvalds命名Linux系統(tǒng)的方式來給Android系統(tǒng)命名的。
知道了Android系統(tǒng)名稱的來歷之后,下面介紹一下Android系統(tǒng)的來歷。Android系統(tǒng)最初并不是由谷歌公司研發(fā)出來的,而是由安迪·魯賓帶領(lǐng)的團隊創(chuàng)造的。他曾經(jīng)創(chuàng)立了兩個操作系統(tǒng)公司,Android為其中之一。谷歌在2005年收購了這個僅成立22個月的高科技企業(yè),安迪·魯賓則成為谷歌公司的工程部副總裁,繼續(xù)負責(zé)Android項目的研發(fā)工作。
2007年11月5日,谷歌公司正式向外界展示了Android操作系統(tǒng),并且在當天宣布建立一個全球性的聯(lián)盟組織——開放手機聯(lián)盟(OpenHandsetAlliance)。該組織由34家手機制造商、軟件開發(fā)商、電信運營商以及芯片制造商組成,支持谷歌發(fā)布的手機操作系統(tǒng)以及應(yīng)用軟件,并共同開發(fā)Android系統(tǒng)的開放源代碼。
下面回顧一下Android系統(tǒng)的發(fā)展歷史。
……