注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁出版圖書科學(xué)技術(shù)工業(yè)技術(shù)建筑科學(xué)建筑結(jié)構(gòu)iOS性能優(yōu)化實(shí)戰(zhàn)

iOS性能優(yōu)化實(shí)戰(zhàn)

iOS性能優(yōu)化實(shí)戰(zhàn)

定 價:¥99.00

作 者: 琿少
出版社: 電子工業(yè)出版社
叢編項(xiàng):
標(biāo) 簽: 暫缺

購買這本書可以去


ISBN: 9787121361524 出版時間: 2019-05-01 包裝: 平裝
開本: 16開 頁數(shù): 432 字?jǐn)?shù):  

內(nèi)容簡介

  所謂性能,無非是一種指標(biāo),在軟件開發(fā)中,性能指標(biāo)往往會關(guān)注兩個方面:效率和消耗。效率主要是指代碼的執(zhí)行效率,動畫的流暢度,應(yīng)用的冷啟動時間和熱啟動時間,網(wǎng)絡(luò)通訊的阻塞時間等等。消耗只要是指內(nèi)存的消耗,有沒有內(nèi)存泄露,CPU的占用率,耗電與應(yīng)用程序包尺寸等。本書主要討論在iOS應(yīng)用性能優(yōu)化中,有哪些性能指標(biāo)可能是你需要考慮的。并將向你介紹如何使用工具來分析一款iOS應(yīng)用的性能問題。并且,也會向讀者介紹在iOS軟件開發(fā)過程的更多高級技巧。

作者簡介

  張益輝,TicTalk Foundation合伙人,博客筆名琿少,曾就職于唯品會,參與特賣項(xiàng)目《唯品會》、唯品會美妝項(xiàng)目《唯美》、唯品會返利項(xiàng)目《唯享客》。iOS開發(fā)、Swift 語言、Objective-C 語言、Java 與JavaScript語言、Android 等相關(guān)技術(shù)博客370余篇。任麥子學(xué)院iOS金牌講師,良師益友網(wǎng)、51CTO學(xué)院、CSND網(wǎng)絡(luò)學(xué)院簽約講師,開源中國高手問答欄目受邀技術(shù)專家,博客訪問量90多萬次。

圖書目錄

目    錄
第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  動畫流暢度 7
1.1.5  網(wǎng)絡(luò)緩存 8
1.1.6  應(yīng)用程序啟動時間 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:性能分析和測試工具 16
1.3.1  Activity Monitor:活動監(jiān)視器 16
1.3.2  Allocations:內(nèi)存跟蹤工具 17
1.3.3  CoreAnimation:核心動畫監(jiān)測工具 19
1.3.4  Counters:儀表計數(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)行動態(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)存消耗與引用計數(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  自動釋放內(nèi)存 54
2.2.1  關(guān)于autorelease方法 55
2.2.2  自動釋放池 57
2.2.3  系統(tǒng)維護(hù)的自動釋放池 59
2.3  杜絕內(nèi)存泄漏 60
2.3.1  Block與循環(huán)引用 61
2.3.2  代理與循環(huán)引用 63
2.3.3  定時器引起的內(nèi)存泄漏 65
2.4  關(guān)于“僵尸”對象 66
2.4.1  捕獲“僵尸”對象 66
2.4.2  處理“僵尸”對象 68
2.5  CoreFoundation框架中的內(nèi)存管理 71
2.5.1  CoreFoundation中的引用計數(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  初識NSURLSession 79
3.1.2  NSURLConnection的簡單應(yīng)用 83
3.1.3  請求對象NSURLRequest 85
3.1.4  請求回執(zhí)對象NSURLResponse 87
3.1.5  數(shù)據(jù)緩存對象NSURLCache 88
3.1.6  本地用戶憑證對象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添加請求斷點(diǎn) 104
3.2.5  使用Charles進(jìn)行數(shù)據(jù)模擬 106
3.2.6  Charles的請求重寫功能 108
3.2.7  使用Mock.js搭建本地數(shù)據(jù)模擬服務(wù) 110
3.2.8  學(xué)習(xí)使用JSONModel庫 116
3.2.9  屬性自動生成工具 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  定時器應(yīng)用 146
3.4.1  NSTimer的簡單應(yīng)用 146
3.4.2  關(guān)于RunLoop的一些探究 148
3.4.3  中心化管理NSTimer定時器 149
3.4.4  CADisplayLink類的應(yīng)用 153
3.4.5  使用GCD方式的定時器 154
第4章  從應(yīng)用程序啟動說起 156
4.1  應(yīng)用程序的啟動原理 156
4.1.1  深入UIApplication類 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  來電攔截與號碼識別 199
第5章  深入iOS視圖與動畫 204
5.1  關(guān)于視圖控制器 204
5.1.1  UIViewController的生命周期 204
5.1.2  從StoryBoard加載UIViewController對象的傳值陷阱 207
5.1.3  關(guān)于UIViewController的切換 209
5.2  視圖控制器的轉(zhuǎn)場動畫 210
5.2.1  UIViewController的模態(tài)跳轉(zhuǎn)轉(zhuǎn)場 211
5.2.2  導(dǎo)航轉(zhuǎn)場動畫的自定義 218
5.2.3  UITabBarController的轉(zhuǎn)場動畫 221
5.3  列表視圖的性能優(yōu)化 221
5.3.1  UITableView的構(gòu)建原理 221
5.3.2  對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核心動畫技術(shù) 275
5.5.1  初識CoreAnimation 275
5.5.2  深入理解CALayer 277
5.5.3  幾種常用的CALayer子類 282
5.5.4  CoreAnimation動畫 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操作隊列的應(yīng)用 301
6.3  學(xué)習(xí)使用GCD 303
6.3.1  GCD的調(diào)度機(jī)制 303
6.3.2  添加任務(wù)到調(diào)度隊列中 304
6.3.3  使用隊列組 305
6.3.4  GCD對循環(huán)任務(wù)的處理 308
6.3.5  GCD中的消息與信號 309
6.3.6  隊列的掛起與開啟 310
6.3.7  使用GCD處理延時任務(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ù) 315
7.1  動態(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)的幾個函數(shù) 328
7.2  運(yùn)行時方法解析 331
7.2.1  與運(yùn)行時相關(guān)的類操作函數(shù) 332
7.2.2  與運(yùn)行時相關(guān)的實(shí)例對象屬性操作函數(shù) 334
7.2.3  與運(yùn)行時相關(guān)的實(shí)例對象方法操作函數(shù) 337
7.2.4  與運(yùn)行時相關(guān)的協(xié)議操作函數(shù) 340
7.3  運(yùn)行時特性的基本應(yīng)用 341
7.3.1  操作變量的巧妙方法 341
7.3.2  操作方法的巧妙方法 345
7.4  使用運(yùn)行時動態(tài)修改UILabel的默認(rèn)字體 348
7.4.1  使用框架統(tǒng)一處理 348
7.4.2  使用運(yùn)行時函數(shù)替換UILabel的初始化方法 348
7.5  設(shè)置可自動歸檔的數(shù)據(jù)模型基類 352
第8章  JavaScript與Native交互技術(shù)的應(yīng)用 354
8.1  JavaScriptCore框架詳解 354
8.1.1  JavaScriptCore框架中的幾個核心類 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ù)雜對象的映射 365
8.1.7  C語言風(fēng)格的API 366
8.1.8  設(shè)計Hybird App框架 371
8.2  WebKit框架的應(yīng)用 377
8.2.1  WebKit框架概覽 377
8.2.2  使用WKWebViewConfiguration對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  對開發(fā)iMessage App的幾點(diǎn)建議 418

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) m.ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號