本書以目前較為穩(wěn)定的Android 9.0(API level 28)為基礎,全面講解了Android程序設計,涵蓋了Android程序設計所需的必備知識點,每個知識點都對應了示例。全書共12章,具體內(nèi)容包括:Android快速入門、Activity組件、UI組件基礎、AdapterView組件、UI組件進階、Fragment 組件、線程間通信、數(shù)據(jù)存儲、網(wǎng)絡通信、Service 組件、廣播、應用程序間的數(shù)據(jù)共享。
本書適合Android初學者入門使用,也可作為高等院校相關(guān)課程的教材,還可作為Android程序員的參考用書。
Android系統(tǒng)作為當今最為流行、最為普及的移動端操作系統(tǒng)之一,受到了廣大開發(fā)人員的青睞。本書旨在引導開發(fā)人員快速入門Android程序設計,在學習本書前開發(fā)人員應具備Java語言的基礎知識。
1. 本書內(nèi)容簡介
從準確意義上說,Android不是一門語言,而是一個程序設計框架。作為一個全新的程序設計框架,讀者應將學習的重點集中在框架本身的功能及模塊上。
本書以目前較為穩(wěn)定的Android 9.0(API level 28)為基礎,全面講解了Android程序設計。全書共分為12章,涵蓋了Android程序設計的必備知識點,每個知識點都對應了示例,秉承北京尚學堂實戰(zhàn)化的教學理念,讓大家高效學習,迅速進入開發(fā)者角色。
本書所涉及內(nèi)容以Java程序設計為基礎,建議在開設本書課程前應設置不少于32學時的Java程序設計課程。本書內(nèi)容注重實踐,建議教學時理論課時數(shù)不少于24學時,實驗課時數(shù)不少于32學時。
本書第1~6章由山西農(nóng)業(yè)大學史廣編寫,第7~12章由北京尚學堂科技有限公司高昱編寫,全書由北京尚學堂科技有限公司高淇主審。
本書適合Android初學者入門使用,也可作為高等院校相關(guān)課程的教材,還可作為Android程序員的參考用書。
2. 叢書作者團隊簡介
本書為“百戰(zhàn)程序員”系列叢書之一。本系列叢書由北京尚學堂科技有限公司組織編寫。公司目前業(yè)務涵蓋軟件開發(fā)、技術(shù)培訓、技術(shù)咨詢、在線教育四大領域,事業(yè)部遍布國內(nèi)十多個城市。公司目前與北京大學軟件工程國家研發(fā)中心聯(lián)合研發(fā)了“程序理解與代碼正確性智能判斷”技術(shù),連續(xù)多年被新浪網(wǎng)、騰訊網(wǎng)授予“中國好老師”“金牌教育機構(gòu)”等稱號,具有豐富的軟件開始經(jīng)驗與教材編寫實力。這套“百戰(zhàn)程序員”系列叢書涉及大數(shù)據(jù)、人工智能、Android開發(fā)、Java語言、C語言、Python語言等領域,其中每冊書均配有一定的相關(guān)資源。
叢書編寫組郵箱:book@sxt.cn,歡迎聯(lián)系交流。
本系列叢書配套資料可掃描以下二維碼獲取:
三人行必有我?guī),如讀者在閱讀本系列叢書的過程中發(fā)現(xiàn)有不妥之處,望請指出,我們會不斷改進、完善。
第1章 Android快速入門 1
1.1 Android系統(tǒng)概述 1
1.1.1 Android系統(tǒng)的版本更替 2
1.1.2 Android系統(tǒng)的特性 3
1.1.3 Android系統(tǒng)的體系結(jié)構(gòu) 3
1.2 開發(fā)環(huán)境的搭建 5
1.2.1 開發(fā)工具 5
1.2.2 開發(fā)環(huán)境的搭建 5
1.3 Android項目的創(chuàng)建 11
1.3.1 創(chuàng)建項目 11
1.3.2 模擬器的配置 14
1.3.3 運行項目 15
1.4 Android項目的結(jié)構(gòu) 16
1.5 日志工具Log的使用 19
習題 20
第2章 Activity組件 21
2.1 Activity簡介 21
2.2 創(chuàng)建Activity 21
2.3 創(chuàng)建Layout 23
2.4 綁定Layout 24
2.5 Activity的生命周期 25
2.6 Activity的起死回生 26
2.7 Activity之間的切換 29
2.7.1 使用顯式Intent 29
2.7.2 使用隱式Intent 32
2.7.3 Intent向下傳遞數(shù)據(jù) 33
2.7.4 Intent向上傳遞數(shù)據(jù) 35
2.8 Activity的啟動模式 38
2.8.1 standard模式 39
2.8.2 singleTop模式 40
2.8.3 singleTask模式 40
2.8.4 singleInstance模式 43
習題 43
第3章 UI組件基礎 44
3.1 View和ViewGroup 44
3.2 布局組件 45
3.2.1 LinearLayout(線性布局) 45
3.2.2 RelativeLayout(相對布局) 47
3.2.3 TableLayout(表格布局) 49
3.2.4 FrameLayout(幀布局) 52
3.2.5 GridLayout(網(wǎng)格布局) 54
3.2.6 AbsoluteLayout(絕對布局) 55
3.3 常用UI組件 56
3.3.1 TextView(文本框) 56
3.3.2 EditText (輸入框) 58
3.3.3 Button(按鈕) 59
3.3.4 ImageView(圖像視圖) 61
3.3.5 RadioButton(單選按鈕) 64
3.3.6 CheckBox(復選框) 66
3.3.7 ProgressBar(進度條) 70
習題 72
第4章 AdapterView組件 73
4.1 AdapterView簡介 73
4.2 Adapter簡介 73
4.3 ListView組件 74
4.4 使用自定義Adapter填充ListView組件 75
4.5 使用ArrayAdapter填充ListView組件 79
4.6 使用SimpleAdapter填充ListView組件 80
4.7 ListView的事件 83
4.8 ListView的緩存機制 83
4.9 Spinner組件 85
4.10 RecyclerView組件 87
4.10.1 RecyclerView的基本使用 87
4.10.2 RecyclerView的布局管理器 90
4.10.3 RecyclerView的點擊事件 93
習題 94
第5章 UI組件進階 95
5.1 Dialog(對話框) 95
5.1.1 AlertDialog(提示對話框) 95
5.1.2 ProgressDialog(進度條對話框) 101
5.1.3 DatePickerDialog(日期選擇對話框) 102
5.2 Menu(菜單) 104
5.2.1 OptionsMenu(選項菜單) 104
5.2.2 ContextMenu(上下文菜單) 106
5.2.3 SubMenu(子菜單) 109
5.3 Notification (通知) 111
5.3.1 Notification的使用 111
5.3.2 Notification的大視圖風格 115
5.4 Toast(消息提示框) 118
5.4.1 Toast的使用 119
5.4.2 自定義Toast 122
5.5 樣式和主題 123
5.5.1 樣式 124
5.5.2 主題 125
5.6 單位和尺寸 125
習題 126
第6章 Fragment組件 127
6.1 Fragment簡介 127
6.2 Fragment的生命周期 128
6.3 Fragment的靜態(tài)加載 129
6.4 Fragment的動態(tài)加載 132
6.5 Fragment的回退棧 137
習題 139
第7章 線程間通信 140
7.1 Handler消息傳遞機制 140
7.2 Message對象 145
7.3 MessageQueue消息隊列 146
7.4 Looper消息循環(huán) 146
7.4.1 Looper簡介 147
7.4.2 主線程向子線程發(fā)送消息 147
7.5 AsyncTask異步任務執(zhí)行類 149
習題 153
第8章 數(shù)據(jù)存儲 154
8.1 文件存儲 154
8.1.1 將數(shù)據(jù)存儲到文件中 154
8.1.2 從文件中讀取數(shù)據(jù) 157
8.2 SharedPreferences存儲 160
8.2.1 數(shù)據(jù)寫入SharedPreferences中 160
8.2.2 讀取SharedPreferences中的數(shù)據(jù) 163
8.3 SQLite存儲 165
8.3.1 創(chuàng)建數(shù)據(jù)庫 166
8.3.2 升級數(shù)據(jù)庫 169
8.3.3 增加數(shù)據(jù) 172
8.3.4 刪除數(shù)據(jù) 175
8.3.5 修改數(shù)據(jù) 178
8.3.6 查詢數(shù)據(jù) 182
習題 185
第9章 網(wǎng)絡通信 186
9.1 HTTP協(xié)議 186
9.2 獲取網(wǎng)絡狀態(tài) 186
9.3 使用WebView加載網(wǎng)頁 190
9.4 使用HttpURLConnection發(fā)送HTTP請求 191
9.5 xml數(shù)據(jù)解析 195
9.6 json數(shù)據(jù)解析 196
習題 197
第10章 Service 組件 198
10.1 Service的生命周期 198
10.2 Service的創(chuàng)建 199
10.3 通過startService()方法啟動Service 200
10.4 通過bindService()方法啟動Service 203
10.5 使用IntentService實現(xiàn)Service的異步執(zhí)行 206
10.6 使用AIDL實現(xiàn)Service的進程間通信 208
習題 216
第11章 廣播 217
11.1 廣播簡介 217
11.2 廣播接收者 218
11.3 接收系統(tǒng)廣播 218
11.4 自定義廣播 221
習題 225
第12章 應用程序間的數(shù)據(jù)共享 226
12.1 數(shù)據(jù)共享的原理 226
12.2 數(shù)據(jù)共享的權(quán)限 226
12.3 使用ContentResolver實現(xiàn)數(shù)據(jù)共享 230
12.4 使用ContentProvider實現(xiàn)數(shù)據(jù)共享 234
習題 242
附錄 Android系統(tǒng)權(quán)限一覽表 243
參考文獻 248