標籤:des http io ar os 使用 sp for strong
原文轉自:http://www.cocoachina.com/ios/20141128/10358.html
本文由CocoaChina翻譯群組成員Creolophus(github首頁)翻譯自蘋果官方文檔Xcode Overview:Debug Your App,校對唧唧歪歪,敬請勘誤。
當您點擊了工作區工具條中的運行按鈕並且你的應用編譯成功,那麼Xcode運行您的應用程式並開啟調試功能。您可以使用圖形化的工具直接在源碼編輯器中調試應用,比如使用Data tips、快速查看(Quick look)來查看變數值。
調試地區(Debug area)和調試導航器(Debug navigator)可以讓您檢查運行中的app的狀態,並控制其執行。
為了建立一個高品質的應用,要儘可能減少應用對使用者系統的影響。使用調試導航器(Debug navigator)中的調試儀錶(Debug gauges)深入瞭解你應用的資源消耗,當你發現問題時,請使用Instruments確認並分析應用的效能。
如果你正在開發一款iOS應用,在設計和早期測試階段可以使用iOS模擬器找出存在的問題。
你可以配置Xcode來協助你專註於調試任務。舉例來說,當代碼運行到一個斷點時,你可以讓Xcode自動播放一次警告聲,並建立一個命名為的Debug標籤的視窗,Xcode可在此展示調試區(Debug area)、調試導航器(Debug navigator)以及斷點處的代碼。
控制執行並觀察狀態資訊(Control Execution and View State Information)
Xcode允許您一行一行單步調試你的代碼來查看特定執行階段中應用的狀態。使用調試地區(Debug area)來控制碼的執行,觀察程式的變數和寄存器,觀察控制台的輸出並且與調試器互動。 你也可以使用調試區導航渲染幀的OpenGL調用,並查看特定調用的渲染狀態資訊。
通過點擊工作區視窗工具條上視圖選取器的中間按鈕()來展示調試地區(Debug area)。
點擊調試區工具列中的暫停按鈕(在暫停和繼續之間切換)來暫停app的執行。想要設定斷點,只需要開啟原始碼檔案,並且點擊你想暫停執行代碼所在行的邊列(Gutter)。邊列中一個藍色箭頭()會標識斷點。如果想瞭解更多關於斷點的資訊,包括如何設定斷點行為和不同類型的斷點,請查看Breakpoint Navigator Help.
暫停應用後,當前正在執行的程式碼會用綠色高亮。你可以使用調試區頂部條上的Step Over()、Step Into()、Step Out()三個按鈕來單步調試代碼的執行。Step Over會執行當前行的程式碼,包括任何的方法。如果當前的程式碼調用了一個方法,step into會開始執行當前程式碼,然後在到達被呼叫者法的第一行時停止。Step Out則執行當前方法或函數的剩餘部分。
當暫停執行時,調試導航器會開啟並展示一個堆棧追蹤。選中其中一項,在編輯區和調試區中查看該項目的資訊。當你調試時,可展開或收合線程來顯示或隱藏堆棧架構。
將指標懸停在原始碼編輯器中的任何變數上,可查看一個顯示著變數值的資料提示。點擊變數旁邊的Inspector表徵圖(),將對象的Objective-C描述列印至調試區控制台,並在一個額外彈出視圖中展示。
點擊Quick Look表徵圖()觀察變數內容的圖形化展示。你可以針對自己的對象實現自訂的快Quick Look。詳細資料請查看Quick Look for Custom Types in the Xcode Debugger.
當你在裝置上構建並運行一個OpenGl ES應用時,調試區工具列會包含一個Frame Capture 按鈕( )。點擊該按鈕來捕捉一個frame。你可以使用OpenGL ES幀捕獲做以下事情:
· 檢查OpenGL ES 狀態資訊
· 內省OpenGL ES 對象,比如視圖紋理和著色器。
· 在每次繪製調用之前單步調試狀態調用,然後觀察每個調用的變化。
· 單步調試繪製調用以準確查看如何構建映像。
· 在輔助編輯器中查看每個繪製調用使用哪些對象。
· 編輯著色器以查看應用程式上的效果。
以下展示已渲染幀的組件。左側調試導航器顯示部分渲染樹,主調試器顯示已渲染幀的顏色和深度資源,並展示其他一些圖片資源。
想要瞭解更多關於調試OpenGL ES的資訊,請查看Debug Navigator Help 和 Debug Area Help.
在運行時檢查你應用的視圖層次(Examine Your App’s View Hierarchy at Runtime)
點擊在調試區頂欄的Debug View Hierarchy按鈕()來檢查當前暫停應用的3D渲染視圖分層。你可以:
· 通過在畫布中點擊並拖動來旋轉該透視圖。
· 使用左下方的滑動條增大或減小各視圖層之間的間距。
· 使用右下方雙滑塊的滑動條改變可見視圖的範圍。滑動左滑塊來改變最底層可見的視圖,滑動右滑塊來改變最上層可見的視圖
· 按下展示剪下內容按鈕()來顯示選中視圖中被裁減的內容。
· 按下展示約束按鈕()來顯示選中視圖的任何Auto Layout約束。
· 使用放大(+)按鈕和縮小(—)按鈕來增加或減少透視圖的放大倍數。
想要瞭解更多調試視圖的資訊,請查看Debugging Views
檢查應用對系統資源的影響(Examine Your App’s Impact on System Resources)
調試導航器(Debug navigator)提供了能對應用程式效能進行深度分析的儀錶。比如CPU儀錶計量器展現了app的CPU的使用率,方便你偵測異常情況。根據應用的目的和功能,儀錶計量器可以告訴你應用對記憶體、iCloud、OpenGL ES、電量以及CPU的影響。
如果想要看詳細的報告,可單擊調試區的某個儀錶計量器。如果你想要對你應用做更深層次的分析,請點擊Profile In Instruments按鈕。
在問題區,電量報告會提供一個初步的診斷來告知你什麼可能在嚴重損耗你的用電量。
想要更多協助,請查看Using Debug Gauges
測量應用程式的效能(Measure Your App’s Performance)
Xcode中的Instruments程式會從在啟動並執行應用中收集資料,並且展現在一個圖形化的時間軸上。使用Instruments,你可以收集效能方面的資料,比如你應用的記憶體使用量,磁碟活動情況,網路活動情況和圖形操作。通過把資料放在一起查看,你可以分析你應用表現的各個方面來找出潛在提升效能的可能。你也可以自動化測試iOS應用的介面元素。
在Xcode幾種方法來開啟Instruments,比如:
· 從儀錶計量器詳細報告介面點擊Profile in Instruments 按鈕
· 選擇Product>Profile
· 在一個scheme中的Profile項中指定一個Instrument
Instruments程式使用名為instruments的單獨的資料擷取模組,來隨時收集某個進程的資料。Instruments程式有一個模板庫,每個模板包括了為擷取相關資訊的一系列instruments。
想要瞭解更多資訊,請查看Performance Overview和Instruments User Guide
在iOS模擬器上進行早期測試(Perform Early Testing in iOS Simulator)
iOS模擬器可幫你在設計和早期測試階段找到主要的問題。舉例來說,iOS模擬器的Debug菜單提供的多款工具可為你提供協助:
· 減速一個動畫來找出問題。
· 觸發iCloud同步。
· 辨認出那些可能會有損你應用效能的混合檢視層。
· 辨別出源像素沒有對準到目標像素的圖片
· 查看哪些內容在螢幕外渲染渲染。
· 類比不同的地點。
在iOS模擬器的任何類比環境下,主畫面都會提供開啟iOS原生應用(比如Safari,Contacts,Maps和Passbook)的功能。你可以在iOS模擬器中初步的測試你的應用與這些應用的互動。舉例來說,如果你正在測試一款遊戲,可以使用iOS模擬器來測試這款遊戲是否正確調用Game Center。
iOS模擬器中的協助工具功能檢視器(Accessibility Inspector)可協助你不受個人制約的測試你應用的可用性。Accessibility Inspector顯示你應用可訪問的每個元素的資訊並且可以類比VoiceOver與這些元素互動。如果想開啟Accessibility Inspector,點擊iOS模擬器的主屏按鈕然後點擊設定>通用>協助工具功能。將Accessibility Inspector右側滑動按鈕開啟。
你可以在iOS模擬器通過改變語言來測試你應用的本地化。設定>通用>語言與地區>iPhone語言。
儘管你可以在iOS模擬器中測試你應用的準系統,但是作為一個測試平台,由於諸多原因,模擬器還有很多限制。比如:
· 因為iOS模擬器是在Mac上運行,並使用電腦的記憶體,這遠大於真機上的記憶體。
· iOS模擬器使用Mac的CPU運行而不是iOS真機的CPU。
· iOS模擬器並不運行真機上的所有線程。
· iOS模擬器無法類比像加速度計,陀螺儀,網路攝影機,或者近距離感應器之類的硬體特性。
開發應用時,請務必在你想要支援的所有iOS真機和iOS系統版本上運行和測試。
想要瞭解更多詳細資料,請查看iOS Simulator User Guide中的Testing and Debugging in iOS Simulator一節。
自訂你的調試工作流程(Customize Your Debugging Workflow)
通過Xcode Behaviors來偏好定製Xcode的行為。選擇Xcode> Behaviors,自訂在建立、運行和調試應用時Xcode該做的事。
比如,Xcode可以在你代碼在斷點暫停時顯示調試地區或者在建立應用失敗時,顯示問題導航器
下面中展示了當代碼暫停時,Xcode行為是怎麼自訂的下面有些自訂行為的例子。
· 每次暫停時播放一個提示音。
· 在工作區域表單中建立一個名為Debug的標籤來展示調試導航器。
· 在Debug標籤中同時展示變數視圖和控制台視圖。
· 在Debug標籤中隱藏Utilities地區。
當你設定了上面的行為後,當項目中的代碼碰到斷點時,Xcode在工作區視窗建立一個debug標籤,裡面顯示特定的內容。
你可以自訂Xcode的行為,這些自訂行為可以由菜單中的選項或者綁定的快速鍵觸發。選擇Xcode > Preferences, 選擇Behaviors偏好視窗,然後點擊底部的Add(+)按鈕。輸入新行為的自訂名稱然後按下Return。在右側複選框中勾選當你觸發這個行為時你想讓Xcode做的事。比如,建立一個名為Unit Testing的行為用來儲存你工程的快照並且運行你的單元測試。當你建立這個行為後,它會出現在Xcode> Behaviors菜單中。
想給自訂行為添加個快速鍵的話,選擇Xcode > Preferences然後點擊Key Bindings。在Key Bindings偏好視窗中,選擇Customized標籤找到你自訂的行為。在文字框中,鍵入快速鍵然後點擊文字框以外的地方完成操作。
想要瞭解更多斷點的類型和斷點的作用,查看Breakpoint Navigator Help
【轉】Xcode概覽:調試應用程式