android 動態調試筆記

來源:互聯網
上載者:User

標籤:

1、修改apk設定檔AndroidManifest.xml
     修改設定檔<application>子項,添加 android:debuggable="true" 屬性,使apk處於可調式狀態,打包回編即可。
           <application android:allowBackup="true" android:debuggable="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name">

2、調試啟動apk(兩種方式)
     1)使用adb  shell am(沒用過)
          使用格式為 【adb shell am start -D -n 包名/包名+類名】的命令,就可以從控制台啟動一個Activity
          該命令的具體用法,參見 adb shell am
     2) 使用手機內建的調試功能(簡單方便)
          在手機中的開發人員選項中,選擇待調試的程式,然後正常單擊程式,此時會彈出一個title為“Waiting For Debugger”的對話方塊,提示使用者該應用程式正在等待debugger attach

3、IDA附加app
     在手機中以root身份啟動android_server
     在主系統中,使用adb forward tcp:23946 tcp:23946 命令轉送連接埠資料
     完成以上兩步後,就可以使用ida附加到應用程式。附加完成後,在ida->Debugger->Debugger Options中,設定event斷點,添加 library load/unload 斷點,,這樣,在app啟動之後,每load/unload一個so的時候,都會斷住,此時,使用者就可以去設定斷點,一遍後續調試

4、啟動app
     經過以上三步,app處於待調試狀態,此時需要啟動app,讓它跑起來。
     在主系統中,使用ddms查看app的調試連接埠號碼(一般為8700),然後使用如下命令:
         jdb -connect com.sun.jdi.SocketAttach:hostname=localhost,port=8700
     此時,app調試狀態解除,開始正常運行。
     但是你會發現,“Waiting For Debugger”對話方塊不見了,但是app還是沒有運行,這是因為在ida附加的時候,自動斷住了。只要在ida中,按下F9,就可以讓app真正的跑起來了。

android 動態調試筆記

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.