<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                # 第十二章 運行與調試 在上一篇文章中,我們了解了如何將硬件與虛擬設備同Eclipse進行對接。而在今天的指南里,我們將探索如何通過Eclipse在物理設備及Android虛擬設備(簡稱AVD)上進行應用程序運行與調試。 首先需要強調一點:我們在之前文章中創建出的應用程序暫時還沒什么實際用處,但我們可以通過它來體驗應用的運行流程,并以此為基礎介紹一些非常重要的Eclipse ADT實用程序。隨著大家開發水平的提高,未來的新應用必然會變得更先進也更復雜,到那時我們現在所介紹的調試工作將扮演極為重要的角色。在完成了今天的指南后,大家可能希望花點時間對自己創建的應用作出調整,而后嘗試將其運行在物理或者虛擬設備上。掌握了這種方法,大家就可以在開發過程中定期將應用程序半成品運行在設備之上,從而實現邊開發邊調試的理想效果。 ### 1. 運行 **第一步** 當我們在虛擬或者物理設備上編譯并運行自己的Android應用時,Eclipse會處理大部分必要的細節工作。Eclipse以及ADT會為我們的應用創建一個APK文件,同時將其安裝在我們所使用的設備上。APK文件也就是用戶們從Google Play商店中所下載的應用文件格式。不過大家還需要進行額外一些步驟來進行應用程序的發布,這些內容我們將在之后的教程中一一說明。總之,Eclipse會首先建立一個用于調試的APK文件,我們可以通過這套IDE將其直接運行在設備上。 相信大家已經通過上一篇指南文章了解了如何利用相關技術啟動自己的AVD或者將硬件設備與計算機相連。我們將讓應用程序運行在接入的設備之上。無論是虛擬還是物理設備,都必須滿足我們在應用程序清單當中所指定的最低API級別,否則將無法正常運行應用對象。 **第二步** 現在我們可以首先為自己的應用程序創建一套運行配置方案。在Eclipse當中,選擇“運行”而后選擇“運行配置”。在運行配置窗口左側,大家將看到可以運行的應用程序類型清單。在其中選擇“Android應用程序”然后點擊上方的新建按鈕。 ![12.1android_app_run_config](https://box.kancloud.cn/2015-09-11_55f281e4b7370.png) 在打開的新配置項目當中,在名稱欄內輸入一個名稱以替代現有文本。請大家選擇一個清晰的名稱,讓自己能夠明確區分不同應用程序。現在點擊“瀏覽”按鈕,在其中選擇自己的應用程序項目,而后點擊“OK”。 ![12.2select_app](https://box.kancloud.cn/2015-09-11_55f281e4caabf.png) 點擊“目標”選項卡。大家可以讓Eclipse自動選擇要啟動應用程序的設備,也可以將其設置為每次運行應用程序時都提醒用戶手動選擇。這套選項只適用于同時有多種設備接入Eclipse的情況,例如一臺硬件設備與一套AVD。 ![12.3target_tab](https://box.kancloud.cn/2015-09-11_55f281e4d5827.png) 請注意,我們的應用程序現在已經被列舉在運行配置清單的Android應用程序當中。當一切準備就緒之后,大家可以從這里進行應用程序啟動——相信在未來的實際工作中,各位的工作區內還將包含更多應用。 點擊“運行”。如果大家在配置中設定了每次運行前提示用戶選擇一種設備,那么Eclipse這時就將提供對應選項。選擇當前要使用的物理或者虛擬設備。如果我們沒有接入設備或者運行AVD,但又在設定中要求Eclipse自動選擇設備,則系統會啟動一套適用于當前情況的AVD。大家也可以通過Eclipse工具欄中的“運行”按鈕來啟動上一次應用程序所使用的運行環境,這就省去了每一次打開運行配置窗口的麻煩。 > 提示:在應用程序運行配置的“目標”選項卡中,如果大家向下滾動則會看到多種模擬器選項,其中還包含命令行區域。大家可以點擊此處查看使用AVD過程中可能需要的各種命令行參數。 **第三步** 當我們運行自己的應用程序時,Eclipse會將APK復制到目標設備當中、進行安裝并啟動主Activity。 ![12.4app_launched](https://box.kancloud.cn/2015-09-11_55f281e4e91be.png) 大家應該還記得我們當初在按鈕上建立的這套基本用戶交互機制;點擊按鈕來改變顯示文本內容(在AVD當中使用鼠標模擬點擊操作,在實機上則使用手指進行觸控)。 ![12.5avd_button_click](https://box.kancloud.cn/2015-09-11_55f281e5010bc.png) **第四步** 在大家開發自己的應用程序時,很可能需要重復將當前成果加以進行、編輯內容然后再次運行。在這種情況下,Log將成為我們使用頻率最高的主要工具之一。在Java文件當中,我們可以編寫輸出至LogCat的相關信息來幫助自己更順暢地完成開發與調試工作。在我們的主Activity類中,將以下實例變量添加到原有類內容之前: ~~~ private final String LOG_TAG = "MainActivity"; ~~~ 這是一條標記常量,我們通常利用它來編寫日志輸出信息;通過類名稱,我們可以更明確地看到當前日志信息來自哪個類。在onClick方法中,將以下代碼添加到按鈕文本設定部分之前: ~~~ Log.v(LOG_TAG, "button clicked"); ~~~ 大家需要將“android.util.Log”導入到自己的類當中。在向Log中寫入內容時,我們可以從多種方法中作出選擇,從而表達與目的相符的對應信息。在上述代碼中,我們用v來指代詳細(verbose)。大家還可以用d來指代調試信息(debug message)、i指代信息(information)、w指代警告(warning)并用e指代錯誤(error)。 現在保存我們的文件并通過“運行”按鈕再次運行應用程序。請大家確保自己已經在Eclipse當中打開了LogCat View。再次點擊設備或者AVD上的UI按鈕。現在向下滾動LogCat View直至我們找到對應的運行信息。 ![12.6messages_in_log](https://box.kancloud.cn/2015-09-11_55f281e5125d4.png) 正如大家所見,以上彩色信息反映每種情況下Log方法的實際運行情況。我們可以通過在文本框中輸入內容的形式搜索信息,這一點在顯示信息量較大的時候非常有用——例如使用硬件設備運行應用程序時。 ![12.7search_log](https://box.kancloud.cn/2015-09-11_55f281e51dcfd.png) > 提示:如果大家發現自己在使用LogCat View時Eclipse停止響應或者崩潰,則需要在“窗口”——>“偏好設置”——>“Android”——>“LogCat”中設置LogCat信息的最大緩沖數量。如果這樣的調整仍然無法解決問題,請進一步降低緩沖數量并再試一次。 ### 2. 測試 我們在今天的文章當中不會討論太多測試方面的細節,因為這是一項非常重要也相當重復的工作、將成為大家未來Android學習過程當中的主要課題之一。在準備好進行測試之后,大家可以在Eclipse當中創建一個測試專用項目。Android開發者指南當中專門提供了“[測試基本原理](http://developer.android.com/tools/testing/testing_android.html)”與“[Activity測試指南](http://developer.android.com/tools/testing/activity_test.html)”兩個章節,從深層次講解了Android平臺上的測試知識。測試工具全部以JUnit為基礎,作為匯聚專有Android測試資源并加以擴展的解決方案,JUnit專為Android開發工作而生。如果大家已經熟悉了對Java代碼的測試工作,那么應該會更清楚自己需要在Android應用測試當中做些什么。 ### 3. 調試 **第一步** 盡管大家并不需要馬上對應用程序進行調試,不過我還是要通過今天的文章為大家初步介紹DDMS(即Dalvik調試監控服務器)以及這些工具能為開發流程帶來的實際價值。我們已經了解了Eclipse當中的一種調試View,也就是LogCat;不過另外幾種同樣值得大家認真掌握。 在運行在或者連接著Eclipse的虛擬設備或者硬件設備上,我們可以通過選擇“窗口”、“打開視圖”、“DDMS”的方式開啟DDMS視圖。在這里,大家能夠利用Eclipse右上方的按鈕在DDMS視圖與Java視圖之間進行切換。 **第二步** 讓我們就DDMS視圖展開探討。上一次我們已經了解過設備視圖(其中會顯示一份清單,羅列所有已經連接的設備外加運行其中的進程鏈接)。選擇一項進程后即可訪問設備視圖中的各項功能。下面通過名稱從列表中找出我們自己的按鈕。 ![12.8devices_app_process](https://box.kancloud.cn/2015-09-11_55f281e52a354.png) 在選中對應進程之后,點擊設備視圖中的“Update Threads”按鈕以開啟Threads View。 ![12.9thread_updates](https://box.kancloud.cn/2015-09-11_55f281e53a99a.png) “Update Heap”按鈕對于Heap View也將起到同樣的作用。在未來的開發工作當中,大家還會根據需要了解其它視圖的作用,其中一些只與執行特定任務類型的應用程序相關。不過現在我們不考慮太多,只把時間用在DDMS當中值得關注的內容身上。 模擬器視圖提供針對任何運行中虛擬設備實例的控制選項,大家可以在設備列表中選擇一套AVD并打開其模擬器控制選項卡來查看相關內容。另外,需要注意的是我們可以在設備視圖當中停止當前運行著的進程、調試運行中進程并強制執行垃圾回收。在我們結束對DDMS的說明之前,應用程序一定正運行在硬件或者虛擬設備之上,請在設備視圖中選擇對應設備并點擊“截圖”按鈕。 ![12.10screen_capture_button](https://box.kancloud.cn/2015-09-11_55f281e54b833.png) 這時新窗口中將出現當前設備顯示內容的截圖結果。在這里,大家可以保存或者復制該圖片,并將其用于應用程序商店中的宣傳資料當中。受篇幅所限,我們對調試工作的說明比較簡略,大家可以[點擊此處](http://developer.android.com/tools/debugging/index.html)查看Android開發者指南當中關于Android應用程序調試的內容。 ![12.11screen_capture_window](https://box.kancloud.cn/2015-09-11_55f281e55cd4c.png) ### 總結 當我們開始著手創建Android應用程序時,需要關注的重點在于運行應用程序并將信息記錄到控制臺以監控應用的運行活動。不過隨著項目復雜程度的提升,大家往往會在應用程序發布前的準備階段用到大量Eclipse當中不可或缺的Android調試與測試工具。在本系列教程的下一篇文章中,我們將介紹Android Activity生命周期,只有掌握了這方面知識、大家才能真正開始創建功能全面的應用程序。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看