Android App開發入門與項目實戰
內容描述
本書是一部Android開發的實戰教程,由淺入深、由基礎到高級,帶領讀者一步一步走進App開發的神奇世界。 全書共分為15章。其中,第1章介紹Android開發環境的搭建,主要講解Android、Android Studio和SDK的安裝與App的調試;第2章講解Android開發的基礎知識,主要講解Android的開發特點,Android的工程結構以及設計規範;第3章到第5章主要講解App開發的各種常用控件及Activity;第6章講解App的數據存儲方式;第7章講解Android內容共享;第8章講解Android的高級控件;第9章到第12章講解Android自定義控件、廣播組件、通知和服務以及組合控件的使用;第13章講解多媒體的開發技術;第14章講解網絡通信技術;第15章講解Android安裝包的打造。書中在講解知識點的同時給出了大量實戰範例,包括計算器、找回密碼、購物車、記賬本、廣告輪播、電商首頁、評價曬單、猜你喜歡等項目的開發,旨在方便讀者迅速將所學的知識運用到實際開發中。 本書適用於Android開發的廣大從業者、有志於轉型App開發的程序員、App開發的業餘愛好者,也可作為大中專院校與培訓機構的Android課程教材。
目錄大綱
目 錄
第1章Android開發環境搭建 1
1.1 Android開發簡介 1
1.1.1 Android的發展歷程 1
1.1.2 Android Studio的發展歷程 2
1.2搭建Android Studio開發環境 2
1.2.1開發機配置要求 2
1.2.2安裝Android Studio 3
1.2.3下載Android的SDK 6
1.3創建並編譯App工程 7
1.3.1創建新項目 7
1.3.2導入已有的工程 9
1.3.3編譯App工程 10
1.4運行和調試App 11
1.4.1創建內置模擬器 11
1.4.2在模擬器上運行App 15
1.4.3觀察App的運行日誌 15
1.5小結 16
1.6課後練習題 17
第2章Android App開發基礎 18
2.1 App的開發特點 18
2.1.1 App的運行環境 18
2.1.2 App的開發語言 20
2.1.3 App連接的數據庫 24
2.2 App的工程結構 25
2.2.1 App工程目錄結構 26
2.2.2編譯配置文件build.gradle 27
2.2.3運行配置文件AndroidManifest.xml 29
2.3 App的設計規範 30
2.3.1界面設計與代碼邏輯 30
2.3.2利用XML標記描繪應用界面 32
2.3.3使用Java代碼書寫程序邏輯 33
2.4 App的活動頁面 34
2.4.1創建新的App頁面 34
2.4.2快速生成頁面源碼 37
2.4.3跳到另一個頁面 38
2.5小結 39
2.6課後練習題 39
第3章簡單控件 41
3.1文本顯示 41
3.1.1設置文本的內容 41
3.1.2設置文本的大小 43
3.1.3設置文本的顏色 45
3.2視圖基礎 47
3.2.1設置視圖的寬高 47
3.2.2設置視圖的間距 49
3.2.3設置視圖的對齊方式 51
3.3常用佈局 53
3.3.1線性佈局LinearLayout 53
3.3.2相對佈局RelativeLayout 56
3.3.3網格佈局GridLayout 58
3.3.4滾動視圖ScrollView 59
3.4按鈕觸控 61
3.4.1按鈕控件Button 61
3.4.2點擊事件和長按事件 63
3.4.3禁用與恢復按鈕 65
3.5圖像顯示 68
3.5.1圖像視圖ImageView 68
3.5.2圖像按鈕ImageButton 71
3.5.3同時展示文本與圖像 72
3.6實戰項目:計算器 73
3.6.1需求描述 73
3.6.2界面設計 73
3.6.3關鍵代碼 74
3.7小結 76
3.8課後練習題 77
第4章活動Activity 78
4.1啟停活動頁面 78
4.1.1 Activity的啟動和結束 78
4.1.2 Activity的生命週期 80
4.1.3 Activity的啟動模式 83
4.2在活動之間傳遞消息 86
4.2.1顯式Intent和隱式Intent 87
4.2.2向下一個Activity發送數據 89
4.2.3向上一個Activity返回數據 90
4.3為活動補充附加信息 92
4.3.1利用資源文件配置字符串 92
4.3.2利用元數據傳遞配置信息 93
4.3.3給應用頁面註冊快捷方式 94
4.4小結 97
4.5課後練習題 97
第5章中級控件 99
5.1圖形定制 99
5.1.1圖形Drawable 99
5.1.2形狀圖形 100
5.1.3九宮格圖片 103
5.1.4狀態列表圖形 105
5.2選擇按鈕 106
5.2.1複選框CheckBox 107
5.2.2開關按鈕Switch 109
5.2.3單選按鈕RadioButton 110
5.3文本輸入 112
5.3.1編輯框EditText 112
5.3.2焦點變更監聽器 115
5.3.3文本變化監聽器 117
5.4對話框 119
5.4.1提醒對話框AlertDialog 119
5.4.2日期對話框DatePickerDialog 121
5.4.3時間對話框TimePickerDialog 122
5.5實戰項目:找回密碼 124
5.5.1需求描述 124
5.5.2界面設計 125
5.5.3關鍵代碼 126
5.6小結 128
5.7課後練習題 128
第6章數據存儲 130
6.1共享參數SharedPreferences 130
6.1.1共享參數的用法 130
6.1.2實現記住密碼功能 132
6.1.3利用設備瀏覽器尋找共享參數文件 133
6.2數據庫SQLite 134
6.2.1 SQL的基本語法 134
6.2.2數據庫管理器SQLiteDatabase 136
6.2.3數據庫幫助器SQLiteOpenHelper 138
6.2.4優化記住密碼功能 142
6.3存儲卡的文件操作 144
6.3.1私有存儲空間與公共存儲空間 144
6.3.2在存儲卡上讀寫文本文件 146
6.3.3在存儲卡上讀寫圖片文件 147
6.4應用組件Application 149
6.4.1 Application的生命週期 150
6.4.2利用Application操作全局變量 151
6.4.3利用Room簡化數據庫操作 152
6.5實戰項目:購物車 156
6.5.1需求描述 156
6.5.2界面設計 158
6.5.3關鍵代碼 158
6.6小結 163
6.7課後練習題 164
第7章內容共享 166
7.1在應用之間共享數據 166
7.1.1通過ContentProvider封裝數據 166
7.1.2通過ContentResolver訪問數據 170
7.2使用內容組件獲取通訊信息 172
7.2.1運行時動態申請權限 172
7.2.2利用ContentResolver讀寫聯繫人 176
7.2.3利用ContentObserver監聽短信 177
7.3在應用之間共享文件 180
7.3.1使用相冊圖片發送彩信 180
7.3.2借助FileProvider發送彩信 182
7.3.3借助FileProvider安裝應用 185
7.4小結 188
7.5課後練習題 188
第8章高級控件 190
8.1下拉列表 190
8.1.1下拉框Spinner 190
8.1.2數組適配器ArrayAdapter 192
8.1.3簡單適配器SimpleAdapter 193
8.2列表類視圖 195
8.2.1基本適配器BaseAdapter 195
8.2.2列表視圖ListView 198
8.2.3網格視圖GridView 203
8.3翻頁類視圖 206
8.3.1翻頁視圖ViewPager 207
8.3.2翻頁標籤欄PagerTabStrip 210
8.3.3簡單的啟動引導頁 211
8.4碎片Fragment 215
8.4.1碎片的靜態註冊 215
8.4.2碎片的動態註冊 218
8.4.3改進的啟動引導頁 221
8.5實戰項目:記賬本 223
8.5.1需求描述 224
8.5.2界面設計 224
8.5.3關鍵代碼 225
8.6小結 229
8.7課後練習題 229
第9章廣播組件Broadcast 231
9.1收發應用廣播 231
9.1.1收發標準廣播 231
9.1.2收發有序廣播 234
9.1.3收發靜態廣播 236
9.2監聽系統廣播 239
9.2.1接收分鐘到達廣播 239
9.2.2接收網絡變更廣播 240
9.2.3定時管理器AlarmManager 243
9.3捕獲屏幕的變更事件 246
9.3.1豎屏與橫屏切換 246
9.3.2回到桌面與切換到任務列表 249
9.4小結 252
9.5課後練習題 252
第10章自定義控件 254
10.1視圖的構建過程 254
10.1.1視圖的構造方法 254
10.1.2視圖的測量方法 258
10.1.3視圖的繪製方法 261
10.2改造已有的控件 265
10.2.1自定義月份選擇器 265
10.2.2給翻頁標籤欄添加新屬性 266
10.2.3不滾動的列表視圖 269
10.3通過持續繪製實現簡單動畫 272
10.3.1 Handler的延遲機制 272
10.3.2重新繪製視圖界面 273
10.3.3自定義餅圖動畫 276
10.4實戰項目:廣告輪播 278
10.4.1需求描述 279
10.4.2界面設計 279
10.4.3關鍵代碼 280
10.5小結 284
10.6課後練習題 284
第11章通知與服務 286
11.1消息通知 286
11.1.1通知推送Notification 286
11.1.2通知渠道NotificationChannel 289
11.1.3給桌面應用添加消息角標 292
11.2服務Service 294
11.2.1服務的啟動和停止 294
11.2.2服務的綁定與解綁 297
11.2.3推送服務到前台 300
11.3多線程 302
11.3.1分線程通過Handler操作界面 302
11.3.2異步任務AsyncTask 306
11.3.3異步服務IntentService 309
11.4小結 312
11.5課後練習題 312
第12章組合控件 314
12.1底部標籤欄 314
12.1.1利用BottomNavigationView實現底部標籤欄 314
12.1.2自定義標籤按鈕 319
12.1.3結合RadioGroup和ViewPager自定義底部標籤欄 322
12.2頂部導航欄 325
12.2.1工具欄Toolbar 325
12.2.2溢出菜單OverflowMenu 327
12.2.3標籤佈局TabLayout 328
12.3增強型列表 332
12.3.1循環視圖RecyclerView 332
12.3.2佈局管理器LayoutManager 335
12.3.3動態更新循環視圖 339
12.4升級版翻頁 341
12.4.1下拉刷新佈局SwipeRefreshLayout 341
12.4.2第二代翻頁視圖ViewPager2 343
12.4.3給ViewPager2集成標籤佈局 347
12.5實戰項目:電商首頁 351
12.5.1需求描述 351
12.5.2界面設計 352
12.5.3關鍵代碼 353
12.6小結 354
12.7課後練習題 355
第13章多媒體 356
13.1圖片 356
13.1.1使用相機拍攝照片 356
13.1.2從相冊中選取圖片 359
13.1.3對圖片進行簡單加工 361
13.1.4圖像解碼器ImageDecoder 364
13.2音頻 366
13.2.1使用錄音機錄製音頻 366
13.2.2利用MediaPlayer播放音頻 368
13.2.3利用MediaRecorder錄製音頻 371
13.3視頻 373
13.3.1使用攝像機錄製視頻 373
13.3.2從視頻庫中選取視頻 376
13.3.3利用視頻視圖(VideoView)播放視頻 378
13.4實戰項目:評價曬單 381
13.4.1需求描述 381
13.4.2界面設計 383
13.4.3關鍵代碼 384
13.5小結 386
13.6課後練習題 386
第14章網絡通信 388
14.1 HTTP接口訪問 388
14.1.1移動數據格式JSON 388
14.1.2 GET方式調用HTTP接口 391
14.1.3 POST方式調用HTTP接口 396
14.2下載管理器DownloadManager 400
14.2.1在通知欄顯示下載進度 400
14.2.2主動輪詢當前的下載進度 403
14.2.3利用POST方式上傳文件 406
14.3圖片加載框架Glide 408
14.3.1從圖片地址獲取圖像數據 408
14.3.2使用Glide加載網絡圖片 411
14.3.3利用Glide實現圖片的三級緩存 413
14.4實戰項目:猜你喜歡 416
14.4.1需求描述 416
14.4.2界面設計 417
14.4.3關鍵代碼 418
14.5小結 419
14.6課後練習題 420
第15章打造安裝包 422
15.1應用打包 422
15.1.1導出APK安裝包 422
15.1.2製作App圖標 425
15.1.3給APK瘦身 426
15.2規範處理 429
15.2.1版本設置 429
15.2.2發布模式 431
15.2.3給數據庫加密 433
15.3安全加固 435
15.3.1反編譯 435
15.3.2代碼混淆 437
15.3.3第三方加固及重簽名 439
15.4小結 440
15.5課後練習題 440
附錄綜合實踐課題 442
作者介紹
歐陽燊,CSDN博客專家,有16年以上軟件開發經驗,熟悉C/C++、Java及相關軟件架構,7年以上Android開發經驗,對Android開發擁有豐富的實戰經驗。已出版暢銷書《Android Studio開發實戰:從零基礎到App上線》《Kotlin從零到精通Android開發》《好好學Java從零基礎到項目實戰》。