移動開發叢書ANDROID STUDIO開發實戰:從零基礎到APP上線(第2版) 版權信息
- ISBN:9787302512608
- 條形碼:9787302512608 ; 978-7-302-51260-8
- 裝幀:一般膠版紙
- 冊數:暫無
- 重量:暫無
- 所屬分類:>>
移動開發叢書ANDROID STUDIO開發實戰:從零基礎到APP上線(第2版) 本書特色
本書是一本Android開發的實戰教程,由淺入深、從基礎到高級,帶領讀者一步一步走進App開發的神奇世界。相比第1版,第2版圖書不是簡單的更新,而是百煉成鋼的全面升級,主要進行了以下5處重要的增補變化。
1.工具更新穎
第2版的App開發全部基于Android 9.0環境,使用的開發工具為2018年9月發布的Android Studio 3.2,JNI用到的NDK則為2018年6月發布的r17c。相關的功能點都根據上述1新版本的工具展開論述,比如Android 8新增的畫中畫功能、Android 9新增的WebP動圖播放、Android Studio 3新增的內存用量查看窗口以及NDK的r17不再支持的ARM5(armeabi)的so文件編譯等。
2.技術更先進
移動互聯網的后繼發展(如物聯網、虛擬現實、人工智能等方向)如火如荼,第2版為此投入了大量筆墨深入描述相關技術細節,例如物聯網涉及的二維碼、NFC、紅外、藍牙等,虛擬現實涉及的陀螺儀、三維圖形、全景照片等,人工智能涉及的TTS、語音識別、語音合成等,還有1新科研成果,如北斗導航、SM3國密等。
3.案例更豐富
本書的一大特色是突出實戰,每章都給出了技術精煉的實戰項目。除了上一版本的十幾個實戰項目之外,又對房貸計算器、萬年歷、影視播放器等開辟專門章節詳細描述,另外新增了電商頭部、應用超市、全景圖庫、矢量動畫、電子書架等全新的項目,力圖把常見的App種類一網打盡。
4.代碼更易懂
作為一本軟件開發方面的專著,少不了給出范例代碼進行演示,代碼可讀易懂的重要性毋庸置疑。第2版在這方面大力改善,首先,對書中的代碼全面添加注釋,務求讓讀者看得懂、學得會;其次,針對Android不同系統之間的方法差異,分別說明每個版本的代碼兼容處理;再次,在實戰項目中,講清楚每段代碼的業務邏輯及其相互關系。
5.編排更合理
第1版對個別知識點的編排不甚合理,第2版對這些知識點重新組織編排,使之更連貫、更系統。比如內容提供器ContentProvider原來只在第13章介紹,再版之后將其提前到第4章的數據存儲中進行介紹,然后分別在第6章、第10章、第13章的實戰項目中加以運用。又如藍牙(Bluetooth)原本只在第14章的一個小節中介紹,再版之后將其提前到第9章的短距離通信中進行介紹,然后分別在第9章的實戰項目藍牙音箱和第14章的藍牙傳輸中加以運用,從而拓寬了這些技術的應用場景。
綜上所述,經過精心修訂的第2版圖書,無論是廣度還是深度,從數量到質量,都比第1版有了飛躍的提升。全書的目的不但是教會讀者怎么快速開發一個好玩、好看、好用的App,還能讓讀者領略行業前沿的移動互聯網新技術,這才是第2版想要呈獻給讀者的知識盛宴。
移動開發叢書ANDROID STUDIO開發實戰:從零基礎到APP上線(第2版) 內容簡介
本書是一部Android開發的實戰教程,由淺入深、由基礎到不錯,帶領讀者一步一步走進App開發的神奇世界。
全書共分為16章。其中,前8章是基礎部分,主要講解Android Studio的環境搭建、App開發的各種常用控件、App的數據存儲方式、如何調試App并將App發布上線;后8章是進階部分,主要講解App開發的設備操作、網絡通信、事件、動畫、多媒體、融合技術、第三方開發包、性能優化等。書中在講解知識點的同時給出了大量實戰范例,方便讀者迅速將所學的知識運用到實際開發中。通過本書的學習,讀者能夠掌握3類主流App的基本開發技術,包括購物App(電子商務)、聊天App(即時通信)、打車App(交通出行)。另外,能夠學會開發一些趣味應用,包括簡單計算器、房貸計算器、萬年歷、日程表、手機安全助手、指南針、衛星渾天儀、應用超市、摳圖工具、全景圖庫、動感影集、影視播放器、音樂播放器、WiFi共享器、電子書架等。
本書適用于Android開發的廣大從業者、有志于轉型App開發的程序員、App開發的業余愛好者,也可作為大中專院校與培訓機構的Android課程教材。
移動開發叢書ANDROID STUDIO開發實戰:從零基礎到APP上線(第2版) 目錄
目 錄
第1章 Android Studio環境搭建 1
1.1 Android Studio簡介 1
1.2 Android Studio的安裝 2
1.2.1 開發機配置要求 2
1.2.2 安裝依賴的軟件 2
1.2.3 安裝Android Studio 3
1.2.4 下載Android的SDK 5
1.3 運行小應用Hello World 6
1.3.1 創建新項目 6
1.3.2 編譯項目/模塊 8
1.3.3 創建模擬器 9
1.3.4 在模擬器上運行App 9
1.4 App的工程結構 11
1.4.1 工程目錄說明 11
1.4.2 編譯配置文件build.gradle 12
1.4.3 App運行配置AndroidManifest.xml 13
1.4.4 在代碼中操縱控件 14
1.5 準備開始 15
1.5.1 使用快捷鍵 15
1.5.2 安裝SVN工具 16
1.5.3 安裝常用插件 17
1.5.4 導入已經存在的工程 19
1.5.5 新建一個Activity頁面 20
1.6 小結 22
第2章 初級控件 23
2.1 屏幕顯示 23
2.1.1 像素 23
2.1.2 顏色 25
2.1.3 屏幕分辨率 26
2.2 簡單布局 27
2.2.1 視圖View的基本屬性 27
2.2.2 線性布局LinearLayout 30
2.2.3 滾動視圖ScrollView 32
2.3 簡單控件 34
2.3.1 文本視圖TextView 34
2.3.2 按鈕Button 37
2.3.3 圖像視圖ImageView 39
2.3.4 圖像按鈕ImageButton 43
2.4 圖形基礎 45
2.4.1 圖形Drawable 45
2.4.2 狀態列表圖形 46
2.4.3 形狀圖形 47
2.4.4 九宮格圖片 50
2.5 實戰項目:簡單計算器 53
2.5.1 設計思路 53
2.5.2 小知識:日志Log/提示Toast 55
2.5.3 代碼示例 56
2.6 小結 57
第3章 中級控件 59
3.1 其他布局 59
3.1.1 相對布局RelativeLayout 59
3.1.2 框架布局FrameLayout 63
3.2 特殊按鈕 64
3.2.1 復選框CheckBox 64
3.2.2 開關按鈕Switch 65
3.2.3 單選按鈕RadioButton 66
3.3 適配視圖基礎 68
3.3.1 下拉框Spinner 68
3.3.2 數組適配器ArrayAdapter 69
3.3.3 簡單適配器SimpleAdapter 70
3.4 編輯框 72
3.4.1 文本編輯框EditText 72
3.4.2 自動完成編輯框AutoCompleteTextView 77
3.5 活動Activity基礎 78
3.5.1 Activity的生命周期 78
3.5.2 使用Intent傳遞消息 83
3.5.3 向下一個Activity傳遞參數 85
3.5.4 向上一個Activity返回參數 86
3.6 實戰項目:房貸計算器 89
3.6.1 設計思路 89
3.6.2 小知識:文本工具TextUtils 90
3.6.3 代碼示例 91
3.7 實戰項目:登錄App 93
3.7.1 設計思路 93
3.7.2 小知識:提醒對話框AlertDialog 94
3.7.3 代碼示例 96
3.8 小結 98
第4章 數據存儲 100
4.1 共享參數SharedPreferences 100
4.1.1 共享參數的基本用法 100
4.1.2 實現記住密碼功能 102
4.2 數據庫SQLite 103
4.2.1 SQLite的基本用法 103
4.2.2 數據庫幫助器SQLiteOpenHelper 104
4.2.3 優化記住密碼功能 110
4.3 SD卡文件操作 112
4.3.1 SD卡的基本操作 112
4.3.2 公有存儲空間與私有存儲空間 114
4.3.3 文本文件讀寫 115
4.3.4 圖片文件讀寫 116
4.4 應用Application基礎 118
4.4.1 Application的生命周期 118
4.4.2 利用Application操作全局變量 119
4.5 內容提供與處理 121
4.5.1 內容提供器ContentProvider 121
4.5.2 內容解析器ContentResolver 123
4.5.3 內容觀察器ContentObserver 128
4.6 實戰項目:購物車 131
4.6.1 設計思路 131
4.6.2 小知識:菜單Menu 132
4.6.3 代碼示例 136
4.7 小結 139
第5章 高級控件 140
5.1 日期時間控件 140
5.1.1 日期選擇器DatePicker 140
5.1.2 時間選擇器TimePicker 142
5.2 列表類視圖 144
5.2.1 基本適配器BaseAdapter 144
5.2.2 列表視圖ListView 148
5.2.3 網格視圖GridView 154
5.3 翻頁類視圖 158
5.3.1 翻頁視圖ViewPager 158
5.3.2 翻頁標題欄PagerTitleStrip/PagerTabStrip 161
5.3.3 簡單的啟動引導頁 163
5.4 碎片Fragment 166
5.4.1 靜態注冊 166
5.4.2 動態注冊/碎片適配器FragmentStatePagerAdapter 170
5.4.3 改進的啟動引導頁 173
5.5 廣播Broadcast基礎 175
5.5.1 發送/接收臨時廣播 176
5.5.2 定時器AlarmManager 178
5.6 實戰項目:萬年歷 180
5.6.1 設計思路 180
5.6.2 小知識:月份選擇器MonthPicker 181
5.6.3 代碼示例 183
5.7 實戰項目:日程表 184
5.7.1 設計思路 184
5.7.2 小知識:震動器Vibrator 185
5.7.3 代碼示例 185
5.8 小結 187
第6章 自定義控件 188
6.1 自定義視圖 188
6.1.1 聲明屬性 188
6.1.2 構造對象 191
6.1.3 測量尺寸 192
6.1.4 寬高尺寸的動態調整 195
6.1.5 繪制視圖 198
6.2 自定義動畫 204
6.2.1 任務Runnable 204
6.2.2 下拉刷新動畫 205
6.2.3 圓弧進度動畫 207
6.3 自定義對話框 208
6.3.1 對話框Dialog 208
6.3.2 改進的日期對話框 209
6.3.3 自定義多級對話框 213
6.4 自定義通知欄 214
6.4.1 通知推送Notification 214
6.4.2 進度條ProgressBar 218
6.4.3 遠程視圖RemoteViews 220
6.4.4 自定義通知的文本顏色設定 223
6.5 服務Service基礎 225
6.5.1 Service的生命周期 225
6.5.2 推送服務到前臺 229
6.6 實戰項目:手機安全助手 230
6.6.1 設計思路 230
6.6.2 小知識:應用包管理器PackageManager 232
6.6.3 代碼示例 234
6.7 小結 235
第7章 組合控件 236
7.1 標簽欄 236
7.1.1 標簽按鈕 236
7.1.2 實現底部標簽欄 238
7.2 導航欄 246
7.2.1 工具欄Toolbar 246
7.2.2 溢出菜單OverflowMenu 248
7.2.3 搜索框SearchView 250
7.2.4 標簽布局TabLayout 253
7.3 橫幅條 260
7.3.1 自定義指示器 260
7.3.2 實現橫幅輪播Banner 263
7.3.3 仿京東頂到狀態欄的Banner 267
7.4 增強型列表 271
7.4.1 循環視圖RecyclerView 271
7.4.2 布局管理器LayoutManager 275
7.4.3 動態更新循環視圖 280
7.5 材質設計庫 282
7.5.1 協調布局CoordinatorLayout 282
7.5.2 應用欄布局AppBarLayout 285
7.5.3 可折疊工具欄布局CollapsingToolbarLayout 287
7.6 實戰項目:仿支付寶的頭部伸縮特效 290
7.6.1 設計思路 291
7.6.2 小知識:導航欄的滾動標志 292
7.6.3 代碼示例 293
7.7 實戰項目:仿淘寶主頁 298
7.7.1 設計思路 298
7.7.2 小知識:下拉刷新布局SwipeRefreshLayout 299
7.7.3 代碼示例 303
7.8 小結 305
第8章 調試與上線 306
8.1 調試工作 306
8.1.1 模擬器調試 306
8.1.2 真機調試 311
8.1.3 導出APK安裝包 313
8.2 準備上線 315
8.2.1 版本設置 315
8.2.2 上線模式 316
8.2.3 數據加密 320
8.3 安全加固 325
8.3.1 反編譯 325
8.3.2 代碼混淆 327
8.3.3 第三方加固及重簽名 329
8.4 發布到應用商店 331
8.4.1 注冊開發者賬號 331
8.4.2 創建并提交應用 332
8.5 小結 334
第9章 設備操作 335
9.1 攝像頭 335
9.1.1 表面視圖SurfaceView 335
9.1.2 使用Camera拍照 337
9.1.3 紋理視圖TextureView 343
9.1.4 使用Camera 2拍照 344
9.1.5 運行時動態授權管理 346
9.2 麥克風 349
9.2.1 拖動條SeekBar 349
9.2.2 音量控制 350
9.2.3 錄音與播音 352
9.2.4 錄像與放映 360
9.3 傳感器 362
9.3.1 傳感器的種類 362
9.3.2 搖一搖——加速度傳感器 364
9.3.3 指南針——磁場傳感器 365
9.3.4 計步器、感光器和陀螺儀 368
9.4 手機定位 370
9.4.1 開啟定位功能 371
9.4.2 獲取定位信息 373
9.5 短距離通信 378
9.5.1 NFC近場通信 378
9.5.2 紅外遙控 384
9.5.3 藍牙BlueTooth 388
9.6 實戰項目:仿微信的發現功能 395
9.6.1 設計思路 395
9.6.2 小知識:全球衛星導航系統 397
9.6.3 代碼示例 399
9.7 小結 406
第10章 網絡通信 407
10.1 多線程 407
10.1.1 消息傳遞Message 407
10.1.2 進度對話框ProgressDialog 411
10.1.3 異步任務AsyncTask 414
10.1.4 異步服務IntentService 420
10.2 HTTP接口訪問 423
10.2.1 網絡連接檢查 423
10.2.2 移動數據格式JSON 425
10.2.3 JSON串與實體類自動轉換 427
10.2.4 HTTP接口調用 428
10.2.5 HTTP圖片獲取 432
10.3 上傳和下載 434
10.3.1 下載管理器DownloadManager 435
10.3.2 文件對話框 441
10.3.3 文件上傳 442
10.4 套接字Socket 445
10.4.1 網絡地址InetAddress 445
10.4.2 Socket通信 446
10.5 實戰項目:仿應用寶的應用更新功能 451
10.5.1 設計思路 451
10.5.2 小知識:查看APK文件的包信息 452
10.5.3 代碼示例 454
10.6 實戰項目:仿手機QQ的聊天功能 457
10.6.1 設計思路 457
10.6.2 小知識:可折疊列表視圖ExpandableListView 459
10.6.3 代碼示例 464
10.7 小結 468
第11章 事件 469
11.1 按鍵事件 469
11.1.1 檢測軟鍵盤 469
11.1.2 檢測物理按鍵 472
11.1.3 音量調節對話框 474
11.2 觸摸事件 479
11.2.1 手勢事件的分發流程 479
11.2.2 手勢事件處理MotionEvent 483
11.2.3 手寫簽名 486
11.3 手勢檢測 488
11.3.1 手勢檢測器GestureDetector 488
11.3.2 飛掠視圖ViewFlipper 491
11.3.3 手勢控制橫幅輪播 494
11.4 手勢沖突處理 498
11.4.1 上下滾動與左右滑動的沖突處理 498
11.4.2 內部滑動與翻頁滑動的沖突處理 501
11.4.3 正常下拉與下拉刷新的沖突處理 506
11.5 實戰項目:摳圖神器——美圖變變 510
11.5.1 設計思路 510
11.5.2 小知識:二維圖像的基本加工 511
11.5.3 代碼示例 512
11.6 實戰項目:虛擬現實的全景圖庫 514
11.6.1 設計思路 514
11.6.2 小知識:三維圖形接口OpenGL 516
11.6.3 代碼示例 529
11.7 小結 532
第12章 動畫 534
12.1 幀動畫 534
12.1.1 幀動畫的實現 534
12.1.2 顯示GIF動畫 536
12.1.3 淡入淡出動畫 538
12.2 補間動畫 539
12.2.1 補間動畫的種類 539
12.2.2 補間動畫的原理 544
12.2.3 集合動畫 547
12.2.4 在飛掠橫幅中使用補間動畫 549
12.3 屬性動畫 551
12.3.1 屬性動畫的用法 551
12.3.2 屬性動畫組合 555
12.3.3 插值器和估值器 557
12.4 矢量動畫 561
12.4.1 矢量圖形 561
12.4.2 可縮放矢量圖形SVG標記 563
12.4.3 利用屬性動畫實現矢量動畫 565
12.4.4 仿支付寶的支付成功動畫 568
12.5 動畫的實現手段 572
12.5.1 使用延時重繪 572
12.5.2 設置狀態參數 574
12.5.3 滾動器Scroller 575
12.6 實戰項目:仿QQ空間的動感影集 577
12.6.1 設計思路 577
12.6.2 小知識:畫布的繪圖層次 578
12.6.3 代碼示例 583
12.7 小結 584
第13章 多媒體 585
13.1 相冊 585
13.1.1 畫廊Gallery 585
13.1.2 圖像切換器ImageSwitcher 589
13.1.3 圖片查看器——青青相冊 592
13.2 音頻播放 596
13.2.1 鈴聲Ringtone 596
13.2.2 聲音池SoundPool 599
13.2.3 音軌錄播AudioTrack 602
13.3 視頻播放 605
13.3.1 視頻視圖VideoView 606
13.3.2 媒體控制條MediaController 609
13.3.3 自定義播放控制條 611
13.4 多窗口 613
13.4.1 分屏——多窗口模式 614
13.4.2 畫中畫——特殊的多窗口 617
13.4.3 自定義懸浮窗 619
13.4.4 截圖和錄屏 624
13.5 實戰項目:影視播放器——愛看劇場 626
13.5.1 設計思路 626
13.5.2 小知識:豎屏與橫屏切換 627
13.5.3 代碼示例 630
13.6 實戰項目:音樂播放器——浪花音樂 634
13.6.1 設計思路 634
13.6.2 小知識:可變字符串SpannableString 636
13.6.3 代碼示例 639
13.7 小結 644
第14章 融合技術 646
14.1 網頁集成 646
14.1.1 資產管理器AssetManager 646
14.1.2 網頁視圖WebView 648
14.1.3 簡單瀏覽器 651
14.2 JNI開發 658
14.2.1 NDK環境搭建 658
14.2.2 創建JNI接口 661
14.2.3 JNI實現加解密 666
14.3 局域網共享 669
14.3.1 無線網絡管理器WifiManager 670
14.3.2 連接指定WiFi 671
14.3.3 開關熱點 672
14.3.4 點對點藍牙傳輸 674
14.4 實戰項目:共享經濟弄潮兒——WiFi共享器 683
14.4.1 設計思路 683
14.4.2 小知識:NetBIOS協議 684
14.4.3 代碼示例 688
14.5 實戰項目:筆墨飄香之電子書架 693
14.5.1 設計思路 693
14.5.2 小知識:PDF文件渲染器PdfRenderer 694
14.5.3 代碼示例 696
14.6 小結 701
第15章 第三方開發包 702
15.1 地圖SDK 702
15.1.1 查看簽名信息 702
15.1.2 百度地圖 704
15.1.3 高德地圖 710
15.2 分享SDK 714
15.2.1 QQ分享 715
15.2.2 微信分享 716
15.3 支付SDK 721
15.3.1 支付寶支付 721
15.3.2 微信支付 723
15.4 語音SDK 724
15.4.1 文字轉語音TextToSpeech 724
15.4.2 語音識別 729
15.4.3 語音合成 733
15.5 實戰項目:仿滴滴打車 734
15.5.1 設計思路 734
15.5.2 小知識:評分條RatingBar 735
15.5.3 代碼示例 738
15.6 小結 739
第16章 性能優化 741
16.1 布局文件優化 741
16.1.1 減少重復布局 741
16.1.2 自適應調整布局 744
16.1.3 自定義窗口主題 746
16.2 內存泄漏處理 748
16.2.1 內存泄漏的檢測 748
16.2.2 內存泄漏的發生 749
16.2.3 內存泄漏的預防 755
16.3 線程池管理 758
16.3.1 普通線程池 758
16.3.2 定時器線程池 760
16.4 省電模式 761
16.4.1 檢測當前電量 761
16.4.2 檢測屏幕開關 763
16.4.3 休眠模式對App的影響 765
16.5 實戰項目:網絡圖片緩存框架 768
16.5.1 設計思路 768
16.5.2 小知識:LRU緩存策略 769
16.5.3 代碼示例 772
16.6 小結 780
附錄 781
附錄一 仿流行App的常用功能 781
附錄二 Android各版本的新增功能說明 782
附錄三 手機硬件與App開發的關聯 784
附錄四 專業術語索引 785
展開全部
移動開發叢書ANDROID STUDIO開發實戰:從零基礎到APP上線(第2版) 作者簡介
歐陽燊, CSDN博客專家,有14年以上軟件開發經驗,熟悉C/C++、Java及相關軟件架構,4年以上Android開發經驗,對Android開發擁有豐富的實戰經驗。已出版暢銷書《Android Studio開發實戰:從零基礎到App上線》《Kotlin從零到精通Android開發》。