《第一行代碼——Android》是2016年10月人民郵電出版社出版的圖書,作者是郭霖。
基本介紹
- 書名:第一行代碼——Android
- 作者:郭霖
- ISBN:9787115362865
- 頁數:553頁
- 定價:79元
- 出版社:人民郵電出版社
- 出版時間:2016年10月
- 裝幀:平裝
- 開本:16開
內容簡介,圖書目錄,
內容簡介
本書是Android初學者的入門書。全書由淺入深、系統全面地講解了Android軟體開發的方方面面。
第 1章帶領你搭狼坑戒囑建Android開發環境,完成你的一個Android程式。
第 2到13章完整地講解了Android開發中的各種基本知識和關鍵技術,包括四大組件、UI、碎片、廣播機制、數據存儲、服務、多媒體、網路、定位服務、感測器,以及分散式版本控制系統Git的使用等等。在部分章節會穿插相關技術的高 級使用技巧。
第 14章和第 15章則將帶領你編寫一個完整的項目,教會你如何打包、上架、嵌入廣告並獲得盈利。
本書內容通俗易懂,既適合初學者循序漸進地閱讀,也可作為一本參考良項市手冊,隨時查閱。
圖書目錄
第 1章 開始啟程,你的第 一行Android代碼 1
1.1 了解全貌,Android王國簡介 2
1.1.1 Android系統架構 2
1.1.2 Android已發布的版本 3
1.1.3 Android套用開發特色 4
1.2 手把手帶你搭建開發環境 5
1.2.1 準榜戶趨備所需要的軟體 5
1.2.2 搭建開發環境 6
1.3 創建你的第 一個Android項目 11
1.3.1 創建HelloWorld項目 11
1.3.2 運行HelloWorld 14
1.3.3 分析你的第 一個Android程式 16
1.3.4 詳解項目中的資源 20
1.4 前行必 備,掌握日誌工具的使用 22
1.4.1 添加LogCat到你的Eclipse 22
1.4.2 使用Android的日誌工具Log 23
1.4.3 為什麼使用Log而不使用System.out 24
1.5 小結與點評 26
第 2章 先從看得到的入手,探究活動 28
2.1 活動是巴悼匪什麼 28
2.2 活動的基本用法 28
2.2.1 手動創建活動 29
2.2.2 創建和載入布局 30
2.2.3 在AndroidManifest檔案中註冊 34
2.2.4 隱藏標題欄 35
2.2.5 在活動糊試去中使用Toast 36
2.2.6 在活動中使用Menu 38
2.2.7 銷毀一個活動 41
2.3 使用Intent在活動之間穿梭 41
2.3.1 使用顯式Intent 41
2.3.2 使用隱式Intent 44
2.3.3 更多隱式Intent的用法 46
2.3.4 向下一個活動傳遞數據 51
2.3.5 返回數據給上一個活動 52
2.4 活動的生命周期 55
2.4.1 返回棧 55
2.4.2 活動狀態 56
2.4.3 活動的生存期 56
2.4.4 體驗活動的生命周期 58
2.4.5 活動被回收了怎么辦 66
2.5 活動的啟動模宙府愉蘭式 68
2.5.1 standard 68
2.5.2 singleTop 70
2.5.3 singleTask 72
2.5.4 singleInstance 74
2.6 活動的最佳實踐 77
2.6.1 知曉當前是在哪一個活動 77
2.6.2 隨時隨地退出程式 78
2.6.3 啟動活動的最佳寫法 80
2.7 小結與點評 81
第3章 軟體也要拼臉蛋,UI開發的點點滴滴 83
3.1 該如何編寫程式界面 83
3.2 常見控制項的使用方法 84
3.2.1 TextView 84
3.2.2 Button 88
3.2.3 EditText 90
3.2.4 ImageView 95
3.2.5 ProgressBar 97
3.2.6 AlertDialog 101
3.2.7 ProgressDialog 103
3.3 詳解四種基本布局 105
3.3.1 LinearLayout 105
3.3.2 RelativeLayout 112
3.3.3 FrameLayout 116
3.3.4 TableLayout 117
3.4 系統控制項不夠用?創建自定義控制項 120
3.4.1 引入布局 121
3.4.2 創建自定義控制項 124
3.5 最常用和最難用的控制項——ListView 127
3.5.1 ListView的簡單用法 127
3.5.2 定製ListView的界面 129
3.5.3 提升ListView的運行效率 133
3.5.4 ListView的點擊事件 135
3.6 單位和尺寸 137
3.6.1 px和pt的窘境 137
3.6.2 dp和sp來幫忙 139
3.7 編寫界面的最佳實踐 141
3.7.1 製作Nine-Patch圖潤邀片 141
3.7.2 編寫精美的聊天界面 145
3.8 小結與點評 151
第4章 手機平板要兼顧,探究碎片 153
4.1 碎片是什麼 153
4.2 碎片的使用方式 155
4.2.1 碎片的簡單用法 157
4.2.2 動態添加碎片 160
4.2.3 在碎片中模擬返回棧 163
4.2.4 碎片和活動之間進行通信 164
4.3 碎片的生命周期 165
4.3.1 碎片的狀態和回調 165
4.3.2 體驗碎片的生命周期 168
4.4 動態載入布局的技巧 171
4.4.1 使用限定符 171
4.4.2 使用最小寬度限定符 174
4.5 碎片的最佳實踐——一個簡易版的新聞套用 175
4.6 小結與點評 187
第5章 全局大喇叭,詳解廣播機制 188
5.1 廣播機制簡介 188
5.2 接收系統廣播 189
5.2.1 動態註冊監聽網路變化 190
5.2.2 靜態註冊實現開機啟動 194
5.3 傳送自定義廣播 196
5.3.1 傳送標準廣播 197
5.3.2 傳送有序廣播 199
5.4 使用本地廣播 202
5.5 廣播的最佳實踐——實現強制下線功能 205
5.6 Git時間,初識版本控制工具 215
5.6.1 安裝Git 215
5.6.2 創建代碼倉庫 216
5.6.3 提交本地代碼 218
5.7 小結與點評 218
第6章 數據存儲全方案,詳解持久化技術 220
6.1 持久化技術簡介 220
6.2 檔案存儲 221
6.2.1 將數據存儲到檔案中 221
6.2.2 從檔案中讀取數據 225
6.3 SharedPreferences存儲 228
6.3.1 將數據存儲到SharedPreferences中 229
6.3.2 從SharedPreferences中讀取數據 232
6.3.3 實現記住密碼功能 234
6.4 SQLite資料庫存儲 238
6.4.1 創建資料庫 239
6.4.2 升級資料庫 245
6.4.3 添加數據 248
6.4.4 更新數據 251
6.4.5 刪除數據 254
6.4.6 查詢數據 256
6.4.7 使用SQL運算元據庫 260
6.5 SQLite資料庫的最佳實踐 260
6.5.1 使用事務 261
6.5.2 升級資料庫的最佳寫法 263
6.6 小結與點評 266
第7章 跨程式共享數據,探究內容提供器 268
7.1 內容提供器簡介 268
7.2 訪問其他程式中的數據 269
7.2.1 ContentResolver的基本用法 269
7.2.2 讀取系統聯繫人 271
7.3 創建自己的內容提供器 275
7.3.1 創建內容提供器的步驟 276
7.3.2 實現跨程式數據共享 281
7.4 Git時間,版本控制工具進階 292
7.4.1 忽略檔案 292
7.4.2 查看修改內容 293
7.4.3 撤銷未提交的修改 295
7.4.4 查看提交記錄 296
7.5 小結與點評 297
第8章 豐富你的程式,運用手機多媒體 298
8.1 使用通知 298
8.1.1 通知的基本用法 298
8.1.2 通知的高 級技巧 305
8.2 接收和傳送簡訊 307
8.2.1 接收簡訊 308
8.2.2 攔截簡訊 313
8.2.3 傳送簡訊 314
8.3 調用攝像頭和相冊 320
8.3.1 將程式運行到手機上 320
8.3.2 調用攝像頭拍照 322
8.3.3 從相冊中選擇照片 327
8.4 播放多媒體檔案 331
8.4.1 播放音頻 332
8.4.2 播放視頻 336
8.5 小結與點評 340
第9章 後台默默的勞動者,探究服務 341
9.1 服務是什麼 341
9.2 Android多執行緒編程 341
9.2.1 執行緒的基本用法 342
9.2.2 在子執行緒中更新UI 343
9.2.3 解析異步訊息處理機制 348
9.2.4 使用AsyncTask 349
9.3 服務的基本用法 353
9.3.1 定義一個服務 353
9.3.2 啟動和停止服務 355
9.3.3 活動和服務進行通信 359
9.4 服務的生命周期 363
9.5 服務的更多技巧 364
9.5.1 使用前台服務 364
9.5.2 使用IntentService 367
9.6 服務的最佳實踐——後台執行的定時任務 371
9.7 小結與點評 376
第 10章 看看精彩的世界,使用網路技術 377
10.1 WebView的用法 377
10.2 使用HTTP協定訪問網路 380
10.2.1 使用HttpURLConnection 380
10.2.2 使用HttpClient 385
10.3 解析XML格式數據 388
10.3.1 Pull解析方式 391
10.3.2 SAX解析方式 394
10.4 解析JSON格式數據 398
10.4.1 使用JSONObject 399
10.4.2 使用GSON 401
10.5 網路編程的最佳實踐 404
10.6 小結與點評 408
第 11章 Android特色開發,基於位置的服務 409
11.1 基於位置的服務簡介 409
11.2 找到自己的位置 409
11.2.1 LocationManager的基本用法 410
11.2.2 確定自己位置的經緯度 412
11.3 反向地理編碼,看得懂的位置信息 415
11.3.1 Geocoding API的用法 416
11.3.2 對經緯度進行解析 417
11.4 使用百度地圖 420
11.4.1 申請API Key 420
11.4.2 讓地圖顯示出來 423
11.4.3 定位到我的位置 427
11.4.4 使用覆蓋物來增加更多功能 430
11.5 Git時間,版本控制工具的高 級用法 434
11.5.1 分支的用法 434
11.5.2 與遠程版本庫協作 437
11.6 小結與點評 438
第 12章 Android特色開發,使用感測器 439
12.1 感測器簡介 439
12.2 光照感測器 439
12.2.1 光照感測器的用法 440
12.2.2 製作簡易光照探測器 441
12.3 加速度感測器 443
12.3.1 加速度感測器的用法 443
12.3.2 模仿微信搖一搖 444
12.4 方向感測器 446
12.4.1 方向感測器的用法 446
12.4.2 製作簡易指南針 448
12.5 小結與點評 453
第 13章 繼續進階,你還應該掌握的高 級技巧 455
13.1 全局獲取Context的技巧 455
13.2 使用Intent傳遞對象 459
13.2.1 Serializable方式 459
13.2.2 Parcelable方式 461
13.3 定製自己的日誌工具 462
13.4 調試Android程式 464
13.5 編寫測試用例 468
13.5.1 創建測試工程 468
13.5.2 進行單元測試 471
13.6 總結 474
第 14章 進入實戰,開發酷歐天氣 476
14.1 功能需求及技術可行性分析 476
14.2 Git時間,將代碼託管到GitHub上 478
14.3 創建資料庫和表 485
14.4 遍歷全國省市縣數據 494
14.5 顯示天氣信息 507
14.6 切換城市和手動更新天氣 519
14.7 後台自動更新天氣 523
14.8 修改圖示和名稱 526
14.9 你還可以做的事情 528
第 15章 最後一步,將套用發布到Google Play 530
15.1 生成正式簽名的APK檔案 530
15.2 申請Google Play賬號 533
15.3 上傳和發布應用程式 534
15.4 嵌入廣告進行盈利 541
15.4.1 註冊有米賬號和驗證身份 542
15.4.2 下載和接入有米SDK 544
15.4.3 重新發布應用程式 550
15.5 結束語 553
2.4 活動的生命周期 55
2.4.1 返回棧 55
2.4.2 活動狀態 56
2.4.3 活動的生存期 56
2.4.4 體驗活動的生命周期 58
2.4.5 活動被回收了怎么辦 66
2.5 活動的啟動模式 68
2.5.1 standard 68
2.5.2 singleTop 70
2.5.3 singleTask 72
2.5.4 singleInstance 74
2.6 活動的最佳實踐 77
2.6.1 知曉當前是在哪一個活動 77
2.6.2 隨時隨地退出程式 78
2.6.3 啟動活動的最佳寫法 80
2.7 小結與點評 81
第3章 軟體也要拼臉蛋,UI開發的點點滴滴 83
3.1 該如何編寫程式界面 83
3.2 常見控制項的使用方法 84
3.2.1 TextView 84
3.2.2 Button 88
3.2.3 EditText 90
3.2.4 ImageView 95
3.2.5 ProgressBar 97
3.2.6 AlertDialog 101
3.2.7 ProgressDialog 103
3.3 詳解四種基本布局 105
3.3.1 LinearLayout 105
3.3.2 RelativeLayout 112
3.3.3 FrameLayout 116
3.3.4 TableLayout 117
3.4 系統控制項不夠用?創建自定義控制項 120
3.4.1 引入布局 121
3.4.2 創建自定義控制項 124
3.5 最常用和最難用的控制項——ListView 127
3.5.1 ListView的簡單用法 127
3.5.2 定製ListView的界面 129
3.5.3 提升ListView的運行效率 133
3.5.4 ListView的點擊事件 135
3.6 單位和尺寸 137
3.6.1 px和pt的窘境 137
3.6.2 dp和sp來幫忙 139
3.7 編寫界面的最佳實踐 141
3.7.1 製作Nine-Patch圖片 141
3.7.2 編寫精美的聊天界面 145
3.8 小結與點評 151
第4章 手機平板要兼顧,探究碎片 153
4.1 碎片是什麼 153
4.2 碎片的使用方式 155
4.2.1 碎片的簡單用法 157
4.2.2 動態添加碎片 160
4.2.3 在碎片中模擬返回棧 163
4.2.4 碎片和活動之間進行通信 164
4.3 碎片的生命周期 165
4.3.1 碎片的狀態和回調 165
4.3.2 體驗碎片的生命周期 168
4.4 動態載入布局的技巧 171
4.4.1 使用限定符 171
4.4.2 使用最小寬度限定符 174
4.5 碎片的最佳實踐——一個簡易版的新聞套用 175
4.6 小結與點評 187
第5章 全局大喇叭,詳解廣播機制 188
5.1 廣播機制簡介 188
5.2 接收系統廣播 189
5.2.1 動態註冊監聽網路變化 190
5.2.2 靜態註冊實現開機啟動 194
5.3 傳送自定義廣播 196
5.3.1 傳送標準廣播 197
5.3.2 傳送有序廣播 199
5.4 使用本地廣播 202
5.5 廣播的最佳實踐——實現強制下線功能 205
5.6 Git時間,初識版本控制工具 215
5.6.1 安裝Git 215
5.6.2 創建代碼倉庫 216
5.6.3 提交本地代碼 218
5.7 小結與點評 218
第6章 數據存儲全方案,詳解持久化技術 220
6.1 持久化技術簡介 220
6.2 檔案存儲 221
6.2.1 將數據存儲到檔案中 221
6.2.2 從檔案中讀取數據 225
6.3 SharedPreferences存儲 228
6.3.1 將數據存儲到SharedPreferences中 229
6.3.2 從SharedPreferences中讀取數據 232
6.3.3 實現記住密碼功能 234
6.4 SQLite資料庫存儲 238
6.4.1 創建資料庫 239
6.4.2 升級資料庫 245
6.4.3 添加數據 248
6.4.4 更新數據 251
6.4.5 刪除數據 254
6.4.6 查詢數據 256
6.4.7 使用SQL運算元據庫 260
6.5 SQLite資料庫的最佳實踐 260
6.5.1 使用事務 261
6.5.2 升級資料庫的最佳寫法 263
6.6 小結與點評 266
第7章 跨程式共享數據,探究內容提供器 268
7.1 內容提供器簡介 268
7.2 訪問其他程式中的數據 269
7.2.1 ContentResolver的基本用法 269
7.2.2 讀取系統聯繫人 271
7.3 創建自己的內容提供器 275
7.3.1 創建內容提供器的步驟 276
7.3.2 實現跨程式數據共享 281
7.4 Git時間,版本控制工具進階 292
7.4.1 忽略檔案 292
7.4.2 查看修改內容 293
7.4.3 撤銷未提交的修改 295
7.4.4 查看提交記錄 296
7.5 小結與點評 297
第8章 豐富你的程式,運用手機多媒體 298
8.1 使用通知 298
8.1.1 通知的基本用法 298
8.1.2 通知的高 級技巧 305
8.2 接收和傳送簡訊 307
8.2.1 接收簡訊 308
8.2.2 攔截簡訊 313
8.2.3 傳送簡訊 314
8.3 調用攝像頭和相冊 320
8.3.1 將程式運行到手機上 320
8.3.2 調用攝像頭拍照 322
8.3.3 從相冊中選擇照片 327
8.4 播放多媒體檔案 331
8.4.1 播放音頻 332
8.4.2 播放視頻 336
8.5 小結與點評 340
第9章 後台默默的勞動者,探究服務 341
9.1 服務是什麼 341
9.2 Android多執行緒編程 341
9.2.1 執行緒的基本用法 342
9.2.2 在子執行緒中更新UI 343
9.2.3 解析異步訊息處理機制 348
9.2.4 使用AsyncTask 349
9.3 服務的基本用法 353
9.3.1 定義一個服務 353
9.3.2 啟動和停止服務 355
9.3.3 活動和服務進行通信 359
9.4 服務的生命周期 363
9.5 服務的更多技巧 364
9.5.1 使用前台服務 364
9.5.2 使用IntentService 367
9.6 服務的最佳實踐——後台執行的定時任務 371
9.7 小結與點評 376
第 10章 看看精彩的世界,使用網路技術 377
10.1 WebView的用法 377
10.2 使用HTTP協定訪問網路 380
10.2.1 使用HttpURLConnection 380
10.2.2 使用HttpClient 385
10.3 解析XML格式數據 388
10.3.1 Pull解析方式 391
10.3.2 SAX解析方式 394
10.4 解析JSON格式數據 398
10.4.1 使用JSONObject 399
10.4.2 使用GSON 401
10.5 網路編程的最佳實踐 404
10.6 小結與點評 408
第 11章 Android特色開發,基於位置的服務 409
11.1 基於位置的服務簡介 409
11.2 找到自己的位置 409
11.2.1 LocationManager的基本用法 410
11.2.2 確定自己位置的經緯度 412
11.3 反向地理編碼,看得懂的位置信息 415
11.3.1 Geocoding API的用法 416
11.3.2 對經緯度進行解析 417
11.4 使用百度地圖 420
11.4.1 申請API Key 420
11.4.2 讓地圖顯示出來 423
11.4.3 定位到我的位置 427
11.4.4 使用覆蓋物來增加更多功能 430
11.5 Git時間,版本控制工具的高 級用法 434
11.5.1 分支的用法 434
11.5.2 與遠程版本庫協作 437
11.6 小結與點評 438
第 12章 Android特色開發,使用感測器 439
12.1 感測器簡介 439
12.2 光照感測器 439
12.2.1 光照感測器的用法 440
12.2.2 製作簡易光照探測器 441
12.3 加速度感測器 443
12.3.1 加速度感測器的用法 443
12.3.2 模仿微信搖一搖 444
12.4 方向感測器 446
12.4.1 方向感測器的用法 446
12.4.2 製作簡易指南針 448
12.5 小結與點評 453
第 13章 繼續進階,你還應該掌握的高 級技巧 455
13.1 全局獲取Context的技巧 455
13.2 使用Intent傳遞對象 459
13.2.1 Serializable方式 459
13.2.2 Parcelable方式 461
13.3 定製自己的日誌工具 462
13.4 調試Android程式 464
13.5 編寫測試用例 468
13.5.1 創建測試工程 468
13.5.2 進行單元測試 471
13.6 總結 474
第 14章 進入實戰,開發酷歐天氣 476
14.1 功能需求及技術可行性分析 476
14.2 Git時間,將代碼託管到GitHub上 478
14.3 創建資料庫和表 485
14.4 遍歷全國省市縣數據 494
14.5 顯示天氣信息 507
14.6 切換城市和手動更新天氣 519
14.7 後台自動更新天氣 523
14.8 修改圖示和名稱 526
14.9 你還可以做的事情 528
第 15章 最後一步,將套用發布到Google Play 530
15.1 生成正式簽名的APK檔案 530
15.2 申請Google Play賬號 533
15.3 上傳和發布應用程式 534
15.4 嵌入廣告進行盈利 541
15.4.1 註冊有米賬號和驗證身份 542
15.4.2 下載和接入有米SDK 544
15.4.3 重新發布應用程式 550
15.5 結束語 553