TOP
0
0
【簡體曬書區】 單本79折,5本7折,活動好評延長至5/31,趕緊把握這一波!
iOS性能優化實戰(簡體書)
滿額折
iOS性能優化實戰(簡體書)
iOS性能優化實戰(簡體書)
iOS性能優化實戰(簡體書)
iOS性能優化實戰(簡體書)
iOS性能優化實戰(簡體書)
iOS性能優化實戰(簡體書)
iOS性能優化實戰(簡體書)
iOS性能優化實戰(簡體書)
iOS性能優化實戰(簡體書)
iOS性能優化實戰(簡體書)
iOS性能優化實戰(簡體書)
iOS性能優化實戰(簡體書)
iOS性能優化實戰(簡體書)
iOS性能優化實戰(簡體書)
iOS性能優化實戰(簡體書)
iOS性能優化實戰(簡體書)
iOS性能優化實戰(簡體書)
iOS性能優化實戰(簡體書)
iOS性能優化實戰(簡體書)
iOS性能優化實戰(簡體書)
iOS性能優化實戰(簡體書)
iOS性能優化實戰(簡體書)
iOS性能優化實戰(簡體書)
iOS性能優化實戰(簡體書)
iOS性能優化實戰(簡體書)
iOS性能優化實戰(簡體書)
iOS性能優化實戰(簡體書)
iOS性能優化實戰(簡體書)
iOS性能優化實戰(簡體書)

iOS性能優化實戰(簡體書)

人民幣定價:99 元
定  價:NT$ 594 元
優惠價:87517
領券後再享88折
海外經銷商無庫存,到貨日平均30天至45天
可得紅利積點:15 點
相關商品
商品簡介
目次

商品簡介

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

前 言
首先感謝你購買本書作為提高iOS開發技能的學習教程。作為一名最前沿的程序開發者,我非常理解當需要深入學習一門技術卻無從下手時的迷茫與急迫感。因此在編寫本書時,我尤其注意將重點、難點及開發過程中極易被忽視卻十分重要的點突出講解,希望能夠幫助你用最短的學習時間,得到最顯著的提高。
閱讀本書目錄,你會發現,本書不是一本基礎的iOS開發教程,如果你沒有絲毫的iOS開發基礎,那麼本書對你來說可能會有難度而且不易理解,如果真是這樣,我建議你先學習iOS基礎開發知識,再來閱讀本書,一定會受益匪淺。
學習一門編程語言、掌握一種程序開發技術會讓你從中獲得極大的樂趣。科技領域的高速發展使得企業和公司需要越來越多的編程技術人員,市場上的編程書籍琳琅滿目,其中的大多數側重於基礎入門與應用實戰,就iOS開發來說,如果你想深入地瞭解這門技術,那麼本書是非常好的選擇。
本書內容及體系結構
本書分為9章,內容規劃如下。
第1章介紹開發一款高性能的iOS應用需要關注的性能指標,並介紹了如何使用工具來監測和優化應用程序的性能。之前你可能只是發現某個界面會卡頓,在學習本章內容後你將可以找到具體是由哪一行代碼造成的卡頓。
第2章介紹iOS開發中的內存管理技術,如果你是iOS開發初學者,那麼你可能從未關心過內存管理的問題,但是隨著學習的深入,你需要清楚地瞭解內存管理的原理和需要注意的事項。在混合開發、底層框架開發中,內存管理更是重中之重。要成為一名卓越的iOS開發工程師,這是你必須邁出的一步。
第3章介紹網絡技術在iOS開發中的應用,並提供一些思路來解決網絡卡頓問題,提升用戶體驗。還會介紹一些常用的輔助工具,幫助你對網絡進行檢查,對當前網絡狀態進行快照或模擬操作。
第4章介紹應用程序的啟動流程及與啟動流程相關的一些技術點,如推送的應用、高級的VoIP推送和網絡電話功能的應用。
第5章深入介紹iOS視圖與動畫的相關內容,重點介紹UITableView組件的優化方法與思路,完整介紹動畫技術在iOS開發中的應用。
第6章系統地介紹iOS多線程開發技術的應用,包括NSThread、NSOperation及高級的GCD相關用法。
第7章介紹動態特性與運行時,這部分內容也是iOS程序開發的高級技巧,在很多情況下你可能都不需要使用到這些技術,但是學習它們可以幫助你更好地理解程序的運行原理,也可以幫助你一眼看出一些奇怪問題出現的核心原因。
第8章介紹JavaScript技術在iOS開發中的應用,主要介紹Native與WebView的交互方式以及高級的JavaScript線程應用。在學習本章之後,你就能夠很輕鬆地理解Hybird App混合開發的原理。
第9章是本書的擴展章節,主要介紹App Extension的相關應用及數據交互的方法,靈活地使用App Extension可以為你的應用程序添加有趣而實用的新功能。
希望本書可以幫助你達成自己的學習目標,下面的博客是我幾年來的編程生活積累的一些財富,裡面有關於iOS開發、Android開發、前/後端開發以及編程語言相關的400餘篇博客,如果需要,你可以挑選自己感興趣的內容閱讀:
https://my.oschina.net/u/2340880
你也可以在下面的網站找到我的一些教學資源:
https://edu.csdn.net/lecturer/course_list
我是一名知識傳播者,也是學習者,如果你在學習的過程中,遇到任何問題或者發現了本書的遺漏或錯誤之處,可以與我聯繫,我的QQ號碼是:316045346。當然,在出版前,我和編輯以及所有校驗和整理本書的老師都付出了很多汗水,儘量保證讓它盡善盡美地呈現在你的面前。
最後,感謝編輯在本書編寫過程中提出的寶貴意見和在修訂過程中的辛苦工作,感謝呂遠、練向、帥坤、東科以及其他同學和同事在生活和工作中給我的幫助和啟發,大家經常性的技術討論使我受益頗多。感謝其他所有為本書出版付出汗水的人們。如果本書可以給你帶來提高與幫助,那麼這一切都是值得的。
本書讀者對象
? 在職的iOS開發工程師
? 編程愛好者
? iOS開發初學者
? 關注iOS項目優化的工程師
? 需要深入學習iOS程序工作原理的工程師

目次

目 錄

第1章 關於性能你需要知道的事 1
1.1 衡量應用程序性能優劣的一些標準 1
1.1.1 代碼的執行效率 2
1.1.2 內存佔用 4
1.1.3 CPU負擔與能耗 5
1.1.4 動畫流暢度 7
1.1.5 網絡緩存 8
1.1.6 應用程序啟動時間 9
1.1.7 應用程序包尺寸 9
1.2 Xcode斷點與靜態分析工具 10
1.2.1 添加自定義斷點 10
1.2.2 為自定義斷點添加行為 11
1.2.3 添加全域類型的斷點 13
1.2.4 Xcode的靜態分析工具 14
1.3 Instruments:性能分析和測試工具 16
1.3.1 Activity Monitor:活動監視器 16
1.3.2 Allocations:內存跟蹤工具 17
1.3.3 CoreAnimation:核心動畫監測工具 19
1.3.4 Counters:儀錶計數器 20
1.3.5 Energy Log:能耗記錄器 21
1.3.6 Leaks:內存洩漏檢查工具 22
1.3.7 Network:網絡連接檢查工具 23
1.3.8 自定義Instruments工具模板 23
1.4 使用LLDB調試工具 25
1.4.1 使用expression指令進行動態代碼執行 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內存管理 45
2.1 iOS的內存管理模型 45
2.1.1 關於內存消耗與引用計數 45
2.1.2 MRC內存管理 46
2.1.3 關於ARC 49
2.1.4 屬性修飾符 51
2.1.5 ARC與MRC進行混編 53
2.2 自動釋放內存 54
2.2.1 關於autorelease方法 55
2.2.2 自動釋放池 57
2.2.3 系統維護的自動釋放池 59
2.3 杜絕內存洩漏 60
2.3.1 Block與循環引用 61
2.3.2 代理與循環引用 63
2.3.3 定時器引起的內存洩漏 65
2.4 關於“僵屍”對象 66
2.4.1 捕獲“僵屍”對象 66
2.4.2 處理“僵屍”對象 68
2.5 CoreFoundation框架中的內存管理 71
2.5.1 CoreFoundation中的引用計數 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章 應用程序網絡與能耗優化 77
3.1 深入iOS網絡開發技術 77
3.1.1 初識NSURLSession 79
3.1.2 NSURLConnection的簡單應用 83
3.1.3 請求對象NSURLRequest 85
3.1.4 請求回執對象NSURLResponse 87
3.1.5 數據緩存對象NSURLCache 88
3.1.6 本地用戶憑證對象NSHTTPCookie 90
3.1.7 使用第三方網絡診斷庫――LDNetDiagnoService_IOS 92
3.2 iOS網絡開發及優化秘技 96
3.2.1 使用Charles抓包工具 96
3.2.2 使用Charles進行HTTPS抓包 100
3.2.3 使用Charles進行網絡環境模擬 102
3.2.4 使用Charles添加請求斷點 104
3.2.5 使用Charles進行數據模擬 106
3.2.6 Charles的請求重寫功能 108
3.2.7 使用Mock.js搭建本地數據模擬服務 110
3.2.8 學習使用JSONModel庫 116
3.2.9 屬性自動生成工具 121
3.3 定位與地圖 130
3.3.1 使用定位服務 130
3.3.2 原生地圖開發 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 視圖控制器的轉場動畫 210
5.2.1 UIViewController的模態跳轉轉場 211
5.2.2 導航轉場動畫的自定義 218
5.2.3 UITabBarController的轉場動畫 221
5.3 列表視圖的性能優化 221
5.3.1 UITableView的構建原理 221
5.3.2 對UITableView可變行高的優化方式 224
5.3.3 關於高度不定的列表分區頭、尾視圖 228
5.4 iOS圖像繪製技術 230
5.4.1 CGPath路徑類 231
5.4.2 理解圖形上下文 238
5.4.3 顏色與色彩空間 252
5.4.4 圖形變換函數 258
5.4.5 Patterns模型的應用 259
5.4.6 繪製梯度漸變視圖 263
5.4.7 進行圖像處理 268
5.4.8 關於層聚合 272
5.5 iOS核心動畫技術 275
5.5.1 初識CoreAnimation 275
5.5.2 深入理解CALayer 277
5.5.3 幾種常用的CALayer子類 282
5.5.4 CoreAnimation動畫 287

第6章 iOS多線程開發技術 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的調度機制 303
6.3.2 添加任務到調度隊列中 304
6.3.3 使用隊列組 305
6.3.4 GCD對循環任務的處理 308
6.3.5 GCD中的消息與信號 309
6.3.6 隊列的掛起與開啟 310
6.3.7 使用GCD處理延時任務 310
6.3.8 數據存取的線程安全問題 311
6.3.9 GCD模式的單例 313
6.3.10 關於GCD中的內存管理 314
第7章 iOS運行時技術 315
7.1 動態的Objective-C語言 315
7.1.1 窺探消息轉發機制 316
7.1.2 消息傳遞與繼承鏈 318
7.1.3 拯救未知消息的三根救命稻草 320
7.1.4 你真的需要救命稻草嗎 324
7.1.5 發送消息相關的幾個函數 328
7.2 運行時方法解析 331
7.2.1 與運行時相關的類操作函數 332
7.2.2 與運行時相關的實例對象屬性操作函數 334
7.2.3 與運行時相關的實例對象方法操作函數 337
7.2.4 與運行時相關的協議操作函數 340
7.3 運行時特性的基本應用 341
7.3.1 操作變量的巧妙方法 341
7.3.2 操作方法的巧妙方法 345
7.4 使用運行時動態修改UILabel的默認字體 348
7.4.1 使用框架統一處理 348
7.4.2 使用運行時函數替換UILabel的初始化方法 348
7.5 設置可自動歸檔的數據模型基類 352
第8章 JavaScript與Native交互技術的應用 354
8.1 JavaScriptC

您曾經瀏覽過的商品

購物須知

大陸出版品因裝訂品質及貨運條件與台灣出版品落差甚大,除封面破損、內頁脫落等較嚴重的狀態,其餘商品將正常出貨。

特別提醒:部分書籍附贈之內容(如音頻mp3或影片dvd等)已無實體光碟提供,需以QR CODE 連結至當地網站註冊“並通過驗證程序”,方可下載使用。

無現貨庫存之簡體書,將向海外調貨:
海外有庫存之書籍,等候約45個工作天;
海外無庫存之書籍,平均作業時間約60個工作天,然不保證確定可調到貨,尚請見諒。

為了保護您的權益,「三民網路書店」提供會員七日商品鑑賞期(收到商品為起始日)。

若要辦理退貨,請在商品鑑賞期內寄回,且商品必須是全新狀態與完整包裝(商品、附件、發票、隨貨贈品等)否則恕不接受退貨。

優惠價:87 517
海外經銷商無庫存,到貨日平均30天至45天

暢銷榜

客服中心

收藏

會員專區