定 價(jià):¥99.00
作 者: | 琿少 |
出版社: | 電子工業(yè)出版社 |
叢編項(xiàng): | |
標(biāo) 簽: | 暫缺 |
ISBN: | 9787121361524 | 出版時(shí)間: | 2019-05-01 | 包裝: | 平裝 |
開本: | 16開 | 頁數(shù): | 432 | 字?jǐn)?shù): |
目 錄
第1章 關(guān)于性能你需要知道的事 1
1.1 衡量應(yīng)用程序性能優(yōu)劣的一些標(biāo)準(zhǔn) 1
1.1.1 代碼的執(zhí)行效率 2
1.1.2 內(nèi)存占用 4
1.1.3 CPU負(fù)擔(dān)與能耗 5
1.1.4 動(dòng)畫流暢度 7
1.1.5 網(wǎng)絡(luò)緩存 8
1.1.6 應(yīng)用程序啟動(dòng)時(shí)間 9
1.1.7 應(yīng)用程序包尺寸 9
1.2 Xcode斷點(diǎn)與靜態(tài)分析工具 10
1.2.1 添加自定義斷點(diǎn) 10
1.2.2 為自定義斷點(diǎn)添加行為 11
1.2.3 添加全局類型的斷點(diǎn) 13
1.2.4 Xcode的靜態(tài)分析工具 14
1.3 Instruments:性能分析和測(cè)試工具 16
1.3.1 Activity Monitor:活動(dòng)監(jiān)視器 16
1.3.2 Allocations:內(nèi)存跟蹤工具 17
1.3.3 CoreAnimation:核心動(dòng)畫監(jiān)測(cè)工具 19
1.3.4 Counters:儀表計(jì)數(shù)器 20
1.3.5 Energy Log:能耗記錄器 21
1.3.6 Leaks:內(nèi)存泄漏檢查工具 22
1.3.7 Network:網(wǎng)絡(luò)連接檢查工具 23
1.3.8 自定義Instruments工具模板 23
1.4 使用LLDB調(diào)試工具 25
1.4.1 使用expression指令進(jìn)行動(dòng)態(tài)代碼執(zhí)行 25
1.4.2 使用frame指令查看代碼幀信息 27
1.4.3 使用thread相關(guān)指令操作線程 29
1.4.4 其他LLDB常用指令 33
1.5 日志與埋點(diǎn) 34
1.5.1 異常分析 35
1.5.2 使用Bugly異常捕獲工具 41
1.5.3 應(yīng)用程序埋點(diǎn) 43
1.5.4 使用Fabric分析工具 43
第2章 iOS內(nèi)存管理 45
2.1 iOS的內(nèi)存管理模型 45
2.1.1 關(guān)于內(nèi)存消耗與引用計(jì)數(shù) 45
2.1.2 MRC內(nèi)存管理 46
2.1.3 關(guān)于ARC 49
2.1.4 屬性修飾符 51
2.1.5 ARC與MRC進(jìn)行混編 53
2.2 自動(dòng)釋放內(nèi)存 54
2.2.1 關(guān)于autorelease方法 55
2.2.2 自動(dòng)釋放池 57
2.2.3 系統(tǒng)維護(hù)的自動(dòng)釋放池 59
2.3 杜絕內(nèi)存泄漏 60
2.3.1 Block與循環(huán)引用 61
2.3.2 代理與循環(huán)引用 63
2.3.3 定時(shí)器引起的內(nèi)存泄漏 65
2.4 關(guān)于“僵尸”對(duì)象 66
2.4.1 捕獲“僵尸”對(duì)象 66
2.4.2 處理“僵尸”對(duì)象 68
2.5 CoreFoundation框架中的內(nèi)存管理 71
2.5.1 CoreFoundation中的引用計(jì)數(shù) 71
2.5.2 CoreFoundation框架與Foundation框架混用 72
2.6 擴(kuò)展:關(guān)于id與void* 74
2.6.1 關(guān)于id類型 74
2.6.2 關(guān)于void與void* 75
2.6.3 解決最初的問題 76
第3章 應(yīng)用程序網(wǎng)絡(luò)與能耗優(yōu)化 77
3.1 深入iOS網(wǎng)絡(luò)開發(fā)技術(shù) 77
3.1.1 初識(shí)NSURLSession 79
3.1.2 NSURLConnection的簡單應(yīng)用 83
3.1.3 請(qǐng)求對(duì)象NSURLRequest 85
3.1.4 請(qǐng)求回執(zhí)對(duì)象NSURLResponse 87
3.1.5 數(shù)據(jù)緩存對(duì)象NSURLCache 88
3.1.6 本地用戶憑證對(duì)象NSHTTPCookie 90
3.1.7 使用第三方網(wǎng)絡(luò)診斷庫――LDNetDiagnoService_IOS 92
3.2 iOS網(wǎng)絡(luò)開發(fā)及優(yōu)化秘技 96
3.2.1 使用Charles抓包工具 96
3.2.2 使用Charles進(jìn)行HTTPS抓包 100
3.2.3 使用Charles進(jìn)行網(wǎng)絡(luò)環(huán)境模擬 102
3.2.4 使用Charles添加請(qǐng)求斷點(diǎn) 104
3.2.5 使用Charles進(jìn)行數(shù)據(jù)模擬 106
3.2.6 Charles的請(qǐng)求重寫功能 108
3.2.7 使用Mock.js搭建本地?cái)?shù)據(jù)模擬服務(wù) 110
3.2.8 學(xué)習(xí)使用JSONModel庫 116
3.2.9 屬性自動(dòng)生成工具 121
3.3 定位與地圖 130
3.3.1 使用定位服務(wù) 130
3.3.2 原生地圖開發(fā) 133
3.3.3 添加大頭針與自定義標(biāo)注 136
3.3.4 添加地圖覆蓋物 138
3.3.5 檢索附近興趣點(diǎn)和導(dǎo)航服務(wù) 140
3.4 定時(shí)器應(yīng)用 146
3.4.1 NSTimer的簡單應(yīng)用 146
3.4.2 關(guān)于RunLoop的一些探究 148
3.4.3 中心化管理NSTimer定時(shí)器 149
3.4.4 CADisplayLink類的應(yīng)用 153
3.4.5 使用GCD方式的定時(shí)器 154
第4章 從應(yīng)用程序啟動(dòng)說起 156
4.1 應(yīng)用程序的啟動(dòng)原理 156
4.1.1 深入U(xiǎn)IApplication類 156
4.1.2 UIApplication相關(guān)類別介紹 159
4.1.3 關(guān)于UIApplicationDelegate 162
4.2 本地通知與遠(yuǎn)程推送 166
4.2.1 使用本地推送 166
4.2.2 遠(yuǎn)程推送基礎(chǔ) 169
4.2.3 深入理解UserNotification框架 174
4.3 PushKit框架與CallKit框架 189
4.3.1 VoIP與PushKit 190
4.3.2 學(xué)習(xí)使用CallKit框架 192
4.3.3 來電攔截與號(hào)碼識(shí)別 199
第5章 深入iOS視圖與動(dòng)畫 204
5.1 關(guān)于視圖控制器 204
5.1.1 UIViewController的生命周期 204
5.1.2 從StoryBoard加載UIViewController對(duì)象的傳值陷阱 207
5.1.3 關(guān)于UIViewController的切換 209
5.2 視圖控制器的轉(zhuǎn)場(chǎng)動(dòng)畫 210
5.2.1 UIViewController的模態(tài)跳轉(zhuǎn)轉(zhuǎn)場(chǎng) 211
5.2.2 導(dǎo)航轉(zhuǎn)場(chǎng)動(dòng)畫的自定義 218
5.2.3 UITabBarController的轉(zhuǎn)場(chǎng)動(dòng)畫 221
5.3 列表視圖的性能優(yōu)化 221
5.3.1 UITableView的構(gòu)建原理 221
5.3.2 對(duì)UITableView可變行高的優(yōu)化方式 224
5.3.3 關(guān)于高度不定的列表分區(qū)頭、尾視圖 228
5.4 iOS圖像繪制技術(shù) 230
5.4.1 CGPath路徑類 231
5.4.2 理解圖形上下文 238
5.4.3 顏色與色彩空間 252
5.4.4 圖形變換函數(shù) 258
5.4.5 Patterns模型的應(yīng)用 259
5.4.6 繪制梯度漸變視圖 263
5.4.7 進(jìn)行圖像處理 268
5.4.8 關(guān)于層聚合 272
5.5 iOS核心動(dòng)畫技術(shù) 275
5.5.1 初識(shí)CoreAnimation 275
5.5.2 深入理解CALayer 277
5.5.3 幾種常用的CALayer子類 282
5.5.4 CoreAnimation動(dòng)畫 287
第6章 iOS多線程開發(fā)技術(shù) 293
6.1 使用NSThread進(jìn)行線程管理 293
6.1.1 NSThread中常用類方法 293
6.1.2 NSThread成員方法和屬性的應(yīng)用 295
6.1.3 隱式地使用NSThread進(jìn)行多線程編程 296
6.2 NSOperation與NSOperationQueue的應(yīng)用 296
6.2.1 關(guān)于Operation基類的解析 296
6.2.2 NSBlockOperation類的應(yīng)用 297
6.2.3 NSInvocationOperation類的應(yīng)用 299
6.2.4 操作之間的依賴關(guān)系 300
6.2.5 NSOperationQueue操作隊(duì)列的應(yīng)用 301
6.3 學(xué)習(xí)使用GCD 303
6.3.1 GCD的調(diào)度機(jī)制 303
6.3.2 添加任務(wù)到調(diào)度隊(duì)列中 304
6.3.3 使用隊(duì)列組 305
6.3.4 GCD對(duì)循環(huán)任務(wù)的處理 308
6.3.5 GCD中的消息與信號(hào) 309
6.3.6 隊(duì)列的掛起與開啟 310
6.3.7 使用GCD處理延時(shí)任務(wù) 310
6.3.8 數(shù)據(jù)存取的線程安全問題 311
6.3.9 GCD模式的單例 313
6.3.10 關(guān)于GCD中的內(nèi)存管理 314
第7章 iOS運(yùn)行時(shí)技術(shù) 315
7.1 動(dòng)態(tài)的Objective-C語言 315
7.1.1 窺探消息轉(zhuǎn)發(fā)機(jī)制 316
7.1.2 消息傳遞與繼承鏈 318
7.1.3 拯救未知消息的三根救命稻草 320
7.1.4 你真的需要救命稻草嗎 324
7.1.5 發(fā)送消息相關(guān)的幾個(gè)函數(shù) 328
7.2 運(yùn)行時(shí)方法解析 331
7.2.1 與運(yùn)行時(shí)相關(guān)的類操作函數(shù) 332
7.2.2 與運(yùn)行時(shí)相關(guān)的實(shí)例對(duì)象屬性操作函數(shù) 334
7.2.3 與運(yùn)行時(shí)相關(guān)的實(shí)例對(duì)象方法操作函數(shù) 337
7.2.4 與運(yùn)行時(shí)相關(guān)的協(xié)議操作函數(shù) 340
7.3 運(yùn)行時(shí)特性的基本應(yīng)用 341
7.3.1 操作變量的巧妙方法 341
7.3.2 操作方法的巧妙方法 345
7.4 使用運(yùn)行時(shí)動(dòng)態(tài)修改UILabel的默認(rèn)字體 348
7.4.1 使用框架統(tǒng)一處理 348
7.4.2 使用運(yùn)行時(shí)函數(shù)替換UILabel的初始化方法 348
7.5 設(shè)置可自動(dòng)歸檔的數(shù)據(jù)模型基類 352
第8章 JavaScript與Native交互技術(shù)的應(yīng)用 354
8.1 JavaScriptCore框架詳解 354
8.1.1 JavaScriptCore框架中的幾個(gè)核心類 355
8.1.2 在Native中運(yùn)行JavaScript腳本代碼 356
8.1.3 在JavaScript腳本中調(diào)用Objective-C Native方法 358
8.1.4 深入JSContext類 359
8.1.5 深入JSValue類 360
8.1.6 Objective-C與JavaScript復(fù)雜對(duì)象的映射 365
8.1.7 C語言風(fēng)格的API 366
8.1.8 設(shè)計(jì)Hybird App框架 371
8.2 WebKit框架的應(yīng)用 377
8.2.1 WebKit框架概覽 377
8.2.2 使用WKWebViewConfiguration對(duì)WebView進(jìn)行配置 379
8.2.3 WKWebView中的屬性和方法解析 382
8.2.4 WKWebView中的JavaScript與Native交互 384
8.2.5 WKNavigationDelegate協(xié)議中的方法解析 385
8.2.6 WKUIDelegate協(xié)議中的方法解析 388
第9章 iOS擴(kuò)展開發(fā) 390
9.1 Today擴(kuò)展的應(yīng)用 390
9.1.1 創(chuàng)建Today擴(kuò)展程序 391
9.1.2 Today擴(kuò)展與宿主應(yīng)用程序進(jìn)行數(shù)據(jù)交互 393
9.2 分享擴(kuò)展的應(yīng)用 396
9.3 照片編輯擴(kuò)展 399
9.4 自定義鍵盤擴(kuò)展 400
9.4.1 了解UIInputViewController類 400
9.4.2 創(chuàng)建自定義的數(shù)字輸入鍵盤 401
9.5 iMessage擴(kuò)展的應(yīng)用 404
9.5.1 開發(fā)獨(dú)立的表情包 404
9.5.2 開發(fā)寄宿于宿主應(yīng)用程序的表情包擴(kuò)展 406
9.5.3 開發(fā)iMessage App 407
9.5.4 對(duì)開發(fā)iMessage App的幾點(diǎn)建議 418