《Java與Android移動套用開發:技術、方法與實踐》是2018年9月清華大學出版社出版的圖書,作者是曹化宇。
基本介紹
- 書名:Java與Android移動套用開發:技術、方法與實踐
- 作者:曹化宇
- ISBN:9787302505907
- 定價:79元
- 出版社:清華大學出版社
- 出版時間:2018年9月
內容簡介,圖書目錄,
內容簡介
本書是一執行緒序員多年開發經驗的結晶之作,深入淺出地講解Android移動套用開發所需要的幾乎全部基礎內容,幫助讀者快速進入Android套用開發,在項目中靈活套用各種開發技術和方法。
本書共29章,第1章討論全書的知識架構及在學習和工作中如何使用本書。第2~12章主要討論Java程式語言基礎知識,涉及Java程式語言、數據處理、常用JDK套用與設計模式等內容。第13~29章主要討論Android移動套用開發知識,首先討論Android SDK中各種基本組件的套用;然後對Android套用中的一些常用功能開始進行討論;最後創建一個完整的示例項目,討論如何套用不同版本的圖示、布局、語言等資源,並討論套用發布所需要做的工作和注意事項。
本書內容安排合理,架構清晰,注重理論與實踐相結合,適合作為零基礎學習Android移動套用開發的初學者的教程,也適合作為有一定編程基礎的程式設計師的參考用書。
圖書目錄
第1章 導讀 1
第2章 Java開發基礎 4
2.1 安裝JDK和NetBeans 4
2.2 第一個Java程式 6
2.2.1 語句與語句塊 8
2.2.2 注釋內容 9
2.3 保留字與標識符 10
2.4 基本數據類型 12
2.5 整數 13
2.5.1 算術運算 13
2.5.2 增量與減量運算 14
2.5.3 位運算 14
2.6 浮點數 16
2.7 類型轉換 17
2.8 char類型 19
2.9 boolean類型 20
2.10 枚舉類型 20
2.11 代碼的組織 21
第3章 面向對象編程 23
3.1 類與對象 23
3.1.1 構造函式與對象釋放 25
3.1.2 getter()和setter()方法 27
3.1.3 靜態成員與靜態初始化 28
3.2 方法 30
3.2.1 可變長參數 31
3.2.2 重載 31
3.3 繼承 32
3.3.1 java.lang.Object類 34
3.3.2 擴展與重寫 34
3.3.3 訪問級別 36
3.3.4 instanceof運算符 37
3.3.5 抽象類與抽象方法 37
3.4 數據類型處理 39
3.4.1 基本數據類型與包裝類 40
3.4.2 數據的傳遞 41
3.4.3 類型的動態處理 43
3.5 java.lang.Math類 44
3.6 java.util.Random類 45
第4章 接口 47
4.1 創建接口類型 47
4.2 實現接口 47
4.3 接口的繼承 48
4.4 對象複製 50
4.4.1 實現Cloneable接口 50
4.4.2 實現Serializable接口 51
第5章 流程控制 54
5.1 比較運算符 54
5.2 if-else語句和 :運算符 54
5.3 switch語句 56
5.4 循環語句 58
5.4.1 for語句 58
5.4.2 while語句 59
5.4.3 do-while語句 60
5.4.4 break語句與標籤 60
5.4.5 continue語句 61
5.5 異常處理 62
5.5.1 異常類 62
5.5.2 try-catch-finally語句 63
5.5.3 throw語句 64
5.5.4 throws關鍵字 64
5.5.5 try()語句結構 65
第6章 字元串 67
6.1 String類 67
6.1.1 字元串的運算與比較 67
6.1.2 常用方法 67
6.1.3 將字元串轉換為其他類型 70
6.2 StringBuffer類 71
6.2.1 基本操作 71
6.2.2 添加內容 72
6.2.3 刪除內容 72
6.2.4 查詢 73
6.2.5 替換 73
6.2.6 反向排列 73
6.3 StringBuilder類 74
6.4 正則表達式 74
6.5 獲取MD5和SHA-1編碼 75
6.6 獲取GUID 76
第7章 泛型 77
7.1 泛型類 77
7.2 泛型方法 78
7.3 泛型接口 79
7.4 泛型限制 79
第8章 數組與集合 82
8.1 數組 82
8.2 List<E>接口及相關類型 84
8.3 Map<K, V>接口及相關類型 86
第9章 日期與時間 89
9.1 傳統的日期和時間處理方法 89
9.1.1 Date類 89
9.1.2 格式化日期和時間 90
9.1.3 Calendar類 91
9.1.4 TimeZone類 92
9.1.5 Locale類 93
9.2 使用java.time包 93
9.2.1 獲取本地日期與時間 93
9.2.2 處理年、月、日數據 95
9.2.3 處理時區 95
9.3 封裝CDateTime類 96
第10章 輸入輸出 103
10.1 檔案與 103
10.2 檔案的讀寫操作 104
10.2.1 流 104
10.2.2 讀寫文本內容 105
10.3 使用java.nio資源 107
第11章 多執行緒與定時器 109
11.1 執行緒 109
11.2 定時器 110
第12章 設計模式 112
12.1 策略模式 112
12.2 單件模式 115
12.3 訪問者模式 116
第13章 Android套用開發基礎 119
13.1 Android Studio的安裝 119
13.2 項目創建與測試 120
13.2.1 使用AVD測試 122
13.2.2 使用真實設備測試 124
13.2.3 判斷Android版本 124
13.3 再看Android Studio開發環境 127
13.3.1 項目資源的組織 127
13.3.2 代碼字型設定 128
13.3.3 查看日誌 128
13.4 第一次修改套用配置(隱藏標題欄) 129
13.5 Android套用的基本要素 131
第14章 Activity 132
14.1 基本套用 132
14.2 運行周期 135
14.3 Activity的啟動與關閉 136
14.3.1 啟動Activity 136
14.3.2 Activity返回棧 139
14.3.3 Activity的啟動模式 140
14.4 數據傳遞 142
14.4.1 使用Intent 142
14.4.2 接收返回數據 144
14.4.3 Bundle(數據自動保存與載入) 147
14.5 Intent的更多套用 148
第15章 常用組件 151
15.1 按鈕與事件回響 151
15.1.1 回響單擊操作 153
15.1.2 回響長按操作並振動 154
15.1.3 回響觸摸事件 156
15.2 文本組件 157
15.2.1 TextView 157
15.2.2 EditText 157
15.3 訊息與對話框 158
15.3.1 Toast 159
15.3.2 AlertDialog 159
15.3.3 ProgressDialog 161
15.4 選單 162
15.5 單選按鈕 165
15.6 複選框 168
15.7 下拉列表 171
15.8 圖像組件 177
15.9 列表 178
15.9.1 綁定列表數據 178
15.9.2 回響列表項單擊 180
15.9.3 獲取正確的項目索引 182
15.10 進度條 184
15.11 滑塊 186
15.12 選擇日期和時間對話框 188
15.13 更多組件 191
15.14 圖像處理 192
15.14.1 Bitmap和Matrix類 193
15.14.2 縮放 193
15.14.3 旋轉 195
15.14.4 扭曲 195
第16章 布局與容器 197
16.1 尺寸單位 197
16.2 線性布局 197
16.3 相對布局 201
16.4 ScrollView和HorizontalScrollView 204
16.5 搜尋功能 204
16.6 自定義組件 206
16.6.1 創建布局 207
16.6.2 創建組件類 209
16.6.3 使用9-Patch圖片 212
第17章 通知與服務 214
17.1 通知 214
17.1.1 創建簡單的通知 214
17.1.2 回響通知操作 216
17.1.3 更多設定 217
17.2 服務 218
17.2.1 Service類 218
17.2.2 IntentService類 222
17.2.3 循環服務(使用AlarmManager) 224
第18章 廣播 228
18.1 接收廣播(判斷網路狀態) 228
18.2 傳送廣播 230
18.3 有序廣播 232
18.4 本地廣播 234
第19章 網路套用 236
19.1 配置IIS網站 236
19.2 獲取網路資源 238
19.2.1 使用HttpURLConnection對象 240
19.2.2 讀取文本內容(GET方式) 240
19.2.3 使用參數(GET方式) 242
19.2.4 使用POST方式 243
19.2.5 將獲取的內容顯示到TextView中 244
19.3 處理JSON數據 245
19.3.1 處理JSONObject對象 246
19.3.2 處理JSONArray對象 248
19.4 處理XML數據 249
19.5 將檔案上傳到伺服器 252
19.5.1 準備接收伺服器(ASP.NET) 252
19.5.2 上傳檔案 253
19.6 封裝CHttp類 256
19.6.1 使用GET方式獲取文本 256
19.6.2 使用POST方式獲取文本 257
19.6.3 獲取JSON數據 259
19.6.4 測試 261
第20章 保存數據 263
20.1 使用Context保存數據 263
20.1.1 保存檔案 265
20.1.2 讀取檔案 266
20.2 使用SharedPreferences保存數據 266
20.2.1 保存數據 268
20.2.2 載入數據 269
第21章 SQLite資料庫 270
21.1 資料庫 270
21.1.1 打開與關閉資料庫 272
21.1.2 SQLiteOpenHelper類 272
21.2 數據表與欄位 276
21.2.1 欄位類型 276
21.2.2 創建表 277
21.2.3 刪除表 278
21.2.4 修改表結構 278
21.2.5 索引 279
21.3 添加記錄 279
21.3.1 insert語句 279
21.3.2 參數 280
21.3.3 SQLiteDatabase.insert()方法 281
21.4 查詢記錄 282
21.4.1 select語句 282
21.4.2 SQLiteDatabase.rawQuery()方法 283
21.4.3 使用Cursor類讀取數據 285
21.4.4 查詢練習 286
21.5 修改記錄 287
21.5.1 update語句 287
21.5.2 SQLiteDatabase.update()方法 287
21.6 刪除記錄 288
21.6.1 delete語句 288
21.6.2 SQLiteDatabase.delete()方法 288
21.7 高級查詢 289
21.7.1 函式 289
21.7.2 排序 290
21.7.3 分組 291
21.8 主鍵與外鍵 292
21.8.1 創建“一對多”數據結構 292
21.8.2 join關鍵字 294
21.9 視圖 295
21.10 使用DB Browser練習SQL語句 297
第22章 Android SDK定位功能 299
22.1 獲取許可權與基本位置信息 299
22.2 跟蹤位置變化 303
22.3 獲取一次最新位置信息 306
第23章 高德地圖SDK 307
23.1 準備工作 307
23.2 封裝RequestPermission ActivityBase類 312
23.3 定位 315
23.4 顯示地圖 319
23.5 小結 324
第24章 百度地圖SDK 325
24.1 準備工作 325
24.2 定位 329
24.3 顯示地圖 332
第25章 感測器 338
25.1 感測器對象 338
25.2 加速計(製作水平儀) 339
25.3 陀螺儀 342
25.4 亮度感測器(控制相機閃光燈) 343
第26章 套用之間的數據傳遞 346
26.1 向其他套用提供數據 (ContentProvider) 346
26.1.1 訪問內容的Uri 347
26.1.2 數據初始化——onCreate()方法 349
26.1.3 添加數據——insert()方法 349
26.1.4 更新數據——update()方法 350
26.1.5 刪除數據——delete()方法 350
26.1.6 查詢數據——query()方法 351
26.1.7 數據類型(MIME)——getType()方法 351
26.2 操作外部數據(ContentResolver) 352
26.3 路徑處理 358
26.4 相機和圖庫 360
26.4.1 保存照片 364
26.4.2 讀取照片 364
26.5 播放音頻(極簡音樂播放器) 366
26.6 播放視頻 371
26.7 讀取通訊錄(打電話與發簡訊) 373
第27章 資源與本地化 378
27.1 資源套用限定符 378
27.2 套用圖示 380
27.3 豎屏與橫屏 381
27.4 語言 384
27.5 顏色 385
第28章 項目演示:迷你賬本 387
28.1 資料庫操作(CAccount類) 389
28.1.1 初始化 389
28.1.2 添加記錄 391
28.1.3 刪除記錄 391
28.1.4 賬目查詢 391
28.1.5 賬目統計 394
28.2 主界面 395
28.2.1 自定義賬目顯示組件 398
28.2.2 基本查詢 401
28.2.3 賬目刪除 402
28.3 添加賬目 403
28.4 查詢 407
28.5 統計 412
28.6 其他工作 415
第29章 套用發布 416
29.1 創建Key與APK檔案 416
29.2 發布套用的多個版本 419