2013-03-28 57 views
1

我正在使用android外殼工具am做一些方法分析。我的觀點是,方法分析需要應用程序的進程ID。所以,應用程序必須在應用程序分析之前啓動,以便它可以獲取進程ID。但是,如果我開始分析,那麼我可能會錯過一些初始代碼執行。這意味着我可能會錯過一些方法調用。任何解決方法?我的目標是自應用程序啓動以來記錄所有方法調用。安卓方法分析與am實用程序缺少方法

回答

1

,而不是命令行工具添加:

Debug.startMethodTracing(); 

在你的代碼(見http://developer.android.com/reference/android/os/Debug.html#startMethodTracing())。

如果您想剖析整個應用程序,將此方法添加到Application.onCreate()可能是一個很好的開始。

如果您沒有源代碼,您必須使用其他方法(DDMS,am配置文件)。 am start也有一個選項來啓動剖析

am start [-D] [-W] [-P <FILE>] [--start-profiler <FILE>] 
       [--R COUNT] [-S] <INTENT> 

,所以如果你有<INTENT>啓動你的活動可能是有益的。

+0

嗨如何知道我的應用程序中的哪個方法首先被用來添加分析調用?還有,如果我想要在沒有源代碼的情況下進行分析? – 2013-03-28 03:27:55

+0

是的,我想使用ddms或am,但他們需要進程ID權利?但爲了讓我需要首先啓動應用程序,所以我可能會失去一些初始方法調用。我怎麼能得到這個?任何想法? – 2013-03-28 03:40:26

+0

am選項開始分析是,我的個人資料開始,所以我怎麼能得到進程ID而不啓動應用程序?如果我已經啓動了應用程序並再次啓動它,初始代碼是否會被重新執行?我的意思是先啓動應用程序,然後啓動分析器,然後重新啓動應用程序的意圖? – 2013-03-28 04:05:56