本書以目前較為穩(wěn)定的Android 9.0(API level 28)為基礎(chǔ),全面講解了Android程序設(shè)計(jì),涵蓋了Android程序設(shè)計(jì)所需的必備知識點(diǎn),每個(gè)知識點(diǎn)都對應(yīng)了示例。全書共12章,具體內(nèi)容包括:Android快速入門、Activity組件、UI組件基礎(chǔ)、AdapterView組件、UI組件進(jìn)階、Fragment 組件、線程間通信、數(shù)據(jù)存儲(chǔ)、網(wǎng)絡(luò)通信、Service 組件、廣播、應(yīng)用程序間的數(shù)據(jù)共享。
本書適合Android初學(xué)者入門使用,也可作為高等院校相關(guān)課程的教材,還可作為Android程序員的參考用書。
Android系統(tǒng)作為當(dāng)今最為流行、最為普及的移動(dòng)端操作系統(tǒng)之一,受到了廣大開發(fā)人員的青睞。本書旨在引導(dǎo)開發(fā)人員快速入門Android程序設(shè)計(jì),在學(xué)習(xí)本書前開發(fā)人員應(yīng)具備Java語言的基礎(chǔ)知識。
1. 本書內(nèi)容簡介
從準(zhǔn)確意義上說,Android不是一門語言,而是一個(gè)程序設(shè)計(jì)框架。作為一個(gè)全新的程序設(shè)計(jì)框架,讀者應(yīng)將學(xué)習(xí)的重點(diǎn)集中在框架本身的功能及模塊上。
本書以目前較為穩(wěn)定的Android 9.0(API level 28)為基礎(chǔ),全面講解了Android程序設(shè)計(jì)。全書共分為12章,涵蓋了Android程序設(shè)計(jì)的必備知識點(diǎn),每個(gè)知識點(diǎn)都對應(yīng)了示例,秉承北京尚學(xué)堂實(shí)戰(zhàn)化的教學(xué)理念,讓大家高效學(xué)習(xí),迅速進(jìn)入開發(fā)者角色。
本書所涉及內(nèi)容以Java程序設(shè)計(jì)為基礎(chǔ),建議在開設(shè)本書課程前應(yīng)設(shè)置不少于32學(xué)時(shí)的Java程序設(shè)計(jì)課程。本書內(nèi)容注重實(shí)踐,建議教學(xué)時(shí)理論課時(shí)數(shù)不少于24學(xué)時(shí),實(shí)驗(yàn)課時(shí)數(shù)不少于32學(xué)時(shí)。
本書第1~6章由山西農(nóng)業(yè)大學(xué)史廣編寫,第7~12章由北京尚學(xué)堂科技有限公司高昱編寫,全書由北京尚學(xué)堂科技有限公司高淇主審。
本書適合Android初學(xué)者入門使用,也可作為高等院校相關(guān)課程的教材,還可作為Android程序員的參考用書。
2. 叢書作者團(tuán)隊(duì)簡介
本書為“百戰(zhàn)程序員”系列叢書之一。本系列叢書由北京尚學(xué)堂科技有限公司組織編寫。公司目前業(yè)務(wù)涵蓋軟件開發(fā)、技術(shù)培訓(xùn)、技術(shù)咨詢、在線教育四大領(lǐng)域,事業(yè)部遍布國內(nèi)十多個(gè)城市。公司目前與北京大學(xué)軟件工程國家研發(fā)中心聯(lián)合研發(fā)了“程序理解與代碼正確性智能判斷”技術(shù),連續(xù)多年被新浪網(wǎng)、騰訊網(wǎng)授予“中國好老師”“金牌教育機(jī)構(gòu)”等稱號,具有豐富的軟件開始經(jīng)驗(yàn)與教材編寫實(shí)力。這套“百戰(zhàn)程序員”系列叢書涉及大數(shù)據(jù)、人工智能、Android開發(fā)、Java語言、C語言、Python語言等領(lǐng)域,其中每冊書均配有一定的相關(guān)資源。
叢書編寫組郵箱:book@sxt.cn,歡迎聯(lián)系交流。
本系列叢書配套資料可掃描以下二維碼獲。
三人行必有我?guī),如讀者在閱讀本系列叢書的過程中發(fā)現(xiàn)有不妥之處,望請指出,我們會(huì)不斷改進(jì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項(xiàng)目的創(chuàng)建 11
1.3.1 創(chuàng)建項(xiàng)目 11
1.3.2 模擬器的配置 14
1.3.3 運(yùn)行項(xiàng)目 15
1.4 Android項(xiàng)目的結(jié)構(gòu) 16
1.5 日志工具Log的使用 19
習(xí)題 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的啟動(dòng)模式 38
2.8.1 standard模式 39
2.8.2 singleTop模式 40
2.8.3 singleTask模式 40
2.8.4 singleInstance模式 43
習(xí)題 43
第3章 UI組件基礎(chǔ) 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(復(fù)選框) 66
3.3.7 ProgressBar(進(jìn)度條) 70
習(xí)題 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的緩存機(jī)制 83
4.9 Spinner組件 85
4.10 RecyclerView組件 87
4.10.1 RecyclerView的基本使用 87
4.10.2 RecyclerView的布局管理器 90
4.10.3 RecyclerView的點(diǎn)擊事件 93
習(xí)題 94
第5章 UI組件進(jìn)階 95
5.1 Dialog(對話框) 95
5.1.1 AlertDialog(提示對話框) 95
5.1.2 ProgressDialog(進(jìn)度條對話框) 101
5.1.3 DatePickerDialog(日期選擇對話框) 102
5.2 Menu(菜單) 104
5.2.1 OptionsMenu(選項(xiàng)菜單) 104
5.2.2 ContextMenu(上下文菜單) 106
5.2.3 SubMenu(子菜單) 109
5.3 Notification (通知) 111
5.3.1 Notification的使用 111
5.3.2 Notification的大視圖風(fēng)格 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
習(xí)題 126
第6章 Fragment組件 127
6.1 Fragment簡介 127
6.2 Fragment的生命周期 128
6.3 Fragment的靜態(tài)加載 129
6.4 Fragment的動(dòng)態(tài)加載 132
6.5 Fragment的回退棧 137
習(xí)題 139
第7章 線程間通信 140
7.1 Handler消息傳遞機(jī)制 140
7.2 Message對象 145
7.3 MessageQueue消息隊(duì)列 146
7.4 Looper消息循環(huán) 146
7.4.1 Looper簡介 147
7.4.2 主線程向子線程發(fā)送消息 147
7.5 AsyncTask異步任務(wù)執(zhí)行類 149
習(xí)題 153
第8章 數(shù)據(jù)存儲(chǔ) 154
8.1 文件存儲(chǔ) 154
8.1.1 將數(shù)據(jù)存儲(chǔ)到文件中 154
8.1.2 從文件中讀取數(shù)據(jù) 157
8.2 SharedPreferences存儲(chǔ) 160
8.2.1 數(shù)據(jù)寫入SharedPreferences中 160
8.2.2 讀取SharedPreferences中的數(shù)據(jù) 163
8.3 SQLite存儲(chǔ) 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
習(xí)題 185
第9章 網(wǎng)絡(luò)通信 186
9.1 HTTP協(xié)議 186
9.2 獲取網(wǎng)絡(luò)狀態(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
習(xí)題 197
第10章 Service 組件 198
10.1 Service的生命周期 198
10.2 Service的創(chuàng)建 199
10.3 通過startService()方法啟動(dòng)Service 200
10.4 通過bindService()方法啟動(dòng)Service 203
10.5 使用IntentService實(shí)現(xiàn)Service的異步執(zhí)行 206
10.6 使用AIDL實(shí)現(xiàn)Service的進(jìn)程間通信 208
習(xí)題 216
第11章 廣播 217
11.1 廣播簡介 217
11.2 廣播接收者 218
11.3 接收系統(tǒng)廣播 218
11.4 自定義廣播 221
習(xí)題 225
第12章 應(yīng)用程序間的數(shù)據(jù)共享 226
12.1 數(shù)據(jù)共享的原理 226
12.2 數(shù)據(jù)共享的權(quán)限 226
12.3 使用ContentResolver實(shí)現(xiàn)數(shù)據(jù)共享 230
12.4 使用ContentProvider實(shí)現(xiàn)數(shù)據(jù)共享 234
習(xí)題 242
附錄 Android系統(tǒng)權(quán)限一覽表 243
參考文獻(xiàn) 248