- Android開發:從0到1 (清華開發者書庫)
- 趙志榮
- 1219字
- 2020-11-28 16:13:35
4.1 使用DDMS幫助調試程序
DDMS(Dalvik Debug Monitor Service)是Android SDK提供的工具,啟動DDMS可以通過Android SDK安裝目錄 \tools\ddms.bat文件(macOS和Linux為ddms指令)實現;或通過Android Studio菜單選擇Tools→Android→Android Device Monitor來實現。
啟動后的DDMS如圖4-1所示,DDMS提供很多功能,其中最常用的功能是Device(設備列表)、File Explorer(文件瀏覽器)和LogCat(日志)。

圖4-1 DDMS界面
4.1.1 設備列表
Devices是設備列表窗口,這里可以查看所有模擬器或者運行的進程。在圖4-2中,有兩個模擬器運行,最左邊一列是Android進程名,它是按照應用程序的包命名的;中間一列Online是應用程序的進程號(PID);最右邊一列是應用程序端口號。

圖4-2 設備列表窗口
4.1.2 文件瀏覽器
File Explorer是文件瀏覽器,如圖4-3所示。Android是基于Linux操作系統的移動設備操作系統,因此它會有文件系統,Android的文件系統是在開發階段需要訪問的。通過File Explorer,可以查看Android模擬器(或設備)中的文件,并可以很方便地在Android模擬器(或設備)與計算機之間導入和導出文件。如果在初始DDMS界面(圖4-1所示)中沒有File Explorer,可以通過菜單peuice→File Explorer打開。

圖4-3 文件瀏覽器
4.1.3 LogCat
在軟件開發中,日志輸出是非常重要的調試手段。Android SDK平臺提供了一個LogCat顯示輸出的日志信息,圖4-4是DDMS中的LogCat。另外,Android Studio也提供了LogCat工具,在Android Studio中啟動工程后,可以看到如圖4-5所示的界面。

圖4-4 DDMS中LogCat

圖4-5 Android Studio中LogCat
作為優秀的日志管理工具,LogCat能夠分級輸出調試信息。根據輸出信息的“輕重緩急”和“嚴重程度”, LogCat提供了6個級別的日志輸出信息:
? Verbose。啰唆模式,最低級別的信息,不加過濾地輸出所有調試信息,包括VERBOSE、DEBUG、INFO、WARN、ERROR和ASSERT。程序中使用Log.v()輸出。
? Debug。調試模式,一些調試信息通過該模式輸出,輸出信息包括DEBUG、INFO、WARN、ERROR級別。程序中使用Log.d()輸出。
? Info。信息模式,輸出信息包括INFO、WARN、ERROR級別。程序中使用Log.i()輸出。
? Warn。警告模式,輸出信息包括WARN、ERROR級別。程序中使用Log.w()輸出。
? Error。錯誤模式,輸出信息包括ERROR級別。程序中使用Log.e()輸出。
? Assert。斷言模式,當程序中斷言失敗拋出異常,輸出日志信息。
由于LogCat窗口輸出的日志信息很多,還可以選擇日志級別過濾顯示日志信息,圖4-6是通過DDMS啟動的LogCat輸出的Info信息。

圖4-6 輸出Info信息
此外,還可以自定義標簽輸出。在Hello Android中添加日志輸出的代碼如下:
public class MainActivity extends AppCompatActivity{ private static String TAG ="HelloAndroid"; ① @Override protected void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); int sum = 0; for(int i = 0; i 10; i++){ sum += i * i; System.out.println("sum :"+ sum); ② Log.i(TAG, "sum ="+ sum); ③ } } }
代碼第①行自定義LogCat標簽,通過標簽可以過濾日志信息,代碼第③行指定標簽輸出Info基本日志信息,Log.i()方法的第一個參數是標簽,第二個參數是日志內容。
提示 在Java中,通常用System.out.println()方法輸出日志信息,System.out是一個Java輸出流類,它可以輸出到標準輸出設備上。LogCat也兼容了System.out輸出,它輸出重定向到LogCat輸出窗口了。代碼第②行是在程序中使用System.out. println()方法輸出日志信息,然后建立一個System.out標簽,System.out輸出級別是Info。
在日志窗口單擊按鈕彈出日志過濾對話框,如圖4-7所示,在Filter Name中輸入Hello Android Filter,在by Log Tag中輸入HelloAndroid,單擊OK按鈕,在LogCat輸出窗口增加了HelloAndroid標簽,如圖4-8所示。

圖4-7 日志過濾

圖4-8 HelloAndroid標簽日志輸出
如果不需要日志過濾,可以單擊按鈕刪除,也可以單擊
修改日志過濾。
- Learn Blockchain Programming with JavaScript
- 樂學Web編程:網站制作不神秘
- Visual C++實例精通
- 游戲程序設計教程
- Raspberry Pi 2 Server Essentials
- Julia Cookbook
- 匯編語言程序設計(第3版)
- 微信小程序項目開發實戰
- Node.js Design Patterns
- Mastering Docker
- OpenCV with Python Blueprints
- Web前端開發技術:HTML、CSS、JavaScript
- Clojure High Performance Programming(Second Edition)
- H5頁面設計與制作(全彩慕課版·第2版)
- Access 2010數據庫教程(微課版)