-- 會員 / 註冊 --  
 帳號:
 密碼:
  | 註冊 | 忘記密碼
3/26 新書到! 3/19 新書到! 3/14 新書到! 12/12 新書到!
購書流程Q & A站務留言版客服信箱
3ds MaxMayaRhinoAfter EffectsSketchUpZBrushPainterUnity
PhotoShopAutoCadMasterCamSolidWorksCreoUGRevitNuke
C#CC++Java遊戲程式Linux嵌入式PLCFPGAMatlab
駭客資料庫搜索引擎影像處理FluentVR+ARANSYS深度學習
單晶片AVROpenGLArduinoRaspberry Pi電路設計CadenceProtel
HadoopPythonStm32CortexLabview手機程式AndroidiPhone
可查書名,作者,ISBN,3dwoo書號
詳細書籍分類

iOS性能優化實戰

( 簡體 字)
作者:琿少類別:1. -> 程式設計 -> 手機程式 -> iPhone
譯者:
出版社:電子工業出版社iOS性能優化實戰 3dWoo書號: 51081
詢問書籍請說出此書號!

缺書
NT售價: 495

出版日:5/1/2019
頁數:432
光碟數:0
站長推薦:
印刷:黑白印刷語系: ( 簡體 版 )
加入購物車 加到我的最愛
(請先登入會員)
ISBN:9787121361524
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證)
作者序:

譯者序:

前言:

首先感謝你購買本書作為提高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程序工作原理的工程師
內容簡介:

所謂性能,無非是一種指標,在軟件開發中,性能指標往往會關注兩個方面:效率和消耗。效率主要是指代碼的執行效率,動畫的流暢度,應用的冷啟動時間和熱啟動時間,網絡通訊的阻塞時間等等。消耗只要是指內存的消耗,有沒有內存泄露,CPU的占用率,耗電與應用程序包尺寸等。本書主要討論在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 JavaScriptCore框架詳解 354
8.1.1 JavaScriptCore框架中的幾個核心類 355
8.1.2 在Native中運行JavaScript腳本代碼 356
8.1.3 在JavaScript腳本中調用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協議中的方法解析 385
8.2.6 WKUIDelegate協議中的方法解析 388
第9章 iOS擴展開發 390
9.1 Today擴展的應用 390
9.1.1 創建Today擴展程序 391
9.1.2 Today擴展與宿主應用程序進行數據交互 393
9.2 分享擴展的應用 396
9.3 照片編輯擴展 399
9.4 自定義鍵盤擴展 400
9.4.1 了解UIInputViewController類 400
9.4.2 創建自定義的數字輸入鍵盤 401
9.5 iMessage擴展的應用 404
9.5.1 開發獨立的表情包 404
9.5.2 開發寄宿于宿主應用程序的表情包擴展 406
9.5.3 開發iMessage App 407
9.5.4 對開發iMessage App的幾點建議 418
序: