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

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

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

定 價:¥99.00

作 者: 琿少
出版社: 電子工業(yè)出版社
叢編項:
標 簽: 暫缺

購買這本書可以去


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

內(nèi)容簡介

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

作者簡介

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

圖書目錄

目    錄
第1章  關于性能你需要知道的事 1
1.1  衡量應用程序性能優(yōu)劣的一些標準 1
1.1.1  代碼的執(zhí)行效率 2
1.1.2  內(nèi)存占用 4
1.1.3  CPU負擔與能耗 5
1.1.4  動畫流暢度 7
1.1.5  網(wǎng)絡緩存 8
1.1.6  應用程序啟動時間 9
1.1.7  應用程序包尺寸 9
1.2  Xcode斷點與靜態(tài)分析工具 10
1.2.1  添加自定義斷點 10
1.2.2  為自定義斷點添加行為 11
1.2.3  添加全局類型的斷點 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)絡連接檢查工具 23
1.3.8  自定義Instruments工具模板 23
1.4  使用LLDB調(diào)試工具 25
1.4.1  使用expression指令進行動態(tài)代碼執(zhí)行 25
1.4.2  使用frame指令查看代碼幀信息 27
1.4.3  使用thread相關指令操作線程 29
1.4.4  其他LLDB常用指令 33
1.5  日志與埋點 34
1.5.1  異常分析 35
1.5.2  使用Bugly異常捕獲工具 41
1.5.3  應用程序埋點 43
1.5.4  使用Fabric分析工具 43
第2章  iOS內(nèi)存管理 45
2.1  iOS的內(nèi)存管理模型 45
2.1.1  關于內(nèi)存消耗與引用計數(shù) 45
2.1.2  MRC內(nèi)存管理 46
2.1.3  關于ARC 49
2.1.4  屬性修飾符 51
2.1.5  ARC與MRC進行混編 53
2.2  自動釋放內(nèi)存 54
2.2.1  關于autorelease方法 55
2.2.2  自動釋放池 57
2.2.3  系統(tǒng)維護的自動釋放池 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  關于“僵尸”對象 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  擴展:關于id與void* 74
2.6.1  關于id類型 74
2.6.2  關于void與void* 75
2.6.3  解決最初的問題 76
第3章  應用程序網(wǎng)絡與能耗優(yōu)化 77
3.1  深入iOS網(wǎng)絡開發(fā)技術(shù) 77
3.1.1  初識NSURLSession 79
3.1.2  NSURLConnection的簡單應用 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)絡診斷庫――LDNetDiagnoService_IOS 92
3.2  iOS網(wǎng)絡開發(fā)及優(yōu)化秘技 96
3.2.1  使用Charles抓包工具 96
3.2.2  使用Charles進行HTTPS抓包 100
3.2.3  使用Charles進行網(wǎng)絡環(huán)境模擬 102
3.2.4  使用Charles添加請求斷點 104
3.2.5  使用Charles進行數(shù)據(jù)模擬 106
3.2.6  Charles的請求重寫功能 108
3.2.7  使用Mock.js搭建本地數(shù)據(jù)模擬服務 110
3.2.8  學習使用JSONModel庫 116
3.2.9  屬性自動生成工具 121
3.3  定位與地圖 130
3.3.1  使用定位服務 130
3.3.2  原生地圖開發(fā) 133
3.3.3  添加大頭針與自定義標注 136
3.3.4  添加地圖覆蓋物 138
3.3.5  檢索附近興趣點和導航服務 140
3.4  定時器應用 146
3.4.1  NSTimer的簡單應用 146
3.4.2  關于RunLoop的一些探究 148
3.4.3  中心化管理NSTimer定時器 149
3.4.4  CADisplayLink類的應用 153
3.4.5  使用GCD方式的定時器 154
第4章  從應用程序啟動說起 156
4.1  應用程序的啟動原理 156
4.1.1  深入UIApplication類 156
4.1.2  UIApplication相關類別介紹 159
4.1.3  關于UIApplicationDelegate 162
4.2  本地通知與遠程推送 166
4.2.1  使用本地推送 166
4.2.2  遠程推送基礎 169
4.2.3  深入理解UserNotification框架 174
4.3  PushKit框架與CallKit框架 189
4.3.1  VoIP與PushKit 190
4.3.2  學習使用CallKit框架 192
4.3.3  來電攔截與號碼識別 199
第5章  深入iOS視圖與動畫 204
5.1  關于視圖控制器 204
5.1.1  UIViewController的生命周期 204
5.1.2  從StoryBoard加載UIViewController對象的傳值陷阱 207
5.1.3  關于UIViewController的切換 209
5.2  視圖控制器的轉(zhuǎn)場動畫 210
5.2.1  UIViewController的模態(tài)跳轉(zhuǎn)轉(zhuǎn)場 211
5.2.2  導航轉(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  關于高度不定的列表分區(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模型的應用 259
5.4.6  繪制梯度漸變視圖 263
5.4.7  進行圖像處理 268
5.4.8  關于層聚合 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進行線程管理 293
6.1.1  NSThread中常用類方法 293
6.1.2  NSThread成員方法和屬性的應用 295
6.1.3  隱式地使用NSThread進行多線程編程 296
6.2  NSOperation與NSOperationQueue的應用 296
6.2.1  關于Operation基類的解析 296
6.2.2  NSBlockOperation類的應用 297
6.2.3  NSInvocationOperation類的應用 299
6.2.4  操作之間的依賴關系 300
6.2.5  NSOperationQueue操作隊列的應用 301
6.3  學習使用GCD 303
6.3.1  GCD的調(diào)度機制 303
6.3.2  添加任務到調(diào)度隊列中 304
6.3.3  使用隊列組 305
6.3.4  GCD對循環(huán)任務的處理 308
6.3.5  GCD中的消息與信號 309
6.3.6  隊列的掛起與開啟 310
6.3.7  使用GCD處理延時任務 310
6.3.8  數(shù)據(jù)存取的線程安全問題 311
6.3.9  GCD模式的單例 313
6.3.10  關于GCD中的內(nèi)存管理 314
第7章  iOS運行時技術(shù) 315
7.1  動態(tài)的Objective-C語言 315
7.1.1  窺探消息轉(zhuǎn)發(fā)機制 316
7.1.2  消息傳遞與繼承鏈 318
7.1.3  拯救未知消息的三根救命稻草 320
7.1.4  你真的需要救命稻草嗎 324
7.1.5  發(fā)送消息相關的幾個函數(shù) 328
7.2  運行時方法解析 331
7.2.1  與運行時相關的類操作函數(shù) 332
7.2.2  與運行時相關的實例對象屬性操作函數(shù) 334
7.2.3  與運行時相關的實例對象方法操作函數(shù) 337
7.2.4  與運行時相關的協(xié)議操作函數(shù) 340
7.3  運行時特性的基本應用 341
7.3.1  操作變量的巧妙方法 341
7.3.2  操作方法的巧妙方法 345
7.4  使用運行時動態(tài)修改UILabel的默認字體 348
7.4.1  使用框架統(tǒng)一處理 348
7.4.2  使用運行時函數(shù)替換UILabel的初始化方法 348
7.5  設置可自動歸檔的數(shù)據(jù)模型基類 352
第8章  JavaScript與Native交互技術(shù)的應用 354
8.1  JavaScriptCore框架詳解 354
8.1.1  JavaScriptCore框架中的幾個核心類 355
8.1.2  在Native中運行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復雜對象的映射 365
8.1.7  C語言風格的API 366
8.1.8  設計Hybird App框架 371
8.2  WebKit框架的應用 377
8.2.1  WebKit框架概覽 377
8.2.2  使用WKWebViewConfiguration對WebView進行配置 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擴展開發(fā) 390
9.1  Today擴展的應用 390
9.1.1  創(chuàng)建Today擴展程序 391
9.1.2  Today擴展與宿主應用程序進行數(shù)據(jù)交互 393
9.2  分享擴展的應用 396
9.3  照片編輯擴展 399
9.4  自定義鍵盤擴展 400
9.4.1  了解UIInputViewController類 400
9.4.2  創(chuàng)建自定義的數(shù)字輸入鍵盤 401
9.5  iMessage擴展的應用 404
9.5.1  開發(fā)獨立的表情包 404
9.5.2  開發(fā)寄宿于宿主應用程序的表情包擴展 406
9.5.3  開發(fā)iMessage App 407
9.5.4  對開發(fā)iMessage App的幾點建議 418

本目錄推薦

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