《工程經(jīng)驗手記:Android應(yīng)用開發(fā)精解》以Android應(yīng)用開發(fā)所需要的技術(shù)為線索,先后講解了SDK一些工具的使用、UI開發(fā)、Service開發(fā)、數(shù)據(jù)存儲、圖形動畫、網(wǎng)絡(luò)開發(fā)、硬件操作、結(jié)合Web開發(fā)以及如何對應(yīng)用進行優(yōu)化等。本書并沒有從基礎(chǔ)的Eclipse安裝、HelloWorld等講起,而是以Android應(yīng)用開發(fā)過程中常用的技術(shù)作為主線去講解,很多內(nèi)容需要讀者有一定的開發(fā)經(jīng)驗才能夠很好地理解。
《工程經(jīng)驗手記:Android應(yīng)用開發(fā)精解》在對各種技術(shù)闡述的過程中,并不是僅僅簡單地把相關(guān)知識點講完就結(jié)束了,而是在各知識點后面分享了大量項目實踐的經(jīng)驗。這些都是作者在項目過程中思考的成果,是多年從事軟件開發(fā)工作的技術(shù)沉淀,是項目實踐過程中的精華。
本書適合有一定Java基礎(chǔ)并且想要自學Android開發(fā)的編程愛好者、想要轉(zhuǎn)行從事Android領(lǐng)域開發(fā)的程序員,以及正在從事Android的初學者閱讀。
第1章 工欲善其事 必先利其器—Android SDK工具
1.1 巧婦難為無米之炊—Android SDK的安裝
1.2 設(shè)備管理工具—調(diào)試橋(ADB)
1.2.1 ADB簡介
1.2.2 ADB常用命令
1.3 沒有真機一樣開發(fā)—Android模擬器
1.4 Android調(diào)試—調(diào)試工具DDMS
1.5 UI布局分析工具—視圖工具(Hierarchy Viewer)
1.6 Log打印—Log輸出工具logcat
1.6.1 啟動logcat
1.6.2 過濾日志輸出
1.6.3 控制日志輸出格式
1.6.4 查看可用日志緩沖區(qū)
1.7 圖片拉伸不失真—九宮格繪制工具Draw 9Patch
1.7.1 什么是“點九”文件
1.7.2 點九文件的制作
第2章 吸引你的眼球—UI編程
2.1 UI基礎(chǔ)—常用UI組件
2.1.1 文本顯示—文本框(TextView)
2.1.2 按鈕(Button)
2.1.3 文本編輯—編輯框(EditText)
2.1.4 圖片顯示—圖片視圖(ImageView)
2.1.5 多項選擇—多選框(CheckBox)和單項選擇—單選框(RadioBox)
2.1.6 圖片拖動—拖動效果(Gallery)
2.1.7 列表組件(ListView)
2.2 彰顯你的個性—自定義UI組件
2.3 簡單明了的消息提示框(Toast)和對話框(Dialog)
2.3.1 Toast提示
2.3.2 Dialog提示
2.4 Menu鍵的呼喚—Menu菜單
第3章 界面UI的基石—UI布局
3.1 用戶界面的基本單元—View視圖
3.2 百花齊放—各種Layout布局
3.2.1 Layout布局的簡單介紹
3.2.2 線性布局(LinearLayout)
3.2.3 相對布局(RelativeLayout)
3.2.4 框架布局(FrameLayout)
3.2.5 表單布局(TableLayout)
3.2.6 絕對布局(AbsoluteLayout)
3.3 樣式(Style)和主題(Theme)的使用
3.3.1 樣式(Style)的使用
3.3.2 主題(Theme)的使用
第4章 Android開發(fā)三大基石—Activity、Service和Handler
4.1 應(yīng)用程序的接口—Activity窗口
4.1.1 Activity生命周期
4.1.2 Activity棧
4.1.3 Activity的創(chuàng)建
4.1.4 Activity的4種加載模式
4.1.5 Activity交互—Activity跳轉(zhuǎn)
4.1.6 Activity中數(shù)據(jù)傳遞
4.2 千變?nèi)f化的服務(wù)-Service開發(fā)
4.2.1 Service的生命周期
4.2.2 Service的啟動和停止
4.2.3 我的服務(wù)我來用—本地服務(wù)開發(fā)
4.2.4 開機自啟動的服務(wù)
4.3 Android線程間的通信—消息機制
4.3.1 消息的傳遞—Handler的使用
4.3.2 Android中消息機制的詳細分析
第5章 以數(shù)據(jù)為中心—數(shù)據(jù)存取
5.1 文件操作
5.1.1 讀寫一般的文本文件
5.1.2 結(jié)構(gòu)性的文件—讀寫XML文件
5.1.3 自由操作,隨心所欲—序列化和反序列化
5.2 通用的數(shù)據(jù)操作方式—數(shù)據(jù)庫
5.2.1 SQLite數(shù)據(jù)庫介紹
5.2.2 創(chuàng)建并打開數(shù)據(jù)庫
5.2.3 添加、刪除和修改操作
5.2.4 游標的操作—使用Cu or
5.3 安全方便簡單—使用SharedPreferences
5.4 我的數(shù)據(jù)大家用—ContentProvider、ContentResolver
第6章 一張白紙好作畫—Canvas畫布
6.1 Canvas畫布簡介
6.1.1 View Canvas—使用普通View的Canvas畫圖
6.1.2 Bitmap Canvas—使用普通Bitmap的Canvas畫圖
6.1.3 SurfaceView Canvas—使用SurfaceView的Canvas畫圖
6.2 Canvas常用繪制方法
6.3 對Canvas進行變換
6.4 Canvas繪制的輔助類
6.4.1 畫筆android.graphics.Paint
6.4.2 字體android.graphics.Typeface
6.4.3 顏色android.graphics.Color
6.4.4 路徑android.graphics.Path
6.4.5 路徑的高級效果android.graphics.PathEffect
6.4.6 點類android.graphics.Point和android.graphics.PointF
6.4.7 形狀類android.graphics.Rect和android.graphics.RectF
6.4.8 區(qū)域android.graphics.Region與Region.Op
6.4.9 千姿百態(tài),矩陣變換android.graphics.Matrix
第7章 實現(xiàn)炫酷效果—圖像和動畫
7.1 Android的幾種常用圖像類型
7.2 圖片的基礎(chǔ)—Bitmap(位圖)
7.2.1 如何獲取位圖資源
7.2.2 如果獲取位圖的信息
7.2.3 位圖的顯示與變換
7.3 變化多端—Drawable(繪圖類)
7.3.1 Drawable的一些常用子類
7.3.2 BitmapDrawable
7.3.3 點九圖片—NinePatchDrawable
7.3.4 會動的圖片—StateListDrawable
7.3.5 顏色填充的另一種方法—PaintDrawable
7.3.6 超炫的特效—ShapeDrawable
7.3.7 簡單的幀動畫—AnimationDrawable
7.4 輕量級圖片—Picture
7.5 Drawable、Bitmap、byte[]之間的轉(zhuǎn)換
7.6 Android提供的幾種動畫效果(Animation)
7.7 漸變動畫—Tween Animation
7.7.1 Tween Animation簡介
7.7.2 Tween Animation共同的屬性
7.7.3 淡進淡出—AlphaAnimation
7.7.4 忽大忽小—ScaleAnimation
7.7.5 平移—Tra lateAnimation
7.7.6 旋轉(zhuǎn)—RotateAnimation
7.7.7 實現(xiàn)一個自己的TweenAnimation
7.8 漸變動畫—Frame Animation
7.9 隨意組合動畫效果—AnimationSet
7.10 加速的工具—Interpolator
第8章 網(wǎng)絡(luò)的時代—網(wǎng)絡(luò)開發(fā)
8.1 Android中網(wǎng)絡(luò)開發(fā)概述
8.2 直接基于Socket編程
8.2.1 Socket編程簡介
8.2.2 基于TCP協(xié)議的Socket編程
8.2.3 基于UDP協(xié)議的Socket編程
8.3 基于最成熟的Web協(xié)議—HTTP協(xié)議編程
8.3.1 HTTP協(xié)議簡介
8.3.2 使用URL類讀取HTTP資源
8.3.3 使用HttpURLConnection類訪問HTTP資源
8.3.4 使用Apache的HttpClient
8.4 耗時操作的通用方式—多線程與異步處理
8.4.1 多線程和異步處理簡介
8.4.2 Handler方式
8.4.3 AsyncTask類實現(xiàn)后臺任務(wù)的處理
8.5 輕量級的數(shù)據(jù)交換格式—JSON
8.5.1 客戶端與服務(wù)器端的數(shù)據(jù)交互
8.5.2 XML格式與JSON格式的比較
8.5.3 解析JSON格式數(shù)據(jù)
第9章 多語言環(huán)境的支持和多屏幕的適配
9.1 Android程序的資源文件
9.1.1 資源文件的目錄結(jié)構(gòu)
9.1.2 資源文件目錄的修飾語
9.1.3 程序加載資源文件的步驟
9.2 國際化和本地化的支持
9.3 多屏幕的適配
9.3.1 屏幕參數(shù)的基本概念
9.3.2 屏幕參數(shù)的各種單位及相互轉(zhuǎn)換
9.3.3 處理屏幕自適應(yīng)的方法
9.3.4 詳細說明De ity
第10章 利用手機特性—結(jié)合硬件進行開發(fā)
10.1 炫酷的人機交互—觸摸和手勢
10.1.1 實現(xiàn)滑動翻頁—使用ViewFlipper
10.1.2 支持多個手指一起操作—實現(xiàn)多點觸摸
10.1.3 識別手勢—使用GestureDetector
10.2 我在哪里—使用定位功能
10.3 電話撥打和短信發(fā)送
10.3.1 調(diào)用系統(tǒng)的電話撥打功能
10.3.2 實現(xiàn)發(fā)送短信的功能
10.4 拍照和攝像
10.5 使用傳感器
10.5.1 傳感器概述
10.5.2 加速度傳感器
10.5.3 方向傳感器
10.5.4 其他傳感器
第11章 避重就輕—結(jié)合Web開發(fā)Android應(yīng)用
11.1 Android上的Web應(yīng)用概述
11.2 使用WebView載入Web頁面
11.2.1 Webkit引擎和WebView控件
11.2.2 瀏覽基本的Web頁面
11.2.3 開啟對于JavaScript的支持
11.2.4 監(jiān)聽Web頁面的載入
11.2.5 讓WebView支持文件下載
11.3 本地代碼與Web頁面交互
11.3.1 向Web頁面?zhèn)鬟f數(shù)據(jù)
11.3.2 本地代碼調(diào)用Web頁面JavaScript方法
11.3.3 Web頁面調(diào)用本地Java方法
11.4 Web頁面的JavaScript調(diào)試
11.5 常用移動設(shè)備Web開發(fā)框架
11.5.1 jQuery Mobile框架簡介
11.5.2 Sencha Touch框架簡介
11.5.3 PhoneGap開發(fā)平臺簡介
第12章 細節(jié)決定成敗—Android應(yīng)用程序的優(yōu)化
12.1 對應(yīng)用內(nèi)存的優(yōu)化
12.1.1 Android程序的內(nèi)存概述
12.1.2 追蹤內(nèi)存—使用內(nèi)存優(yōu)化輔助工具
12.1.3 吃內(nèi)存大戶—Bitmap的優(yōu)化
12.1.4 想回收就回收—使用軟引用和弱引用
12.1.5 注重細節(jié)—從代碼角度進行優(yōu)化
12.2 對界面UI的優(yōu)化
12.2.1 多利用Android系統(tǒng)的資源
12.2.2 抽取相同的布局
12.2.3 精簡UI層次
12.2.4 界面延遲加載技術(shù)
12.3 留條后路—對Crash進行處理
12.3.1 為什么需要捕獲Crash
12.3.2 如何捕獲和處理Crash
參考文獻