TOP
0
0
【簡體曬書節】 單本79折,5本7折,優惠只到5/31,點擊此處看更多!
第一行代碼 Android(第3版)(簡體書)
滿額折

第一行代碼 Android(第3版)(簡體書)

商品資訊

人民幣定價:99 元
定價
:NT$ 594 元
優惠價
87517
領券後再享88折起
海外經銷商無庫存,到貨日平均30天至45天
可得紅利積點:15 點
相關商品
商品簡介
作者簡介
名人/編輯推薦
目次

商品簡介

《第一行代碼 Android 第3版》被Android開發者譽為“Android學習第一書”。全書系統全面、循序漸進地介紹了Android軟件開發的必備知識、經驗和技巧。
《第一行代碼 Android 第3版》基於Android 10.0對第2版進行了全面更新,不僅將所有知識點都在Android 10.0系統上進行了重新適配,同時加入Kotlin語言的全面講解,使用Kotlin對全書代碼進行重寫,而且還介紹了最新系統特性以及Jetpack架構組件的使用,使本書更加實用。
《第一行代碼 Android 第3版》內容通俗易懂,由淺入深,既是Android初學者的入門必備,也是Android開發者的進階首選。

作者簡介

郭霖,Android開發工程師。從事Android開發工作9年,有著豐富的項目實戰經驗,負責及參與開發過多款移動應用與遊戲,同時還是多個開源項目的作者,對Android系統架構及應用層開發有著深入的理解。
2013年3月開始,在CSDN上發表Android技術相關博文,很快獲得了大量網友的好評。目前博客訪問量已超過1000萬次,評論超過10000條。榮獲CSDN認證專家,並連續多年被評選為CSDN年度博客之星。

名人/編輯推薦

1. CSDN知名博主郭霖新作,基於Android 10全面升級,使用Kotlin語言進行講解,Android開發者入門常備

2. 前兩版累計銷售25萬冊,Android開發者廣為推薦

3. 贈送源代碼、思維導圖和PPT教學課件

第3版的主要變化

首先是編程語言上的改變,本書前兩版都是使用Java 作為應用程序的開發語言,而第3 版使用了Kotlin,這是目前Google 公司推薦我們使用的開發語言。

本書的前兩版中也沒有涉及過語言方面的講解,默認讀者是有Java 語言基礎的。而第3 版中對Kotlin 語言進行了非常全面的講解,不需要讀者有任何Kotlin 語言的基礎。

另外,本書第1 版是基於Android 4.x 系統的,第2 版是基於Android 7.0 系統的,現在第3版基於Android 10.0 系統。其中囊括了新系統中的諸多知識點,包括Android 8.0 系統中引入的通知渠道和應用圖標適配、Android 9.0 系統中引入的明文網絡傳輸限制適配、Android 10.0 系統中引入的深色主題模式等。

除此之外,第3 版還加入了兩個實戰項目以及Retrofit、協程、Jetpack、MVVM等全新知識點的講解,內容也非常地充實。

目次

第 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 啟動模擬器 11

1.3.3 運行HelloWorld 14

1.3.4 分析你的第 一個Android程序 15

1.3.5 詳解項目中的資源 20

1.3.6 詳解build.gradle文件 22

1.4 前行必備:掌握日誌工具的使用 25

1.4.1 使用Android的日誌工具Log 25

1.4.2 為什麼使用Log而不使用println() 26

1.5 小結與點評 28

第 2章 探究新語言,快速入門Kotlin

編程 30

2.1 Kotlin語言簡介 31

2.2 如何運行Kotlin代碼 32

2.3 編程之本:變量和函數 35

2.3.1 變量 35

2.3.2 函數 37

2.4 程序的邏輯控制 41

2.4.1 if條件語句 41

2.4.2 when條件語句 42

2.4.3 循環語句 45

2.5 面向對象編程 48

2.5.1 類與對象 49

2.5.2 繼承與構造函數 50

2.5.3 接口 55

2.5.4 數據類與單例類 58

2.6 Lambda編程 61

2.6.1 集合的創建與遍歷 61

2.6.2 集合的函數式API 65

2.6.3 Java函數式API的使用 69

2.7 空指針檢查 71

2.7.1 可空類型系統 72

2.7.2 判空輔助工具 73

2.8 Kotlin中的小魔術 77

2.8.1 字符串內嵌表達式 77

2.8.2 函數的參數默認值 78

2.9 小結與點評 81

第3章 先從看得到的入手,探究

Activity 82

3.1 Activity是什麼 82

3.2 Activity的基本用法 82

3.2.1 手動創建Activity 83

3.2.2 創建和加載佈局 85

3.2.3 在AndroidManifest文件中

註冊 88

3.2.4 在Activity中使用Toast 90

3.2.5 在Activity中使用Menu 92

3.2.6 銷毀一個Activity 96

3.3 使用Intent在Activity之間穿梭 96

3.3.1 使用顯式Intent 96

3.3.2 使用隱式Intent 99

3.3.3 更多隱式Intent的用法 101

3.3.4 向下一個Activity傳遞數據 105

3.3.5 返回數據給上一個Activity 106

3.4 Activity的生命週期 108

3.4.1 返回棧 108

3.4.2 Activity狀態 109

3.4.3 Activity的生存期 110

3.4.4 體驗Activity的生命週期 111

3.4.5 Activity被回收了怎麼辦 117

3.5 Activity的啟動模式 118

3.5.1 standard 119

3.5.2 singleTop 120

3.5.3 singleTask 122

3.5.4 singleInstance 123

3.6 Activity的最佳實踐 126

3.6.1 知曉當前是在哪一個Activity 126

3.6.2 隨時隨地退出程序 127

3.6.3 啟動Activity的最佳寫法 129

3.7 Kotlin課堂:標準函數和靜態方法 130

3.7.1 標準函數with、run和apply 130

3.7.2 定義靜態方法 133

3.8 小結與點評 137

第4章 軟件也要拼臉蛋,UI開發的

點點滴滴 138

4.1 該如何編寫程序界面 138

4.2 常用控件的使用方法 139

4.2.1 TextView 139

4.2.2 Button 142

4.2.3 EditText 144

4.2.4 ImageView 149

4.2.5 ProgressBar 151

4.2.6 AlertDialog 154

4.3 詳解3種基本佈局 156

4.3.1 LinearLayout 156

4.3.2 RelativeLayout 163

4.3.3 FrameLayout 166

4.4 系統控件不夠用?創建自定義控件 169

4.4.1 引入佈局 169

4.4.2 創建自定義控件 172

4.5 最常用和最難用的控件:ListView 174

4.5.1 ListView的簡單用法 174

4.5.2 定制ListView的界面 176

4.5.3 提升ListView的運行效率 179

4.5.4 ListView的點擊事件 180

4.6 更強大的滾動控件:RecyclerView 182

4.6.1 RecyclerView的基本用法 183

4.6.2 實現橫向滾動和瀑布流佈局 186

4.6.3 RecyclerView的點擊事件 191

4.7 編寫界面的最佳實踐 193

4.7.1 製作9-Patch圖片 193

4.7.2 編寫精美的聊天界面 196

4.8 Kotlin課堂:延遲初始化和密封類 201

4.8.1 對變量延遲初始化 201

4.8.2 使用密封類優化代碼 204

4.9 小結與點評 206

第5章 手機平板要兼顧,探究

Fragment 207

5.1 Fragment是什麼 207

5.2 Fragment的使用方式 209

5.2.1 Fragment的簡單用法 210

5.2.2 動態添加Fragment 212

5.2.3 在Fragment中實現返回棧 215

5.2.4 Fragment和Activity之間的

交互 216

5.3 Fragment的生命週期 217

5.3.1 Fragment的狀態和回調 217

5.3.2 體驗Fragment的生命週期 219

5.4 動態加載佈局的技巧 221

5.4.1 使用限定符 221

5.4.2 使用最小寬度限定符 224

5.5 Fragment的最佳實踐:一個簡易

版的新聞應用 225

5.6 Kotlin課堂:擴展函數和運算符

重載 234

5.6.1 大有用途的擴展函數 234

5.6.2 有趣的運算符重載 236

5.7 小結與點評 240

第6章 全域大喇叭,詳解廣播機制 242

6.1 廣播機制簡介 242

6.2 接收系統廣播 243

6.2.1 動態註冊監聽時間變化 243

6.2.2 靜態註冊實現開機啟動 245

6.3 發送自定義廣播 249

6.3.1 發送標準廣播 249

6.3.2 發送有序廣播 252

6.4 廣播的最佳實踐:實現強制下線功能 255

6.5 Kotlin課堂:高階函數詳解 261

6.5.1 定義高階函數 261

6.5.2 內聯函數的作用 265

6.5.3 noinline與crossinline 268

6.6 Git時間:初識版本控制工具 271

6.6.1 安裝Git 271

6.6.2 創建代碼倉庫 272

6.6.3 提交本地代碼 274

6.7 小結與點評 274

第7章 數據存儲全方案,詳解

持久化技術 275

7.1 持久化技術簡介 275

7.2 文件存儲 276

7.2.1 將數據存儲到文件中 276

7.2.2 從文件中讀取數據 279

7.3 SharedPreferences存儲 281

7.3.1 將數據存儲到SharedPre-

ferences中 282

7.3.2 從SharedPreferences中讀取

數據 284

7.3.3 實現記住密碼功能 285

7.4 SQLite數據庫存儲 288

7.4.1 創建數據庫 289

7.4.2 升級數據庫 295

7.4.3 添加數據 297

7.4.4 更新數據 300

7.4.5 刪除數據 302

7.4.6 查詢數據 304

7.4.7 使用SQL操作數據庫 307

7.5 SQLite數據庫的最佳實踐 307

7.5.1 使用事務 308

7.5.2 升級數據庫的最佳寫法 309

7.6 Kotlin課堂:高階函數的應用 312

7.6.1 簡化SharedPreferences的用法 312

7.6.2 簡化ContentValues的用法 314

7.7 小結與點評 317

第8章 跨程序共享數據,探究ContentProvider 318

8.1 ContentProvider簡介 318

8.2 運行時權限 319

8.2.1 Android權限機制詳解 319

8.2.2 在程序運行時申請權限 322

8.3 訪問其他程序中的數據 326

8.3.1 ContentResolver的基本用法 326

8.3.2 讀取系統連絡人 329

8.4 創建自己的ContentProvider 332

8.4.1 創建ContentProvider的步驟 332

8.4.2 實現跨程序數據共享 336

8.5 Kotlin課堂:泛型和委託 345

8.5.1 泛型的基本用法 345

8.5.2 類委託和委託屬性 347

8.5.3 實現一個自己的lazy函數 350

8.6 小結與點評 352

第9章 豐富你的程序,運用手機

多媒體 353

9.1 將程序運行到手機上 353

9.2 使用通知 355

9.2.1 創建通知渠道 355

9.2.2 通知的基本用法 357

9.2.3 通知的進階技巧 362

9.3 調用攝像頭和相冊 367

9.3.1 調用攝像頭拍照 367

9.3.2 從相冊中選擇圖片 371

9.4 播放多媒體文件 374

9.4.1 播放音頻 374

9.4.2 播放視頻 377

9.5 Kotlin課堂:使用infix函數構建

更可讀的語法 381

9.6 Git時間:版本控制工具進階 383

9.6.1 忽略文件 384

9.6.2 查看修改內容 385

9.6.3 撤銷未提交的修改 387

9.6.4 查看提交記錄 388

9.7 小結與點評 389

第 10章 後臺默默的勞動者,探究

Service 390

10.1 Service是什麼 390

10.2 Android多線程編程 391

10.2.1 線程的基本用法 391

10.2.2 在子線程中更新UI 392

10.2.3 解析異步消息處理機制 395

10.2.4 使用AsyncTask 396

10.3 Service的基本用法 399

10.3.1 定義一個Service 399

10.3.2 啟動和停止Service 401

10.3.3 Activity和Service進行

通信 404

10.4 Service的生命週期 408

10.5 Service的更多技巧 408

10.5.1 使用前臺Service 409

10.5.2 使用IntentService 411

10.6 Kotlin課堂:泛型的高級特性 415

10.6.1 對泛型進行實化 415

10.6.2 泛型實化的應用 417

10.6.3 泛型的協變 418

10.6.3 泛型的逆變 422

10.7 小結與點評 425

第 11章 看看精彩的世界,使用網絡

技術 427

11.1 WebView的用法 427

11.2 使用HTTP訪問網絡 429

11.2.1 使用HttpURLConnection 430

11.2.2 使用OkHttp 433

11.3 解析XML格式數據 436

11.3.1 Pull解析方式 438

11.3.2 SAX解析方式 441

11.4 解析JSON格式數據 444

11.4.1 使用JSONObject 445

11.4.2 使用GSON 446

11.5 網絡請求回調的實現方式 448

11.6 最好用的網絡庫:Retrofit 451

11.6.1 Retrofit的基本用法 452

11.6.2 處理複雜的接口地址類型 456

11.6.3 Retrofit構建器的最佳寫法 459

11.7 Kotlin課堂:使用協程編寫高效的

併發程序 461

11.7.1 協程的基本用法 461

11.7.2 更多的作用域構建器 467

11.7.3 使用協程簡化回調的寫法 471

11.8 小結與點評 474

第 12章 最佳的UI體驗,Material

Design實戰 475

12.1 什麼是Material Design 475

12.2 Toolbar 476

12.3 滑動菜單 483

12.3.1 DrawerLayout 483

12.3.2 NavigationView 486

12.4 懸浮按鈕和可交互提示 491

12.4.1 FloatingActionButton 491

12.4.2 Snackbar 494

12.4.3 CoordinatorLayout 496

12.5 卡片式佈局 498

12.5.1 MaterialCardView 498

12.5.2 AppBarLayout 504

12.6 下拉刷新 507

12.7 可折疊式標題欄 510

12.7.1 CollapsingToolbarLayout 510

12.7.2 充分利用系統狀態欄空間 519

12.8 Kotlin課堂:編寫好用的工具方法 522

12.8.1 求N個數的最大最小值 522

12.8.2 簡化Toast的用法 524

12.8.3 簡化Snackbar的用法 526

12.9 Git時間:版本控制工具的高級

用法 528

12.9.1 分支的用法 528

12.9.2 與遠程版本庫協作 530

12.10 小結與點評 532

第 13章 高級程序開發組件,探究

Jetpack 533

13.1 Jetpack簡介 533

13.2 ViewModel 534

13.2.1 ViewModel的基本用法 536

13.2.2 向ViewModel傳遞參數 539

13.3 Lifecycles 541

13.4 LiveData 545

13.4.1 LiveData的基本用法 545

13.4.2 map和switchMap 549

13.5 Room 554

13.5.1 使用Room進行増刪改查 555

13.5.2 Room的數據庫升級 562

13.6 WorkManager 565

13.6.1 WorkManager的基本用法 566

13.6.2 使用WorkManager處理

複雜的任務 568

13.7 Kotlin課堂:使用DSL構建專有的

語法結構 571

13.8 小結與點評 577

第 14章 繼續進階,你還應該掌握的

高級技巧 579

14.1 全域獲取Context的技巧 579

14.2 使用Intent傳遞對象 582

14.2.1 Serializable方式 582

14.2.2 Parcelable方式 583

14.3 定制自己的日誌工具 584

14.4 調試Android程序 586

14.5 深色主題 589

14.6 Kotlin課堂:Java與Kotlin代碼

之間的轉換 596

14.7 總結 600

第 15章 進入實戰,開發一個天氣

預報App 601

15.1 功能需求及技術可行性分析 601

15.2 Git時間:將代碼託管到GitHub上 605

15.3 搭建MVVM項目架構 612

15.4 搜索全球城市數據 615

15.4.1 實現邏輯層代碼 615

15.4.2 實現UI層代碼 620

15.5 顯示天氣信息 626

15.5.1 實現邏輯層代碼 626

15.5.2 實現UI層代碼 631

15.5.3 記錄選中的城市 645

15.6 手動刷新天氣和切換城市 647

15.6.1 手動刷新天氣 648

15.6.2 切換城市 650

15.7 製作App的圖標 654

15.8 生成正式簽名的APK文件 659

15.8.1 使用Android Studio生成 660

15.8.2 使用Gradle生成 663

15.9 你還可以做的事情 666

第 16章 編寫並發佈一個開源庫,PermissionX 669

16.1 開發前的準備工作 669

16.2 實現PermissionX開源庫 673

16.3 對開源庫進行測試 678

16.4 將開源庫發佈到jcenter倉庫 681

16.5 體驗我們的成果 688

16.6 結束語 691

您曾經瀏覽過的商品

購物須知

大陸出版品因裝訂品質及貨運條件與台灣出版品落差甚大,除封面破損、內頁脫落等較嚴重的狀態,其餘商品將正常出貨。

特別提醒:部分書籍附贈之內容(如音頻mp3或影片dvd等)已無實體光碟提供,需以QR CODE 連結至當地網站註冊“並通過驗證程序”,方可下載使用。

無現貨庫存之簡體書,將向海外調貨:
海外有庫存之書籍,等候約45個工作天;
海外無庫存之書籍,平均作業時間約60個工作天,然不保證確定可調到貨,尚請見諒。

為了保護您的權益,「三民網路書店」提供會員七日商品鑑賞期(收到商品為起始日)。

若要辦理退貨,請在商品鑑賞期內寄回,且商品必須是全新狀態與完整包裝(商品、附件、發票、隨貨贈品等)否則恕不接受退貨。

優惠價:87 517
海外經銷商無庫存,到貨日平均30天至45天

暢銷榜

客服中心

收藏

會員專區