愛上Android

愛上Android

作者: 於連林
出版社: 人民郵電
出版在: 2017-08-01
ISBN-13: 9787115461759
ISBN-10: 7115461759
裝訂格式: 平裝
總頁數: 412 頁





內容描述


內 容 提 要
本書深入淺出,詳細講解了Android開發的知識,主要內容包括:Android的體系架構、Android Studio、項目的創建、Android工程目錄、調試程序、界面的搭建;常用的控件和屬性、提示信息Toast和Snackbar、點擊事件3種寫法等;Activity之間的跳轉、Activity生命周期、Activity啟動模式等;數據存儲、網絡編程;圖片的處理;復雜控件的使用;Fragment、廣播接收者、Service、動畫等;以及Android新特性、Kotlin語言、性能優化、屏幕適配、自定義控件、JNI/NDK開發等高級知識。並通過開發一個真實的項目讓讀者學以致用。
本書內容通俗易懂,比較適合初學者閱讀,也可以作為專業人員的工具書,以及大專院校相關專業師生的學慣用書和培訓學校的教材。


目錄大綱


目錄
第1章初識Android 1 
1.1 Android是什麼1 
1.2 Android體系架構1 
1.3 Android發展史4 
第2章選擇您的開發工具5 
2.1準備軟件,認識Android Studio 5 
2.1.1什麼是Android Studio 5 
2.1. 2為什麼使用Android Studio 6 
2.2安裝Android Studio 6 
2.2.1安裝配置要求6 
2.2.2下載地址6 
2.2.3安裝JDK 7 
2.2.4安裝Android Studio 7 
2.2.5設置JDK和Android SDK 
目錄14 
2.3項目的創建16 
2.3.1創建項目的步驟16 
2.3.2解決錯誤(沒有錯誤最好) 19 
2.4 Android Studio界面預覽21 
2.5常用設置22 
2.5.1設置主題22 
2.5.2設置字體和格式22 
2.5.3設置文件編碼24 
2.5.4設置快捷鍵24 
2.5.5其他設置26 
2.6常用快捷鍵26 
2.7 Android工程目錄27 
2.7.1工程目錄介紹27 
2.7.2 Gradle使用詳解28 
2.7.3 app/build.gradle 28 
2.8 SDK目錄介紹30 
2.9調試程序31 
2.9.1創建模擬器31 
2.9.2連接真實手機33 
2.9.3 Genymotion模擬器34 
2.10程序啟動分析34 
2.11日誌和註釋36 
2.11.1註釋37 
2.11.2日誌3 7 
2.11.3設置Android Studio日誌
顯示顏色38 
2.11.4實際開發中控制日誌39 
2.11.5 Logger的使用41 
總結42 
第3章界面的搭建43 
3.1眼見皆View 43 
3.2佈局的搭建方式43 
3.3常用的控件和屬性44 
3.3.1 TextView 44 
3.3.2 Button 45 
3.3.3 EditText 46 
3.3.4 ImageView 47 
3.3.5 ProgressBar 49 
3.4佈局的介紹50 
3.4.1 LinearLayout(線性佈局) 50 
3.4.2 RelativeLayout(相對佈局) 52 
3.4.3 FrameLayout(幀佈局) 55 
3.4.4 GridLayout(網格佈局) 56 
3.4.5 CoordinatorLayout 58 
3.4.6 ConstraintLayout(約束
佈局) 61 
3.5提示信息Toast和Snackbar 61 
3.5.1 Toast使用詳解61 
3.5 .2修改Toast位置63 
3.5.3自定義Toast佈局63 
3.5.4避免內存洩露65 
3.5.5 Snackbar 65 
3.6點擊事件三種寫法68 
3.6.1通過匿名內部類或內部類
實現68 
3.6.2讓類實現接口69 
3.6.3在佈局文件中註冊事件70 
3.7使用Lambda表達式代替匿名
內部類70 
3.7.1什麼是lambda呢70 
3.7.2使用Lambda表達式71 
3.8 AlertDialog提示 話框73 
3.8.1一般對話框75 
3.8.2 Material Design風格的
對話框76 
3.8.3列表對話框78 
3.8.4單選按鈕對話框79 
3.8.5多選按鈕對話框79 
3.8.6自定義AlertDialog 80 
3.9 ProgressDialog 81 
總結83 
第4章Activity介紹84 
4.1 Activity之間的跳轉84 
4.1.1顯示意圖84 
4.1.2隱式意圖86 
4.1.3隱式意圖的常見操作88 
4.1.4 IntentFilter匹配規則89 
4.2 Activity之間傳遞數據92 
4.2.1通過Intent傳遞數據92 
4.2.2靜態工廠設計模式傳遞
數據93 
4.2.3返回數據給之前的Activity 93 
4.3 Android 6.0權限的管理95 
4.3.1 Android 6.0新的權限機制96 
4.3.2申請權限96 
4.3.3第三方庫RxPermissions 100 
4.4 Activity生命週期101 
4.4.1生命週期的方法101 
4.4.2 Activity銷毀時保存數據102 
4.4.3鎖定橫豎屏103 
4.4.4開發時注意事項104 
4.5 Activity任務棧104 
4.6 Activity啟動模式105 
4.6.1 standard 105 
4.6.2 singleTop 106 
4.6.3 singleTask 106 
4.6.4 singleInstance 107 
4.6.5統一管理Activity 108 
4.7 Toolbar 和Navigation Drawer 109 
4.7.1 AppBar的簡介109 
4.7.2創建菜單111 
4.7.3 Toolbar 112 
4.7.4 Toolbar遇上Navigation 
Drawer 114 
4.8主題樣式設置118 
總結120 
第5章數據存儲121 
5.1 SharedPreference 121 
5.2 MD5加密123 
5.3文件存儲數據124 
5.3.1保存到手機內存(Internal 
Storage) 124 
5.3.2 SD卡存儲(External 
Storage) 127 
5.4 SQLite存儲132 
5.4.1創建數據庫132 
5.4.2升級數據庫135 
5.4.3數據庫增刪改查(CURD) 137 
5.4.4 SQLite數據庫的事務操作144 
5.5常見的數據庫框架146 
總結146 
第6章網絡編程148 
6.1 HTTP協議148 
6.1.1 URL簡介148 
6.1.2 HTTP簡介149 
6.1.3 GET和POST對比151 
6.2 HttpURLConnection 151 
6.2.1為什麼廢棄HttpClient 151 
6.2.2使用HttpURLConnection 
聯網152 
6.3多線程編程154 
6.3.1線程的同步和異步154 
6.3.2 AsycTask 158 
6.3.3 RxJava 161 
6.4網絡請求實例164 
6.5 JSON解析168 
6.5.1使用Android原生方式解析
JSON 169 
6.5.2 Gson的使用170 
6.5.3插件GsonFormat快速實現
JavaBea n 174 
6.5.4完成請求實例176 
6.6網絡請求框架——Retrofit 179 
6.6.1使用Retrofit 179 
6.6.2常用的註解181 
6.6.3完成請求案例181 
6.6.4 RxJava和Retrofit結合183 
6.7 WebView 184 
6.7. 1 WebView配置186 
6.7.2 WebViewClient方法187 
6.7.3設置WebChromeClient 189 
6.7.4 WebView常用的方法190 
6.7.5 WebView模板代碼191 
總結196 
第7章圖片的處理197 
7.1 Bitmap和Drawable 197 
7.2大圖的加載199 
7.3圖片加水印202 
7.4圖片特效,Matrix 205 
7.4.1縮放205 
7.4.2倒影、鏡面207 
7.4.3旋轉208 
7.4.4位移208 
7.5圖片顏色處理——打造自己的美圖
秀秀209 
7.5. 1顏色過濾器
ColorMatrixColorFilter 209 
7.5.2實現圖片美化功能210 
7.6案例——隨手塗鴉214 
7.7加載網絡圖片217 
7.7.1網絡圖片的緩存策略217 
7.7.2圖片加載庫Picasso的使用218 
總結219 
第8章複雜控件的使用220 
8.1 ListView 220 
8.1.1初識ListView 221 
8.1.2定制ListView條目的界面222 
8.1.3優化ListView 225 
8.1.4 ListView的點 事件226 
8.1.5 ListView常用的屬性228 
8.2 GridView 229 
8.3 RecyclerView 231 
8.3.1初識RecyclerView 231 
8.3.2使用RecyclerView 232 
8.3.3不同的佈局排列方式234 
8.3.4 RecyclerView添加點擊
事件236 
8.3.5 RecyclerView添加刪除
數據237 
8.3.6下拉刷新
SwipeRefreshLayout 237 
8.4 CardView 239 
8.5 ViewPager 241 
8.6 BottomNavigationView(底部
導航) 243 
8.7 TabLayout 246 
8.7.1 TabLayout使用246 
8.7.2 TabLayout自定義條目
樣式249 
總結250 
第9章探索Fragment 251 
9.1使用Fragment 252 
9.1.1 Fragment的生命週期252 
9.1.2創建Fragment 252 
9.1.3向Activity添加Fragment 254 
9.1.4管理片段256 
9.1.5 Fragment的向下兼容257 
9.2 FragmentTabHost實現底部標籤257 
9.3 ViewPager和Fragment結合259 
總結273 
第10章廣播接收者274 
10.1廣播簡介274 
10.2實現一個BroadcastReceiver 275 
10.3發送自定義廣播279 
10.4桌面快捷方式283 
總結285 
第11章Service介紹286 
11.1服務的基本用法286 
11.1.1創建服務286 
11.1.2啟動和 止服務287 
11.1.3綁定服務289 
11.1.4服務的生命週期292 
11.2 IntentService 292 
11.3 Service和BroadCastReceiver結合
使用的案例(兼容Android 7.0) 294 
11.3.1 Android 7.0錯誤原因297 
11.3.2使用FileProvider 298 
總結300 
第12章動畫301 
12.1補間動畫(Tween Animation) 301 
12.2.1 AlphaAnimation(透明度
動畫) 302 
12.2.2 ScaleAnimation(縮放
動畫) 304 
12.2.3 TranslateAnimation(平移
動畫) 305 
12.2.4 RotateAnimation(旋轉
動畫) 306 
12.2逐幀動畫(Frame Animation) 308 
12.3屬性動畫310 
總結313 
第13章新特性314 
13.1 Android 7.0分屏開發314 
13.1.1如何分屏呢315 
13.1.2多窗口生命週期315 
13.1.3針對多窗口進行配置316 
13.1.4多窗口模式中運行應用
注意事項316 
13.1.5在多窗口模式中啟動新
Activity 317 
13.1.6支持拖放318 
13.2 Android 7.0快速設定318 
13.3約束佈局ConstraintLayout 321 
13.3.1 ConstraintLayout簡介321 
13.3.2添加約束佈局322 
13.3.3使用約束佈局322 
1 3.3.4添加約束323 
13.3.5使用自動連接和約束推斷325 
13.3.6快速對齊Align 326 
13.4使用Kotlin語言開發Android 326 
總結330 
第14章性能優化331 
14.1性能檢測331 
14.1.1檢測內存洩露331 
14.1 .2 LeakCanary 334 
14.1.3追踪內存分配335 
14.1.4查詢方法執行的時間335 
14.2過度繪製(OverDraw) 336 
14.2.1過度繪製概念336 
14.2.2追踪過度繪製336 
14.2.3去掉不合理背景337 
14.2 .4不合理的XML佈局對
繪製的影響338 
14.3避免ANR 338 
14.3.1 ANR分析339 
14.3.2 ANR解決方式341 
總結341 
第15章屏幕適配342 
15.1 Android屏幕適配出現的原因342 
15.2相關重要概念344 
15.2.1屏幕尺寸344 
15.2.2屏幕分辨率344 
15.2.3屏幕像素密度344 
15.2.4屏幕尺寸、分辨率、像素
密度三者關係344 
15.2.5 dip 345 
15.2.6 sp 345 
15.3尺寸適配解決方案346 
15.3.1 “佈局”適配346 
15.3.2尺寸(size)限定符347 
15.3.3最小寬度(Smallest-width)
限定符348 
15.3.4使用佈局別名349 
15 .3.5屏幕方向(Orientation)
限定符350 
15.3.6 “佈局組件”匹配352 
15.3.7 Layout_weight詳解352 
15.3.8 “圖片資源”匹配355 
15.3.9 .9的製作355 
15.3.10 “用戶界面流程”匹配357 
15.4屏幕密度適配359 
15.4.1 “佈局控件”適配359 
15.4.2百分比佈局360 
15.4.3約束佈局362 
總結362 
第16章自定義控件363 
16.1自定義控件簡介363 
16.2 View的生命週期364 
16.2.1構造函數365 
16.2.2 onAttachedToWindow 369 
16.2.3 onMeasure 370 
16.2.4 onLayout 372 
16.2.5 onDraw 372 
16.2.6 View更新373 
16.2.7動畫374 
總結374 
第17章JNI/NDK開發375 
17.1 NDK配置(最新的CMake 
方式) 375 
17.1.1下載376 
17.1.2創建項目376 
17.1.3運行項目378 
17.1.4手動添加native方法379 
總結380 
第18章開發一個真實的項目381 
18.1項目需求分析381 
18.2創建項目382 
18.3界面實現383 
18.3.1啟動界面383 
18.3.2引導頁面385 
18.3.3主界面388 
18.3.4列表界面390 
18.4請求網絡395 
18.5新聞列表和詳情400 

  1. 6完成整個項目409 
    總結412

作者介紹


於連林,CSDN博客專家,從事Android開發和教育多年,做過很多個項目,包括辦公類,O2O等類型,曾在培訓機構從事Android教育,有上千課時講課經驗,收到過許多好評。




相關書籍

Functional Programming: A PragPub Anthology: Exploring Clojure, Elixir, Haskell, Scala, and Swift

作者

2017-08-01

Android 5 變形金剛全面進化

作者 柯博文

2017-08-01

Android應用安全實戰:Frida協議分析

作者 李岳陽 卓斌

2017-08-01