內容簡介
基本信息
- 作者:
- 齣版社:
- ISBN:9787115439789
- 齣版日期:2016 年12月
- 開本:16開
- 版次:1-1
- 所屬分類:
編輯推薦
1. CSDN人氣博主、CSDN十大博客之星、Android開發者郭霖力作
2. 基於Android 7.0、Android Studio 2.2全新升級
3. Android初學者入門,Android開發者進階 選
4. 涵蓋Material Design、運行時權限、RecyclerView、百分比布局等全新特性
5. 第1版重印14次,經典暢銷,好評如潮,以高質量的內容贏得瞭開發者的廣泛認可,被譽為“Android學習第 一書”。
內容簡介
本書被廣大Android 開發者譽為“Android 學習第 一書”。全書係統全麵、循序漸進地介紹瞭Android軟件開發的知識、經驗和技巧。
第2 版基於Android 7.0 對第1 版進行瞭全麵更新,將所有知識點都在新的Android 係統上進行重新適配,使用全新的Android Studio 開發工具代替之前的Eclipse,並添加瞭對Material Design、運行時權限、Gradle、RecyclerView、百分比布局、OkHttp、Lambda 錶達式等全新知識點的詳細講解。
本書內容通俗易懂,由淺入深,既是Android 初學者的入門,也是Android 開發者的進階 選。
作譯者
郭霖
Android軟件開發工程師。從事Android開發工作6年,有著豐富的項目實戰經驗,負責及參與開發過多款移動應用與遊戲,對Android係統架構及應用層開發有著深入的理解。
2013年3月開始,在CSDN上發錶Android技術相關博文,很快獲得瞭大量網友的好評。目前博客訪問量已過500萬次,評論過10000條。榮獲CSDN認證專傢,並被連續評選為CSDN 2013、2014、2015年度博客之星。
目錄
第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 搭建開發環境 5
1.3 創建你的第 一個Android項目 9
1.3.1 創建HelloWorld項目 9
1.3.2 啓動模擬器 12
1.3.3 運行HelloWorld 15
1.3.4 分析你的第 一個Android程序 16
1.3.5 詳解項目中的資源 22
1.3.6 詳解build.gradle文件 23
1.4 前行——掌握日誌工具的使用 26
1.4.1 使用Android的日誌工具Log 26
1.4.2 為什麼使用Log而不使用System.out 27
1.5 小結與點評 29
第2章 先從看得到的入手——探究活動 30
2.1 活動是什麼 30
2.2 活動的基本用法 30
2.2.1 手動創建活動 31
2.2.2 創建和加載布局 32
2.2.3 在AndroidManifest文件中注冊 35
2.2.4 在活動中使用Toast 37
2.2.5 在活動中使用Menu 38
2.2.6 銷毀一個活動 40
2.3 使用Intent在活動之間穿梭 41
2.3.1 使用顯式Intent 41
2.3.2 使用隱式Intent 44
2.3.3 更多隱式Intent的用法 46
2.3.4 嚮下一個活動傳遞數據 50
2.3.5 返迴數據給上一個活動 51
2.4 活動的生命周期 53
2.4.1 返迴棧 53
2.4.2 活動狀態 54
2.4.3 活動的生存期 55
2.4.4 體驗活動的生命周期 56
2.4.5 活動被迴收瞭怎麼辦 62
2.5 活動的啓動模式 63
2.5.1 standard 64
2.5.2 singleTop 65
2.5.3 singleTask 67
2.5.4 singleInstance 68
2.6 活動的佳實踐 71
2.6.1 知曉當前是在哪一個活動 71
2.6.2 隨時隨地退齣程序 72
2.6.3 啓動活動的佳寫法 74
2.7 小結與點評 75
第3章 軟件也要拼臉蛋——UI開發的點點滴滴 76
3.1 如何編寫程序界麵 76
3.2 常用控件的使用方法 77
3.2.1 TextView 77
3.2.2 Button 80
3.2.3 EditText 82
3.2.4 ImageView 86
3.2.5 ProgressBar 88
3.2.6 AlertDialog 91
3.2.7 ProgressDialog 93
3.3 詳解4種基本布局 94
3.3.1 綫性布局 94
3.3.2 相對布局 100
3.3.3 幀布局 103
3.3.4 百分比布局 105
3.4 係統控件不夠用?創建自定義控件 108
3.4.1 引入布局 109
3.4.2 創建自定義控件 111
3.5 常用和難用的控件——ListView 113
3.5.1 ListView的簡單用法 114
3.5.2 定製ListView的界麵 115
3.5.3 提升ListView的運行效率 119
3.5.4 ListView的點擊事件 120
3.6 更強大的滾動控件——RecyclerView 122
3.6.1 RecyclerView的基本用法 122
3.6.2 實現橫嚮滾動和瀑布流布局 125
3.6.3 RecyclerView的點擊事件 130
3.7 編寫界麵的佳實踐 132
3.7.1 製作Nine-Patch圖片 132
3.7.2 編寫精美的聊天界麵 135
3.8 小結與點評 141
第4章 手機平闆要兼顧——探究碎片 142
4.1 碎片是什麼 142
4.2 碎片的使用方式 144
4.2.1 碎片的簡單用法 144
4.2.2 動態添加碎片 147
4.2.3 在碎片中模擬返迴棧 150
4.2.4 碎片和活動之間進行通信 151
4.3 碎片的生命周期 151
4.3.1 碎片的狀態和迴調 151
4.3.2 體驗碎片的生命周期 153
4.4 動態加載布局的技巧 156
4.4.1 使用限定符 156
4.4.2 使用小寬度限定符 159
4.5 碎片的佳實踐——一個簡易版的新聞應用 160
4.6 小結與點評 169
第5章 全局大喇叭——詳解廣播機製 170
5.1 廣播機製簡介 170
5.2 接收係統廣播 171
5.2.1 動態注冊監聽網絡變化 171
5.2.2 靜態注冊實現開機啓動 174
5.3 發送自定義廣播 177
5.3.1 發送標準廣播 177
5.3.2 發送有序廣播 179
5.4 使用本地廣播 183
5.5 廣播的佳實踐——實現強製下綫功能 185
5.6 Git時間——初識版本控製工具 192
5.6.1 安裝Git 192
5.6.2 創建代碼倉庫 193
5.6.3 提交本地代碼 195
5.7 小結與點評 195
第6章 數據存儲全方案——詳解持久化技術 196
6.1 持久化技術簡介 196
6.2 文件存儲 197
6.2.1 將數據存儲到文件中 197
6.2.2 從文件中讀取數據 201
6.3 SharedPreferences存儲 203
6.3.1 將數據存儲到SharedPreferences中 203
6.3.2 從SharedPreferences中讀取數據 206
6.3.3 實現記住密碼功能 208
6.4 SQLite數據庫存儲 211
6.4.1 創建數據庫 211
6.4.2 升級數據庫 216
6.4.3 添加數據 219
6.4.4 更新數據 222
6.4.5 刪除數據 224
6.4.6 查詢數據 225
6.4.7 使用SQL操作數據庫 228
6.5 使用LitePal操作數據庫 229
6.5.1 LitePal簡介 229
6.5.2 配置LitePal 230
6.5.3 創建和升級數據庫 231
6.5.4 使用LitePal添加數據 236
6.5.5 使用LitePal更新數據 237
6.5.6 使用LitePal刪除數據 240
6.5.7 使用LitePal查詢數據 241
6.6 小結與點評 243
第7章 跨程序共享數據——探究內容提供器 244
7.1 內容提供器簡介 244
7.2 運行時權限 245
7.2.1 Android權限機製詳解 245
7.2.2 在程序運行時申請權限 249
7.3 訪問其他程序中的數據 254
7.3.1 ContentResolver的基本用法 254
7.3.2 讀取係統聯係人 256
7.4 創建自己的內容提供器 260
7.4.1 創建內容提供器的步驟 261
7.4.2 實現跨程序數據共享 265
7.5 Git時間——版本控製工具進階 275
7.5.1 忽略文件 275
7.5.2 查看修改內容 276
7.5.3 撤銷未提交的修改 278
7.5.4 查看提交記錄 279
7.6 小結與點評 280
第8章 豐富你的程序——運用手機多媒體 281
8.1 將程序運行到手機上 281
8.2 使用通知 283
8.2.1 通知的基本用法 283
8.2.2 通知的進階技巧 289
8.2.3 通知的功能 291
8.3 調用攝像頭和相冊 293
8.3.1 調用攝像頭拍照 294
8.3.2 從相冊中選擇照片 298
8.4 播放多媒體文件 303
8.4.1 播放音頻 303
8.4.2 播放視頻 307
8.5 小結與點評 311
第9章 看看精彩的世界——使用網絡技術 312
9.1 WebView的用法 312
9.2 使用HTTP協議訪問網絡 314
9.2.1 使用HttpURLConnection 315
9.2.2 使用OkHttp 319
9.3 解析XML格式數據 321
9.3.1 Pull解析方式 324
9.3.2 SAX解析方式 326
9.4 解析JSON格式數據 329
9.4.1 使用JSONObject 330
9.4.2 使用GSON 331
9.5 網絡編程的佳實踐 334
9.6 小結與點評 338
第10章 後颱默默的勞動者——探究服務 339
10.1 服務是什麼 339
10.2 Android多綫程編程 340
10.2.1 綫程的基本用法 340
10.2.2 在子綫程中更新UI 341
10.2.3 解析異步消息處理機製 345
10.2.4 使用AsyncTask 347
10.3 服務的基本用法 349
10.3.1 定義一個服務 349
10.3.2 啓動和停止服務 352
10.3.3 活動和服務進行通信 355
10.4 服務的生命周期 359
10.5 服務的更多技巧 359
10.5.1 使用前颱服務 359
10.5.2 使用IntentService 361
10.6 服務的佳實踐——完整版的下載示例 365
10.7 小結與點評 378
第11章 Android特色開發——基於位置的服務 379
11.1 基於位置的服務簡介 379
11.2 申請API Key 380
11.3 使用百度定位 384
11.3.1 準備LBS SDK 384
11.3.2 確定自己位置的經緯度 386
11.3.3 選擇定位模式 391
11.3.4 看得懂的位置信息 393
11.4 使用百度地圖 395
11.4.1 讓地圖顯示齣來 395
11.4.2 移動到我的位置 397
11.4.3 讓“我”顯示在地圖上 400
11.5 Git時間——版本控製工具的用法 402
11.5.1 分支的用法 403
11.5.2 與遠程版本庫協作 404
11.6 小結與點評 406
第12章 佳的UI體驗——MaterialDesign實戰 407
12.1 什麼是Material Design 407
12.2 Toolbar 408
12.3 滑動菜單 415
12.3.1 DrawerLayout 415
12.3.2 NavigationView 418
12.4 懸浮按鈕和可交互提示 423
12.4.1 FloatingActionButton 424
12.4.2 Snackbar 427
12.4.3 CoordinatorLayout 428
12.5 卡片式布局 430
12.5.1 CardView 431
12.5.2 AppBarLayout 437
12.6 下拉刷新 440
12.7 可摺疊式標題欄 443
12.7.1 CollapsingToolbarLayout 443
12.7.2 充分利用係統狀態欄空間 453
12.8 小結與點評 456
第13章 繼續進階——你還應該掌握的技巧 457
13.1 全局獲取Context的技巧 457
13.2 使用Intent傳遞對象 461
13.2.1 Serializable方式 461
13.2.2 Parcelable方式 463
13.3 定製自己的日誌工具 464
13.4 調試Android程序 466
13.5 創建定時任務 469
13.5.1 Alarm機製 469
13.5.2 Doze模式 471
13.6 多窗口模式編程 472
13.6.1 進入多窗口模式 473
13.6.2 多窗口模式下的生命周期 475
13.6.3 禁用多窗口模式 479
13.7 Lambda錶達式 481
13.8 總結 485
第14章 進入實戰——開發酷歐天氣 486
14.1 功能需求及技術可行性分析 486
14.2 Git時間——將代碼托管到GitHub上 489
14.3 創建數據庫和錶 494
14.4 遍曆全國省市縣數據 499
14.5 顯示天氣信息 509
14.5.1 定義GSON實體類 509
14.5.2 編寫天氣界麵 514
14.5.3 將天氣顯示到界麵上 520
14.5.4 獲取必應每日一圖 526
14.6 手動更新天氣和切換城市 532
14.6.1 手動更新天氣 532
14.6.2 切換城市 535
14.7 後颱自動更新天氣 540
14.8 修改圖標和名稱 542
14.9 你還可以做的事情 543
第15章 後一步——將應用發布到360應用商店 545
15.1 生成正式簽名的APK文件 545
15.1.1 使用Android Studio生成 546
15.1.2 使用Gradle生成 548
15.1.3 生成多渠道APK文件 551
15.2 申請360開發者賬號 554
15.3 發布應用程序 556
15.4 嵌入廣告進行盈利 560
15.4.1 注冊騰訊廣告聯盟賬號 560
15.4.2 新建媒體和廣告位 562
15.4.3 接入廣告SDK 564
15.4.4 重新發布應用程序 569
15.5 結束語 570
《 Android開發實戰指南:從入門到精通(第三版) 》 內容簡介: 本書是廣受好評的《Android開發實戰指南》係列的全新升級版本,在繼承前兩版精髓的基礎上,融入瞭大量Android開發領域的最新技術、最佳實踐以及行業發展趨勢。本書旨在為讀者提供一套全麵、深入、實用的Android應用程序開發教程,無論您是初次接觸Android開發的開發者,還是希望提升技能、掌握高級特性的資深工程師,都能從中獲益匪淺。 本書的獨特價值與亮點: 1. 技術前沿性與全麵性: 本版緊跟Android發展步伐,重點涵蓋瞭Jetpack Compose——Google力推的聲明式UI框架,詳細講解其組件、布局、狀態管理、動畫等核心概念,並指導讀者如何在新項目中應用Compose,以及如何逐步遷移現有View係統項目。同時,對Kotlin協程在異步編程中的應用進行瞭深度剖析,展示如何編寫更簡潔、更高效、更易於維護的並發代碼。此外,還更新瞭與Android 14及之後版本相關的API和特性,如運行時權限的新變化、後颱處理的優化、隱私安全新規等。 2. 實踐導嚮與深度解析: 全書圍繞著“如何構建健壯、高性能、用戶體驗優秀的Android應用”這一核心目標展開。每一個技術點都配有精心設計的示例代碼,力求清晰易懂,便於讀者上手實踐。作者深入淺齣地講解瞭Android四大組件(Activity, Service, Broadcast Receiver, Content Provider)的原理、生命周期以及高級用法,並結閤實際開發場景,指導讀者如何構建復雜的UI交互、高效的數據存儲、可靠的網絡通信以及靈活的後颱服務。 3. 體係化構建與循序漸進: 本書結構清晰,內容循序漸進。從Android開發環境的搭建、基礎的XML布局和Java/Kotlin語言特性入手,逐步深入到Activity的生命周期、Fragment的使用、Intent的通信、事件處理等核心概念。隨後,講解UI控件的高級定製、列錶與網格的優化顯示(RecyclerView)、數據持久化(SharedPreferences, SQLite, Room)、網絡請求(Retrofit, OkHttp)、多綫程與異步處理(Handler, AsyncTask, Coroutines)、綫程通信、後颱服務、廣播接收器、內容提供者等。更進一步,本書將帶領讀者探索高階主題,如MVP/MVVM/MVI架構模式的應用、Dependency Injection(Hilt/Dagger)、Jetpack組件的深入使用(Navigation, ViewModel, LiveData, Paging, WorkManager)、性能優化、內存泄漏排查、單元測試與UI測試、以及Fragment與Activity的嵌套與通信策略。 4. 深入理解架構設計與工程實踐: 良好的架構是構建大型、可維護應用的基石。本書不僅會介紹主流的Android架構模式,還會通過實際項目示例,講解如何在項目中落地這些模式,並討論不同模式的優缺點及適用場景。特彆會側重於MVVM(Model-View-ViewModel)模式的講解,以及如何結閤Jetpack的ViewModel和LiveData來實現響應式編程。此外,書中還會涉及依賴注入(DI)的原理和實際應用,幫助讀者構建鬆耦閤、易於測試的代碼。 5. 用戶體驗與性能優化: 優良的用戶體驗是衡量一個App成功與否的關鍵。本書將花費大量篇幅講解如何設計和實現流暢、直觀的UI,包括動畫效果的實現、觸摸反饋的處理、以及如何利用ConstraintLayout和Compose等工具創建響應式布局。同時,性能優化也是重中之重,本書會介紹如何分析應用性能瓶頸,包括內存占用、CPU使用、網絡流量、啓動速度等,並提供針對性的優化方法,如圖片加載的優化、數據庫查詢的優化、後颱任務的調度等,以及如何進行內存泄漏的檢測與修復。 6. 組件化與模塊化開發: 隨著項目規模的增大,組件化和模塊化開發成為提升開發效率和項目可維護性的重要手段。本書將介紹組件化和模塊化開發的理念、常用技術方案(如ARouter、Module Federation等),以及如何在項目中實際應用,幫助讀者構建更易於擴展和維護的代碼結構。 7. 持續學習與問題解決: 在Android開發的廣闊領域中,技術更新迭代迅速,開發者需要不斷學習。本書不僅教授“怎麼做”,更注重講解“為什麼這麼做”,幫助讀者理解底層原理,從而能夠觸類旁通,靈活運用所學知識解決實際開發中遇到的各種問題。書中還會分享一些開發者在實踐中總結齣的常見問題及解決方案,以及如何有效地利用Google官方文檔、Stack Overflow等資源進行學習和問題排查。 8. 實用的工具與調試技巧: 掌握高效的開發工具和調試技巧能夠極大地提升開發效率。本書將詳細介紹Android Studio的各項功能,包括代碼編輯器、布局編輯器、調試器、性能分析工具(Profiler)等,並分享一係列實用的快捷鍵和調試技巧。此外,還會講解版本控製工具Git在Android開發中的最佳實踐。 本書內容框架(部分): 第一部分:Android開發基礎 Android開發環境搭建與項目結構詳解 Kotlin語言特性與Android開發實踐 Activity生命周期與Intent通信 Fragment的創建、管理與通信 XML布局與UI控件基礎 事件處理與用戶交互 第二部分:UI設計與開發進階 RecyclerView的高級使用與優化 Jetpack Compose入門:聲明式UI的魅力 Compose布局、狀態與事件處理 Material Design與自定義View 動畫與轉場效果 第三部分:數據存儲與網絡通信 SharedPreferences與SQLite數據庫 Room Persistence Library:現代化的數據持久化方案 網絡請求基礎:Http協議與OkHttp Retrofit:聲明式網絡請求框架 JSON解析與數據模型 第四部分:後颱處理與多綫程 Service詳解:前颱與後颱服務 Broadcast Receiver:全局事件的響應 Kotlin Coroutines:強大的異步編程利器 Handler、Looper與MessageQueue WorkManager:為後颱任務提供可靠保障 第五部分:架構設計與工程化 Android架構模式:MVP, MVVM, MVI ViewModel與LiveData:響應式編程的核心 Navigation Component:簡化Fragment導航 Dependency Injection:Hilt與Dagger 組件化與模塊化開發策略 第六部分:性能優化與調試 性能分析工具(Profiler)的使用 內存泄漏檢測與修復 UI流暢度與響應速度優化 網絡流量與電量優化 高效調試技巧與Logcat解讀 第七部分:最新技術與實踐 Android 14+新特性與API適配 Jetpack Compose進階:自定義組件、動畫與性能 Kotlin Coroutines高級應用與實踐 安全與隱私的最佳實踐 單元測試與UI測試(JUnit, Espresso) 適用讀者: 零基礎開發者: 希望係統學習Android應用開發的初學者,本書將帶領您從零開始,建立紮實的開發基礎。 在校學生: 計算機科學、軟件工程等專業的學生,可將本書作為課程學習的重要參考,為未來的職業生涯打下堅實基礎。 有其他平颱開發經驗的開發者: 希望跨平颱學習Android開發的開發者,本書能幫助您快速掌握Android平颱的特性和開發模式。 初級/中級Android開發者: 希望鞏固基礎知識、掌握高級技術、提升開發效率和代碼質量的開發者。 項目負責人/技術經理: 需要瞭解Android開發最新趨勢、架構模式和工程實踐,以指導團隊開發的管理者。 《 Android開發實戰指南:從入門到精通(第三版) 》將是您在Android開發旅程中最值得信賴的夥伴,助您精通Android開發,打造齣色的移動應用。