《工程經(jīng)驗(yàn)手記:Android應(yīng)用開發(fā)精解》以Android應(yīng)用開發(fā)所需要的技術(shù)為線索,先后講解了SDK一些工具的使用、UI開發(fā)、Service開發(fā)、數(shù)據(jù)存儲(chǔ)、圖形動(dòng)畫、網(wǎng)絡(luò)開發(fā)、硬件操作、結(jié)合Web開發(fā)以及如何對(duì)應(yīng)用進(jìn)行優(yōu)化等。本書并沒有從基礎(chǔ)的Eclipse安裝、HelloWorld等講起,而是以Android應(yīng)用開發(fā)過程中常用的技術(shù)作為主線去講解,很多內(nèi)容需要讀者有一定的開發(fā)經(jīng)驗(yàn)才能夠很好地理解。
《工程經(jīng)驗(yàn)手記:Android應(yīng)用開發(fā)精解》在對(duì)各種技術(shù)闡述的過程中,并不是僅僅簡(jiǎn)單地把相關(guān)知識(shí)點(diǎn)講完就結(jié)束了,而是在各知識(shí)點(diǎn)后面分享了大量項(xiàng)目實(shí)踐的經(jīng)驗(yàn)。這些都是作者在項(xiàng)目過程中思考的成果,是多年從事軟件開發(fā)工作的技術(shù)沉淀,是項(xiàng)目實(shí)踐過程中的精華。
本書適合有一定Java基礎(chǔ)并且想要自學(xué)Android開發(fā)的編程愛好者、想要轉(zhuǎn)行從事Android領(lǐng)域開發(fā)的程序員,以及正在從事Android的初學(xué)者閱讀。
第1章 工欲善其事 必先利其器—Android SDK工具
1.1 巧婦難為無(wú)米之炊—Android SDK的安裝
1.2 設(shè)備管理工具—調(diào)試橋(ADB)
1.2.1 ADB簡(jiǎn)介
1.2.2 ADB常用命令
1.3 沒有真機(jī)一樣開發(fā)—Android模擬器
1.4 Android調(diào)試—調(diào)試工具DDMS
1.5 UI布局分析工具—視圖工具(Hierarchy Viewer)
1.6 Log打印—Log輸出工具logcat
1.6.1 啟動(dòng)logcat
1.6.2 過濾日志輸出
1.6.3 控制日志輸出格式
1.6.4 查看可用日志緩沖區(qū)
1.7 圖片拉伸不失真—九宮格繪制工具Draw 9Patch
1.7.1 什么是“點(diǎn)九”文件
1.7.2 點(diǎn)九文件的制作
第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 多項(xiàng)選擇—多選框(CheckBox)和單項(xiàng)選擇—單選框(RadioBox)
2.1.6 圖片拖動(dòng)—拖動(dòng)效果(Gallery)
2.1.7 列表組件(ListView)
2.2 彰顯你的個(gè)性—自定義UI組件
2.3 簡(jiǎn)單明了的消息提示框(Toast)和對(duì)話框(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布局的簡(jiǎn)單介紹
3.2.2 線性布局(LinearLayout)
3.2.3 相對(duì)布局(RelativeLayout)
3.2.4 框架布局(FrameLayout)
3.2.5 表單布局(TableLayout)
3.2.6 絕對(duì)布局(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的啟動(dòng)和停止
4.2.3 我的服務(wù)我來(lái)用—本地服務(wù)開發(fā)
4.2.4 開機(jī)自啟動(dòng)的服務(wù)
4.3 Android線程間的通信—消息機(jī)制
4.3.1 消息的傳遞—Handler的使用
4.3.2 Android中消息機(jī)制的詳細(xì)分析
第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ù)庫(kù)
5.2.1 SQLite數(shù)據(jù)庫(kù)介紹
5.2.2 創(chuàng)建并打開數(shù)據(jù)庫(kù)
5.2.3 添加、刪除和修改操作
5.2.4 游標(biāo)的操作—使用Cu or
5.3 安全方便簡(jiǎn)單—使用SharedPreferences
5.4 我的數(shù)據(jù)大家用—ContentProvider、ContentResolver
第6章 一張白紙好作畫—Canvas畫布
6.1 Canvas畫布簡(jiǎn)介
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 對(duì)Canvas進(jìn)行變換
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 路徑的高級(jí)效果android.graphics.PathEffect
6.4.6 點(diǎn)類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章 實(shí)現(xiàn)炫酷效果—圖像和動(dòng)畫
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 點(diǎn)九圖片—NinePatchDrawable
7.3.4 會(huì)動(dòng)的圖片—StateListDrawable
7.3.5 顏色填充的另一種方法—PaintDrawable
7.3.6 超炫的特效—ShapeDrawable
7.3.7 簡(jiǎn)單的幀動(dòng)畫—AnimationDrawable
7.4 輕量級(jí)圖片—Picture
7.5 Drawable、Bitmap、byte[]之間的轉(zhuǎn)換
7.6 Android提供的幾種動(dòng)畫效果(Animation)
7.7 漸變動(dòng)畫—Tween Animation
7.7.1 Tween Animation簡(jiǎn)介
7.7.2 Tween Animation共同的屬性
7.7.3 淡進(jìn)淡出—AlphaAnimation
7.7.4 忽大忽小—ScaleAnimation
7.7.5 平移—Tra lateAnimation
7.7.6 旋轉(zhuǎn)—RotateAnimation
7.7.7 實(shí)現(xiàn)一個(gè)自己的TweenAnimation
7.8 漸變動(dòng)畫—Frame Animation
7.9 隨意組合動(dòng)畫效果—AnimationSet
7.10 加速的工具—Interpolator
第8章 網(wǎng)絡(luò)的時(shí)代—網(wǎng)絡(luò)開發(fā)
8.1 Android中網(wǎng)絡(luò)開發(fā)概述
8.2 直接基于Socket編程
8.2.1 Socket編程簡(jiǎn)介
8.2.2 基于TCP協(xié)議的Socket編程
8.2.3 基于UDP協(xié)議的Socket編程
8.3 基于最成熟的Web協(xié)議—HTTP協(xié)議編程
8.3.1 HTTP協(xié)議簡(jiǎn)介
8.3.2 使用URL類讀取HTTP資源
8.3.3 使用HttpURLConnection類訪問HTTP資源
8.3.4 使用Apache的HttpClient
8.4 耗時(shí)操作的通用方式—多線程與異步處理
8.4.1 多線程和異步處理簡(jiǎn)介
8.4.2 Handler方式
8.4.3 AsyncTask類實(shí)現(xiàn)后臺(tái)任務(wù)的處理
8.5 輕量級(jí)的數(shù)據(jù)交換格式—JSON
8.5.1 客戶端與服務(wù)器端的數(shù)據(jù)交互
8.5.2 XML格式與JSON格式的比較
8.5.3 解析JSON格式數(shù)據(jù)
第9章 多語(yǔ)言環(huán)境的支持和多屏幕的適配
9.1 Android程序的資源文件
9.1.1 資源文件的目錄結(jié)構(gòu)
9.1.2 資源文件目錄的修飾語(yǔ)
9.1.3 程序加載資源文件的步驟
9.2 國(guó)際化和本地化的支持
9.3 多屏幕的適配
9.3.1 屏幕參數(shù)的基本概念
9.3.2 屏幕參數(shù)的各種單位及相互轉(zhuǎn)換
9.3.3 處理屏幕自適應(yīng)的方法
9.3.4 詳細(xì)說明De ity
第10章 利用手機(jī)特性—結(jié)合硬件進(jìn)行開發(fā)
10.1 炫酷的人機(jī)交互—觸摸和手勢(shì)
10.1.1 實(shí)現(xiàn)滑動(dòng)翻頁(yè)—使用ViewFlipper
10.1.2 支持多個(gè)手指一起操作—實(shí)現(xiàn)多點(diǎn)觸摸
10.1.3 識(shí)別手勢(shì)—使用GestureDetector
10.2 我在哪里—使用定位功能
10.3 電話撥打和短信發(fā)送
10.3.1 調(diào)用系統(tǒng)的電話撥打功能
10.3.2 實(shí)現(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頁(yè)面
11.2.1 Webkit引擎和WebView控件
11.2.2 瀏覽基本的Web頁(yè)面
11.2.3 開啟對(duì)于JavaScript的支持
11.2.4 監(jiān)聽Web頁(yè)面的載入
11.2.5 讓W(xué)ebView支持文件下載
11.3 本地代碼與Web頁(yè)面交互
11.3.1 向Web頁(yè)面?zhèn)鬟f數(shù)據(jù)
11.3.2 本地代碼調(diào)用Web頁(yè)面JavaScript方法
11.3.3 Web頁(yè)面調(diào)用本地Java方法
11.4 Web頁(yè)面的JavaScript調(diào)試
11.5 常用移動(dòng)設(shè)備Web開發(fā)框架
11.5.1 jQuery Mobile框架簡(jiǎn)介
11.5.2 Sencha Touch框架簡(jiǎn)介
11.5.3 PhoneGap開發(fā)平臺(tái)簡(jiǎn)介
第12章 細(xì)節(jié)決定成敗—Android應(yīng)用程序的優(yōu)化
12.1 對(duì)應(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 注重細(xì)節(jié)—從代碼角度進(jìn)行優(yōu)化
12.2 對(duì)界面UI的優(yōu)化
12.2.1 多利用Android系統(tǒng)的資源
12.2.2 抽取相同的布局
12.2.3 精簡(jiǎn)UI層次
12.2.4 界面延遲加載技術(shù)
12.3 留條后路—對(duì)Crash進(jìn)行處理
12.3.1 為什么需要捕獲Crash
12.3.2 如何捕獲和處理Crash
參考文獻(xiàn)