針對普通高校和職業(yè)院校面向應用型人才培養(yǎng)模式的轉型,本書重新設計了教學內(nèi)容體系,注重與實際開發(fā)的銜接,基礎知識點的實例注重"小而簡”,綜合實例注重"實而精”。Android編程主要涉及的技術包括UI、數(shù)據(jù)獲取、數(shù)據(jù)呈現(xiàn)、數(shù)據(jù)上傳、驗證碼、圖片選取、視頻播放、GPS定位、在線版本更新等。掌握這些技術可以實現(xiàn)大部分社交類、新聞類、購物/服務類、點餐類、點評類、教學類、音視頻播放類移動應用程序的主要功能。而聊天類、實時推送類、支付類、直播類、語音/文字/圖像識別類移動應用程序的主要功能,大多通過第三方開放平臺提供的服務來完成;拍攝類、音視頻處理類、3D/VR/AR類、AI類、系統(tǒng)安全類、硬件通信類、底層類移動應用程序的主要功能,涉及知識領域太廣,不適合初學者涉獵。本書特別適合初學者快速進入開發(fā)狀態(tài),如果具有后臺開發(fā)能力,就能夠開發(fā)出獨立的系統(tǒng)。本書的結構體系和實例,也為教師建設課程體系、制作網(wǎng)絡課程和申請精品課程提供了便利。本書內(nèi)容循序漸進,注重知識點的承接關系,涉及零基礎到APP上線發(fā)布全過程。本書結合貼近實際應用的案例講解知識點,便于讀者舉一反三將所學知識應用到實際開發(fā)過程中,避免了脫離實際開發(fā)、學無所用的尷尬。本書的讀者應具有Java編程語言基礎,對面向對象編程有一定了解的初學者,通過學習本書能夠進行普通Android應用程序開發(fā)。
白喆,沈陽師范大學新聞與傳播學院教師,多次獲得第七屆全國信息技術應用水平大賽最佳指導教師獎,第四屆全國大學生廣告藝術大賽優(yōu)秀指導教師獎等。
目錄
第1章 Android的基礎知識 1
1.1 Android與Andy Rubin 1
1.2 Android的開發(fā)環(huán)境 1
1.2.1 Android Studio的下載 2
1.2.2 Android Studio的安裝 2
1.2.3 Android SDK的安裝 3
1.2.4 Android Studio界面 5
1.2.5 Gradle更新 8
1.2.6 重構Java工程 9
1.3 創(chuàng)建Android工程 10
1.3.1 Android工程的新建命令 10
1.3.2 Android工程的創(chuàng)建向導 10
1.3.3 虛擬設備運行工程 13
1.3.4 物理設備運行工程 17
1.3.5 生成簽名的APK文件 17
1.4 Android的工程結構 19
1.4.1 Project視圖 19
1.4.2 AndroidManifest.xml文件 19
1.4.3 build.gradle文件 21
1.4.4 res文件夾 21
1.4 習題 22
第2章 基礎UI控件 23
2.1 UI控件基礎 23
2.1.1 UI控件的創(chuàng)建方式 23
2.1.2 View子類的常用屬性 24
2.1.3 UI控件的常用單位 26
2.2 文本視圖 27
2.2.1 TextView控件 27
2.2.2 實例工程:顯示文本 28
2.3 輸入框 30
2.3.1 EditText控件 30
2.3.2 實例工程:輸入發(fā)送信息 31
2.4 按鈕 33
2.4.1 Button控件 33
2.4.2 實例工程:單擊按鈕獲取系統(tǒng)時間 34
2.5 圖像視圖 35
2.5.1 ImageView控件 35
2.5.2 實例工程:顯示圖像 36
2.6 圖像按鈕 37
2.6.1 ImageButton控件 37
2.6.2 實例工程:提示廣播信息狀態(tài)的圖像按鈕 38
2.7 單選按鈕 40
2.7.1 RadioButton控件 40
2.7.2 實例工程:選擇性別的單選按鈕 41
2.8 復選框 44
2.8.1 CheckBox控件 44
2.8.2 實例工程:興趣愛好的復選框 44
2.9 開關按鈕 47
2.9.1 Switch控件 47
2.9.2 實例工程:房間燈光的開關按鈕 48
2.10 提示信息 50
2.10.1 Toast控件 50
2.10.2 實例工程:不同位置顯示的提示信息 51
2.11 對話框 53
2.11.1 AlertDialog控件 53
2.11.2 實例工程:默認對話框和自定義對話框 54
2.12 日期選擇器 58
2.12.1 DatePicker控件 58
2.12.2 實例工程:設置日期的日期選擇器 59
2.13 時間選擇器 61
2.13.1 TimePicker控件 61
2.13.2 實例工程:設置時間的時間選擇器 62
2.14 滾動條視圖 64
2.14.1 ScrollView控件 64
2.14.2 實例工程:滾動顯示視圖 65
2.15 通知 68
2.15.1 Notification控件 68
2.15.2 實例工程:彈出式狀態(tài)欄通知和自定義視圖狀態(tài)欄通知 70
2.16 習題 73
第3章 UI布局控件 74
3.1 線性布局 74
3.1.1 LinearLayout控件 74
3.1.2 實例工程:動態(tài)視圖的線性布局 75
3.2 相對布局 76
3.2.1 RelativeLayout控件 76
3.2.2 實例工程:顯示方位的相對布局 77
3.3 表格布局 79
3.3.1 TableLayout控件 79
3.3.2 實例工程:登錄界面的表格視圖 80
3.4 網(wǎng)格布局 82
3.4.1 GridLayout控件 82
3.4.2 實例工程:模仿計算器界面的網(wǎng)格布局 82
3.5 幀布局 84
3.5.1 FrameLayout控件 84
3.5.2 實例工程:分層顯示圖像的幀布局 84
3.6 約束布局 85
3.6.1 ConstraintLayout控件 85
3.6.2 實例工程:模仿朋友圈頂部的約束布局 86
3.7 習題 87
第4章 UI控件與數(shù)據(jù)適配 88
4.1 數(shù)據(jù)適配原理 88
4.2 列表視圖 89
4.2.1 ListView控件 89
4.2.2 實例工程:簡單數(shù)據(jù)的列表視圖 90
4.2.3 實例工程:帶緩存的自定義列表視圖 92
4.3 網(wǎng)格視圖 96
4.3.1 GridView控件 96
4.3.2 實例工程:顯示商品類別的網(wǎng)格視圖 97
4.4 自動完成文本視圖 101
4.4.1 AutoCompleteTextView控件 101
4.4.2 實例工程:顯示搜索提示的文本框 102
4.5 懸浮框 104
4.5.1 PopupWindow控件 104
4.5.2 實例工程:單擊按鈕顯示自定義懸浮框 105
4.6 翻轉視圖 111
4.6.1 ViewFlipper控件 111
4.6.2 實例工程:輪流顯示圖像的翻轉視圖 112
4.7 分頁視圖 115
4.7.1 ViewPager控件 115
4.7.2 實例工程:歡迎引導頁 116
4.8 習題 122
第5章 基本程序單元 123
5.1 活動 123
5.1.1 Activity概述 123
5.1.2 Activity的創(chuàng)建和刪除 125
5.1.3 Activity的啟動和關閉 127
5.1.4 Activity的生命周期 129
5.1.5 Activity的啟動模式 133
5.1.6 實例工程:Activity的數(shù)據(jù)傳遞 138
5.2 碎片 142
5.2.1 Fragment概述 142
5.2.2 Fragment的生命周期 144
5.2.3 實例工程:導航分頁的主界面 144
5.3 習題 150
第6章 后臺服務與廣播 151
6.1 服務 151
6.1.1 Service概述 151
6.1.2 Service的生命周期 153
6.1.3 實例工程:Service的開啟和停止 153
6.1.4 實例工程:Service的綁定和數(shù)據(jù)傳遞 156
6.1.5 實例工程:Service顯示Notification 161
6.2 獨立線程服務 163
6.2.1 IntentService概述 163
6.2.2 實例工程:IntentService的靜態(tài)方法啟動 164
6.3 廣播接收器 167
6.3.1 BroadcastReceiver概述 167
6.3.2 接收廣播 169
6.3.3 實例工程:顯式和隱式接收廣播 169
6.3.4 發(fā)送廣播 173
6.3.5 實例工程:發(fā)送標準廣播和有序廣播 173
6.4 習題 176
第7章 數(shù)據(jù)存儲與共享 177
7.1 共享偏好設置 177
7.1.1 SharedPreferences概述 177
7.1.2 實例工程:用戶登錄 179
7.2 輕量級數(shù)據(jù)庫 181
7.2.1 SQLite概述 181
7.2.2 實例工程:自定義通信錄 184
7.3 內(nèi)容提供者 187
7.3.1 ContentProvider概述 187
7.3.2 實例工程:自定義內(nèi)容提供者 190
7.3.3 實例工程:訪問和修改系統(tǒng)通信錄數(shù)據(jù) 198
7.4 JavaScript對象表示法 208
7.4.1 JSON概述 208
7.4.2 實例工程:合成和解析JSON數(shù)據(jù) 210
7.5 習題 213
第8章 多媒體與傳感器 214
8.1 系統(tǒng)相機和相冊 214
8.1.1 實例工程:拍照、選取和顯示圖片 214
8.1.2 實例工程:錄制、選取和播放視頻 221
8.2 拍攝照片和錄制視頻 223
8.2.1 Camera2類 223
8.2.2 ImageReader類 230
8.2.3 MediaRecorder類 231
8.2.4 實例工程:使用Camera2類拍攝照片 233
8.2.5 實例工程:使用Camera2類錄制視頻 242
8.3 錄制音頻 249
8.3.1 AudioRecord類 249
8.3.2 AudioTrack類 250
8.3.3 實例工程:AudioRecord錄音 251
8.3.4 實例工程:MediaRecorder錄音 255
8.4 傳感器 257
8.4.1 傳感器概述 257
8.4.2 運動類傳感器 259
8.4.3 實例工程:搖一搖比大小 260
8.4.4 位置類傳感器 262
8.4.5 實例工程:指南針 263
8.4.6 環(huán)境類傳感器 266
8.4.7 實例工程:光照計和氣壓計 266
8.5 位置服務 268
8.5.1 位置服務概述 268
8.5.2 實例工程:獲取經(jīng)緯度坐標 270
8.6 習題 271
第9章 HTTP網(wǎng)絡通信 272
9.1 HttpURLConnection類 272
9.2 實例工程:加載網(wǎng)絡圖片(帶緩存) 273
9.3 實例工程:發(fā)布動態(tài)(POST方式) 278
9.4 實例工程:動態(tài)列表(GET方式) 282
9.5 習題 286