本書被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技術相關的書。在我看來,寫一本書可以算是一個很龐大的工程,寫一本好書的難度並不亞於開發一款好的應用程序。
由於我長期堅持在CSDN上發錶技術博文,因而得到瞭大量網友的認可,也積纍瞭一定的名氣。很榮幸的是,人民郵電齣版社圖靈公司的前副總編輯陳冰老師聯係上瞭我,希望我可以寫一本關於Android開發技術的書,這著實讓我受寵若驚。
在寫本書第1版的時候,我可以說是費瞭相當大的心思。寫書和寫博客最大的區彆在於,書的內容不能像博客那樣散亂,不能想到哪裏寫到哪裏,而是一定要係統化,要循序漸進,基本上在寫第1章的時候就應該把全書的內容都確定下來瞭。
令我非常欣慰的是,本書的第1版在推齣之後獲得瞭廣大讀者的強烈認可,在短短兩年時間內,已經成為瞭國內最暢銷的Android技術書。各大書店、圖書館都能看到《第一行代碼》的身影,許多學校和培訓機構也紛紛將《第一行代碼》選為Android課程的教材。
不過,在科技高速發展的今天,各種技術的發展都是日新月異的。在兩年的時間裏,Android操作係統經曆瞭5.0、6.0、7.0的飛速升級。不可否認的是,本書第1版中的不少知識點都已經過時,而且這兩年間齣現的很多新知識,第1版中也沒有涵蓋。因此,這讓我堅定瞭寫作本書第2版的想法。
剛開始寫的時候,我以為隻是小修小補,但事實上並沒有我想象得那麼輕鬆。除瞭介紹新知識點以外,書中之前的所有項目都需要重新編寫和測試,以保證代碼在新老係統上的兼容性。另外,由於Android從5.0係統開始,UI風格變化很大,因此第1版中所有的截圖都需要更新。毫不誇張地說,我幾乎重寫瞭整本書。
而現在,你手中捧著的正是全新版的《第一行代碼》,同時這也是國內第一本基於Android 7.0係統寫作的技術書。我真誠地希望你可以用心去閱讀這本書,因為每多掌握一份知識,你就會多一份喜悅。Enjoy it!
第2版的變化
由於第2版修改內容繁多,因此這裏我隻列舉齣最主要的變化。首先是開發工具上的改變,本書第1版使用的開發工具是Eclipse,而第2版使用瞭目前最新的Android Studio 2.2版本。另外,本書第1版是基於Android 4.x係統的,而第2版是基於Android 7.0係統的,其中囊括瞭新係統中的諸多知識點,包括Android 5.0係統中引入的Material Design、Android 6.0係統中引入的運行時權限和Doze模式、Android 7.0係統中引入的多窗口模式等。
除此之外,第2版還加入瞭Gradle、RecyclerView、百分比布局、OkHttp、Lambda錶達式等全新知識點的講解,內容將前所未有地充實。
讀者對象
本書內容通俗易懂,由淺入深,既適閤初學者閱讀,也同樣適閤專業人員。學習本書內容之前,你並不需要有任何的Android基礎,但是你需要有一定的Java基礎,因為Android開發都是使用Java語言的,而本書並不會去專門介紹Java方麵的知識。
閱讀本書時,你可以根據自身的情況來決定如何閱讀。如果你是初學者的話,建議你從第1章開始循序漸進地閱讀,這樣理解起來就不會感到吃力。而如果你已經有瞭一定的Android基礎,那麼就可以選擇某些你感興趣的章節進行跳躍式的閱讀。但請記住,很多章最後的最佳實踐部分一定是你不想錯過的。
本書內容
正如前麵所說,本書的內容是非常係統化的,不僅全麵介紹瞭那些你必須掌握的知識,而且保證瞭各章的難度都是梯度式上升的。全書一共分為15章,涵蓋瞭四大組件、UI、碎片、數據存儲、多媒體、網絡、定位服務等方方麵麵的知識。為瞭讓你在學完所有內容之後還可以有綜閤運用的能力,本書的尾聲部分還會帶你一起開發一個天氣預報程序,並教會你如何將程序發布到應用商店,以及如何在程序中嵌入廣告盈利。
除此之外,本書的第5章、第7章、第11章、第14章中都穿插有對Git的講解,如果想要掌握它的用法,這幾章的內容是絕對不能錯過的。
本書中各個章節的內容都相對比較獨立,因此除瞭可以循序漸進地學習之外,你還可以把它當成一本參考手冊,隨時查閱。
源碼下載
首先,我建議你在學習本書的時候將所有項目的源碼都親手敲上一遍,因為隻有這樣纔能加深你對代碼的理解。不過為瞭方便於你的學習,我還是提供瞭書中所有項目的源碼,請僅在需要的時候再去參考(如下載項目中的圖片資源)。切勿直接將源碼復製粘貼就當成自己的東西瞭,隻有親手敲過的代碼纔真正是你自己的
我一直認為,學習編程最重要的是要培養一種“解決問題”的能力,而《第一行代碼 Android 第2版》這本書在這方麵做得非常齣色。它不僅僅是教授代碼,更重要的是教會讀者如何去思考和分析問題。書中經常會提齣一些實際開發中會遇到的場景,然後引導讀者一步步地找齣解決方案。比如在講解異常處理時,作者會分析不同類型的異常可能的原因,並給齣相應的處理建議。在講解UI布局時,會討論如何在不同屏幕尺寸下實現適配。這些“如何做”的思路,比單純的代碼堆砌更有價值。此外,本書在講解過程中,也積極鼓勵讀者進行實踐和探索,比如提齣一些小挑戰或者讓讀者思考更優的實現方式。這種互動式的學習方式,能夠讓讀者在動手中真正理解知識,而不是被動地接受。讀完這本書,我感覺自己不再隻是一個“代碼搬運工”,而是真正具備瞭獨立分析和解決Android開發問題的能力。
评分這本書簡直是我的Android開發啓濛導師!我之前對編程完全是個小白,看到厚厚的書本就頭疼,總覺得無從下手。但《第一行代碼 Android 第2版》就像一道光,把我從迷茫中解救齣來。它沒有上來就堆砌那些枯燥的理論和晦澀的概念,而是用非常接地氣的方式,一步步引導你寫齣第一個能跑起來的Android應用。書中每一個小例子都設計得非常巧妙,從最簡單的“Hello World”到後麵涉及UI、事件處理,再到數據存儲和網絡請求,感覺就像在玩闖關遊戲一樣,每完成一關都能獲得巨大的成就感。更重要的是,作者的講解清晰易懂,即使我遇到不懂的地方,反復讀幾遍也能豁然開朗。我尤其喜歡它在講解過程中穿插的各種開發技巧和注意事項,這些細節往往是其他書籍容易忽略的,但它們對於新手來說,簡直是寶藏!讓我少走瞭很多彎路。這本書真的讓我體會到瞭編程的樂趣,並且建立瞭學習Android開發的信心。
评分作為一名在移動端領域摸爬滾打多年的老兵,我這次閱讀《第一行代碼 Android 第2版》更多的是為瞭迴顧和查漏補缺。雖然我對Android開發已經有瞭一定的經驗,但這本書依然給瞭我不少啓發。它在講解基礎知識時,並沒有停留在錶麵的API調用,而是深入剖析瞭Android係統的底層機製,例如Binder機製、消息循環、事件分發等。這些內容對於理解Android應用的運行原理至關重要,也能夠幫助我們寫齣更健壯、更高效的代碼。書中對一些高級主題的探討,比如多綫程、異步處理、性能優化等方麵,也都有著獨到的見解和實用的建議。我特彆贊賞作者在講解過程中,會引用大量的源碼分析,這讓我能夠更透徹地理解框架的設計思路。此外,書中對於Android Jetpack組件的介紹,也讓我瞭解到瞭最新的Android開發趨勢和最佳實踐。即便已經有經驗,這本書依然能夠提供新的視角和深入的知識。
评分我是一名自由職業者,經常需要快速學習新的技術來完成客戶的項目。《第一行代碼 Android 第2版》這本書完全符閤我的需求。它最大的特點就是“夠用且高效”。這本書不是那種麵麵俱到、把所有細節都講透的百科全書式書籍,而是聚焦於Android開發中最核心、最常用的部分。通過本書的學習,我能夠在短時間內掌握Android應用開發的基本技能,並且能夠獨立完成一些中小型項目。書中提供的代碼示例都經過精心設計,可以直接用於實際項目中,大大縮短瞭開發周期。我尤其喜歡它關於Fragment、RecyclerView、網絡請求等章節的講解,這些都是實際開發中必不可少的技能。而且,本書的更新速度也很快,能夠跟上Android技術的發展步伐,這一點對於需要緊跟行業前沿的開發者來說尤為重要。學習效率高,實踐性強,是這本書給我最大的感受。
评分我是一位有一定Java基礎但對Android開發完全陌生的開發者,在尋找閤適的入門書籍時,《第一行代碼 Android 第2版》給我留下瞭深刻的印象。這本書的優點在於它能夠很好地銜接Java知識與Android開發實踐。它並沒有假設讀者對Android生態係統有任何先驗知識,而是從零開始,詳細講解瞭Android應用的基本結構、生命周期、各種組件(Activity、Service、Broadcast Receiver、Content Provider)的作用和使用方法。書中對UI設計的講解也非常細緻,從XML布局文件的編寫到各種常用控件的使用,再到如何實現響應式的界麵,都提供瞭豐富的示例和詳細的說明。此外,書中關於數據持久化(SharedPreferences、SQLite)和網絡通信(HttpURLConnection)的章節,更是為我後續開發復雜應用打下瞭堅實的基礎。我尤其欣賞作者在講解過程中,會時不時地提醒讀者注意一些常見的坑和優化建議,這對於避免日後踩雷非常有幫助。總的來說,這本書提供瞭一個係統且紮實的Android開發入門路徑。
评分早就想买了 搞活动 价格便宜一些 跟着大神学习
评分好好好好好好好好好看好好好好好好好好好看
评分好~~~~~~~~~~~~
评分本书被Android开发者誉为Android学习经典。全书系统全面、循序渐进地介绍了Android软件开发的知识、经验和技巧。很值得学习一波!
评分通读一边书,感觉里面的内容都讲的不是很细,有些代码中的类和方法都是一笔带过,让人一头雾水,本书有个特点就是简单的知识点讲的都比较详细,但是后面复杂的知识点就是一笔带过。这本书我感觉更适合对安卓已经有一定了解的人来阅读,作为一种知识的巩固,如果仅仅是刚学完 Java se 的人来看这书,是很难单凭这本书学懂的,因为很多细节没讲清楚,都是直接拿来用的。不过总体来说这书涵盖的东西还不少,有一定的阅读价值,如果是刚接触安卓的同学,而且书已经在手,建议怀着了解安卓整体知识架构的心态来学习,不要想着凭着这本书能把安卓学精通的心态来学习,因为真的不能完全搞懂里面的每一句代码的含义和用法,期望过高失望也会更大,很可能会坚持不住学习。当我们大体看完这本书的时候,可以找点项目做,把书本中的知识和代码进行参考。
评分书没折不错,物流很棒,书别人介绍的,应该没毛病
评分很划算 包装也很好 应该是正版
评分技术性的难点之类的,目前一点都没看到。也是写书的人语言通俗易懂。全书,570页。
评分这是一本很好的书,个人觉得是很好的安卓入门书,正好好学习呢
本站所有內容均為互聯網搜索引擎提供的公開搜索信息,本站不存儲任何數據與內容,任何內容與數據均與本站無關,如有需要請聯繫相關搜索引擎包括但不限於百度,google,bing,sogou 等
© 2025 tushu.tinynews.org All Rights Reserved. 求知書站 版权所有