在ubuntu上android的debug的方式有很多种,可以用eclipse,android studio。但是有的时候,为了方便也可以用命令行去debug。下面列出命令行debug的过程
xxx:~$ cd source/
xxx:~/source$ cd packages/apps/Settings/
xx:~/source/packages/apps/Settings$ adb shell ps | grep com.android.settings
system 3119 202 550436 38152 ffffffff 400dd888 S com.android.settings
xxx:~/source/packages/apps/Settings$ adb forward tcp:7777 jdwp:3119
xxx:~/source/packages/apps/Settings$ ls
AndroidManifest.xml Android.mk CleanSpec.mk MODULE_LICENSE_APACHE2 NOTICE proguard.flags res src tests
xxx:~/source/packages/apps/Settings$ jdb -sourcepath src -attach localhost:7777
Set uncaught java.lang.Throwable
Set deferred uncaught java.lang.Throwable
Initializing jdb ...
> stop in com.android.settings.Settings.onCreate
Set breakpoint com.android.settings.Settings.onCreate
>
Breakpoint hit: "thread=<1> main", com.android.settings.Settings.onCreate(), line=197 bci=2
197 if (getIntent().hasExtra(EXTRA_UI_OPTIONS)) {
<1> main[1] list
193 };
194
195 @Override
196 protected void onCreate(Bundle savedInstanceState) {
197 => if (getIntent().hasExtra(EXTRA_UI_OPTIONS)) {
198 getWindow().setUiOptions(getIntent().getIntExtra(EXTRA_UI_OPTIONS, 0));
199 }
200
201 mAuthenticatorHelper = new AuthenticatorHelper();
202 mAuthenticatorHelper.updateAuthDescriptions(this);
<1> main[1] next
.....
<1> main[1] print mInLocalHeaderSwitch
mInLocalHeaderSwitch = true
.....
以上,操作还是蛮简单的。
附:** JDB命令列表 **
# <command>
— 放弃 (无操作)参考:
http://codeseekah.com/2012/02/16/command-line-android-development-debugging/
http://resources.infosecinstitute.com/android-hacking-security-part-5-debugging-java-applications-using-jdb/
原文:http://www.cnblogs.com/codingWarrior/p/4496674.html