工具1
1.1巧婦難為無米之炊—Android SDK的安裝1
1.2設備管理工具—調試橋(ADB)3
1.2.1ADB簡介3
1.2.2ADB常用命令4
1.3沒有真機一樣開發—Android模擬器7
1.4Android調試—調試工具DDMS9
1.5UI布局分析工具—視圖工具(Hierarchy Viewer)14
1.6Log打印—Log輸出工具logcat17
1.6.1啟動logcat17
1.6.2過濾日志輸出17
1.6.3控制日志輸出格式18
1.6.4查看可用日志緩沖區19
1.7圖片拉伸不失真—九宮格繪制工具Draw 9Patch20
1.7.1什么是“點九”文件20
1.7.2點九文件的制作20
第2章吸引你的眼球—UI編程24
2.1UI基礎—常用UI組件24
2.1.1文本顯示—文本框(TextView)24
2.1.2按鈕(Button)27
2.1.3文本編輯—編輯框(EditText)29
2.1.4圖片顯示—圖片視圖(ImageView)32
2.1.5多項選擇—多選框(CheckBox)和單項選擇—單選框
(RadioBox)34
2.1.6圖片拖動—拖動效果(Gallery)38
2.1.7列表組件(ListView)41
2.2彰顯你的個性—自定義UI組件48
2.3簡單明了的消息提示框(Toast)和對話框(Dialog)51
2.3.1Toast提示51
2.3.2Dialog提示52
2.4Menu鍵的呼喚—Menu菜單56
第3章界面UI的基石—UI布局61
3.1用戶界面的基本單元—View視圖61
3.2百花齊放—各種Layout布局64
3.2.1Layout布局的簡單介紹64
3.2.2線性布局(LinearLayout)64
3.2.3相對布局(RelativeLayout)67
3.2.4框架布局(FrameLayout)70
3.2.5表單布局(TableLayout)72
3.2.6絕對布局(AbsoluteLayout)74
3.3樣式(Style)和主題(Theme)的使用76
3.3.1樣式(Style)的使用76
3.3.2主題(Theme)的使用77
Android應用開發精解
第4章Android開發三大基石—Activity、Service和Handler79
4.1應用程序的接口—Activity窗口79
4.1.1Activity生命周期79
4.1.2Activity棧81
4.1.3Activity的創建81
4.1.4Activity的4種加載模式82
4.1.5Activity交互—Activity跳轉83
4.1.6Activity中數據傳遞86
4.2千變萬化的服務-Service開發87
4.2.1Service的生命周期87
4.2.2Service的啟動和停止88
4.2.3我的服務我來用—本地服務開發89
4.2.4開機自啟動的服務93
4.3Android線程間的通信—消息機制95
4.3.1消息的傳遞—Handler的使用95
4.3.2Android中消息機制的詳細分析97
第5章以數據為中心—數據存取100
5.1文件操作100
5.1.1讀寫一般的文本文件100
5.1.2結構性的文件—讀寫XML文件103
5.1.3自由操作,隨心所欲—序列化和反序列化113
5.2通用的數據操作方式—數據庫116
5.2.1SQLite數據庫介紹116
5.2.2創建并打開數據庫116
5.2.3添加、刪除和修改操作117
5.2.4游標的操作—使用Cursor120
5.3安全方便簡單—使用SharedPreferences121
5.4我的數據大家用—ContentProvider、ContentResolver123
第6章一張白紙好作畫—Canvas畫布126
6.1Canvas畫布簡介126
6.1.1View Canvas—使用普通View的Canvas畫圖126
6.1.2Bitmap Canvas—使用普通Bitmap的Canvas畫圖128
6.1.3SurfaceView Canvas—使用SurfaceView的Canvas畫圖128
6.2Canvas常用繪制方法131
6.3對Canvas進行變換133
6.4Canvas繪制的輔助類134
6.4.1畫筆android.graphics.Paint134
6.4.2字體android.graphics.Typeface135
6.4.3顏色android.graphics.Color136
6.4.4路徑android.graphics.Path137
6.4.5路徑的高級效果android.graphics.PathEffect139
6.4.6點類android.graphics.Point和android.graphics.PointF141
6.4.7形狀類android.graphics.Rect和android.graphics.RectF142
6.4.8區域android.graphics.Region與Region.Op144
6.4.9千姿百態,矩陣變換android.graphics.Matrix145
第7章實現炫酷效果—圖像和動畫149
7.1Android的幾種常用圖像類型149
7.2圖片的基礎—Bitmap(位圖)150
7.2.1如何獲取位圖資源150
7.2.2如果獲取位圖的信息151
7.2.3位圖的顯示與變換152
7.3變化多端—Drawable(繪圖類)154
7.3.1Drawable的一些常用子類154
7.3.2BitmapDrawable154
7.3.3點九圖片—NinePatchDrawable155
7.3.4會動的圖片—StateListDrawable156
7.3.5顏色填充的另一種方法—PaintDrawable157
7.3.6超炫的特效—ShapeDrawable157
7.3.7簡單的幀動畫—AnimationDrawable165
7.4輕量級圖片—Picture167
7.5Drawable、Bitmap、byte[]之間的轉換167
7.6Android提供的幾種動畫效果(Animation)168
7.7漸變動畫—Tween Animation169
7.7.1Tween Animation簡介169
7.7.2Tween Animation共同的屬性169
7.7.3淡進淡出—AlphaAnimation170
7.7.4忽大忽小—ScaleAnimation171
7.7.5平移—TranslateAnimation172
7.7.6旋轉—RotateAnimation173
7.7.7實現一個自己的TweenAnimation174
7.8漸變動畫—Frame Animation176
7.9隨意組合動畫效果—AnimationSet177
7.10加速的工具—Interpolator178
第8章網絡的時代—網絡開發180
8.1Android中網絡開發概述180
8.2直接基于Socket編程181
8.2.1Socket編程簡介181
8.2.2基于TCP協議的Socket編程183
8.2.3基于UDP協議的Socket編程184
8.3基于最成熟的Web協議—HTTP協議編程185
8.3.1HTTP協議簡介185
8.3.2使用URL類讀取HTTP資源187
8.3.3使用HttpURLConnection類訪問HTTP資源189
8.3.4使用Apache的HttpClient190
8.4耗時操作的通用方式—多線程與異步處理192
8.4.1多線程和異步處理簡介192
8.4.2Handler方式193
8.4.3AsyncTask類實現后臺任務的處理197
8.5輕量級的數據交換格式—JSON199
8.5.1客戶端與服務器端的數據交互199
8.5.2XML格式與JSON格式的比較201
8.5.3解析JSON格式數據202
第9章多語言環境的支持和多屏幕的適配205
9.1Android程序的資源文件205
9.1.1資源文件的目錄結構205
9.1.2資源文件目錄的修飾語206
9.1.3程序加載資源文件的步驟208
9.2國際化和本地化的支持209
9.3多屏幕的適配210
9.3.1屏幕參數的基本概念210
9.3.2屏幕參數的各種單位及相互轉換211
9.3.3處理屏幕自適應的方法212
9.3.4詳細說明Density214
第10章利用手機特性—結合硬件進行開發217
10.1炫酷的人機交互—觸摸和手勢217
10.1.1實現滑動翻頁—使用ViewFlipper217
10.1.2支持多個手指一起操作—實現多點觸摸222
10.1.3識別手勢—使用GestureDetector227
10.2我在哪里—使用定位功能230
10.3電話撥打和短信發送233
10.3.1調用系統的電話撥打功能233
10.3.2實現發送短信的功能234
10.4拍照和攝像235
10.5使用傳感器238
10.5.1傳感器概述238
10.5.2加速度傳感器241
10.5.3方向傳感器242
10.5.4其他傳感器243
第11章避重就輕—結合Web開發Android應用245
11.1Android上的Web應用概述245
11.2使用WebView載入Web頁面247
11.2.1Webkit引擎和WebView控件247
11.2.2瀏覽基本的Web頁面247
11.2.3開啟對于JavaScript的支持249
11.2.4監聽Web頁面的載入250
11.2.5讓WebView支持文件下載250
11.3本地代碼與Web頁面交互252
11.3.1向Web頁面傳遞數據252
11.3.2本地代碼調用Web頁面JavaScript方法254
11.3.3Web頁面調用本地Java方法254
11.4Web頁面的JavaScript調試259
11.5常用移動設備Web開發框架260
11.5.1jQuery Mobile框架簡介260
11.5.2Sencha Touch框架簡介262
11.5.3PhoneGap開發平臺簡介262
第12章細節決定成敗—Android應用程序的優化264
12.1對應用內存的優化264
12.1.1Android程序的內存概述264
12.1.2追蹤內存—使用內存優化輔助工具266
12.1.3吃內存大戶—Bitmap的優化270
12.1.4想回收就回收—使用軟引用和弱引用274
12.1.5注重細節—從代碼角度進行優化277
12.2對界面UI的優化281
12.2.1多利用Android系統的資源281
12.2.2抽取相同的布局284
12.2.3精簡UI層次285
12.2.4界面延遲加載技術287
12.3留條后路—對Crash進行處理288
12.3.1為什么需要捕獲Crash288
12.3.2如何捕獲和處理Crash289
參考文獻292