android 網絡調試 源代碼,Android源代碼調試環境搭建

我們在調試Android應用程序的時候,有時候遇到一些莫名其妙的問題,因此我們需要查看Android內部是如何調用的。我們都知道Android是一個偉大的開源項目,因此debug的時候肯定是支持源代碼級別調試的。采用源代碼調試,一方面有利于發現問題,另一方面有利于我們對Android系統的整個流程有一個比較清晰的認識,對我們以后開發app或者修改rom都是大有幫助的。好了廢話不說,下面就介紹一下如何在eclipse中進行源代碼調試吧!

顯然要進行源代碼調試,首先必須下載源代碼。大家可以都google的官方網站http://source.android.com/source/index.html 去下載,因為Android源代碼是用git進行管理的,同時google為了管理方便,用python寫了一個repo腳本進行項目管理,因此你必須確保你的電腦上安裝了git和python,至于具體如何下載,大家可以參考android網站上的說明,以后我也會專門介紹如何下載和編譯整個Android源代碼。

我下載的是Android4.2版本,整個源代碼比較大,具體的目錄結構如下:

89032144f938ed6e67dcc87a2a2447f3.png

源代碼下載完成后,需要導入到eclipse,這樣查看起來比較方便。在命令行下,cd到development/ide/eclipse這個目錄下,會發現這個目錄下有一個.classpath隱藏文件

14c2b1d945d6f5137211b00330332721.png

將.classpath文件拷貝到你的Android源代碼的根目錄下

eba7565e7cfc3ad0b6821de600b04043.png

打開eclipse,新建一個Java工程,Location選擇你Android的源代碼所在的目錄

ef130888072287f22920010e2e0c6cc5.png

然后eclipse會加載Android的源代碼,這個過程可能有點久,完成后點擊finish,可以看到整個Android源代碼都導入到eclipse中了,包括c,c++,java等所有的代碼,這樣查看起來就方便多了

bdc4f85202ca2dbaad8693271a65dcbb.png

Android源代碼導入eclipse后,接下來就要進行關聯調試了。首先新建一個Android的HelloWorld的工程,先在模擬器上運行一下確保沒有問題,然后右擊HelloWorld工程,選擇Debug As ?-> ?Debug Configurations,選擇左側的Remote Java Application,右擊選擇New,可以自己設置一個端口,如我設置的是9000,然后點擊Apply

de864b50a8e6280f7a9f8f29c5fa1cb7.png

在HelloWord的MainActivity設置一個斷點

1f1e2b5e99b321e5b2a1e01342da36f4.png

然后右擊Debug As -> Android Application,進入Android調試器

7481047dc83e49d6e24b8141fe640f29.png

你可以隨便點擊右邊的ActivityThread中的一個方法,如performLaunchActivity,但是這個時候你會發現,提示源代碼沒有找到,你按照提示點擊“Edit Source Lookup Path”,這時會彈出一個對話框,點擊“Add”,選擇Java Project,然后找到你之前的建的那個Java 源代碼工程,這樣就看到Android的源代碼了,接下去的調試就和我們平常的調試一樣了,如F5進入方法,F6 執行下一行等等。

因為我之前在super.onCreate方法上面設置了一個斷點,按F5進入這個方法的內部,查看到Activity.java中的代碼如下:

73cb2fa83807b085312189f1eab376b0.png

好了,整個Android源代碼的調試就搭建完成了,這樣就可以調試自己的代碼,還有分析整個Android運行的流程了,這對于rom開發還是很有幫助的。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/392935.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/392935.shtml
英文地址,請注明出處:http://en.pswp.cn/news/392935.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

如何使用HTTP壓縮優化服務器

鑒于互聯網上的寬帶有限,網絡管理人員任何旨在加速接入速度的努力都是有價值的。其中的一個方法就是通過HTTP壓縮技術實現接入速度的加速,它通過減少在服務器和客戶端之間傳輸的數據量,顯著地提高網站的性能。數據壓縮本身并不新鮮。但是&…

leetcode117. 填充每個節點的下一個右側節點指針 II(dfs)

給定一個二叉樹 struct Node { int val; Node *left; Node *right; Node *next; } 填充它的每個 next 指針,讓這個指針指向其下一個右側節點。如果找不到下一個右側節點,則將 next 指針設置為 NULL。 初始狀態下,所有 next 指針都被設置為 …

cmd命令大全

遍歷當前盤所有文件 dir /ad/s/b ASSOC 顯示或修改文件擴展名關聯。ATTRIB 顯示或更改文件屬性。BREAK 設置或清除擴展式 CTRLC 檢查。BCDEDIT 設置啟動數據庫中的屬性以控制啟動加載。CACLS 顯示或修改文件的訪問控制列表(ACL)。CALL 從另一個批處理程序調用這一個。CD 顯示當…

mac web開發_如何設置Mac進行Web開發

mac web開發While you can build basic websites with nothing more than a text editor and browser, you may want to up your game by adding a JavaScript framework like React or Vue and useful tools like Git to your workflow.雖然可以只使用文本編輯器和瀏覽器來構建…

OpenGL研究3.0 多邊形區域填充

OpenGL研究3.0 多邊形區域填充 DionysosLai(906391500qq.com)2014-06-22 所謂多邊形區域填充。就是將多邊形內部區域,所有已相同色塊填充。注意:這里討論的多邊形是簡單多邊形(即不考慮諸如五角星這樣的相交多邊形)。簡單多邊形&a…

[轉]Android筆記:ScrollView嵌套ViewPager的滾動沖突解決方法

12345678910111213141516171819202122232425262728293031323334/*** 能夠兼容ViewPager的ScrollView * Description: 解決了ViewPager在ScrollView中的滑動反彈問題 */ public class ScrollViewExtend extends ScrollView { // 滑動距離及坐標 private float xDistance, yDista…

android tv 樂視手機,樂視超4系列原生Android TV分享

固件:Official USA Firmware:USA BIN Firmware 5.8.050S_1028://mega.nz/#F!7PhyDI6D!TnwNlMmWXosK1uCUdpyNGg[/url]USA ZIP Firmware 5.8.056S_0420 (OTA ZIP, must be flashed only after flashing the above bin)://drive.google.com/open?id1N9...rNHVB_-VPIad…

ping、網絡抖動與丟包

基本概念: ping: PING指一個數據包從用戶的設備發送到測速點,然后再立即從測速點返回用戶設備的來回時間。也就是俗稱的“網絡延遲” 一般以毫秒(ms)計算 一般PING在0~100ms都是正常的速度,不會有較為明顯的卡頓。 測試…

Webtask后端即服務:無服務器快速教程

查爾斯厄勒(Charles Ouellet) (By Charles Ouellet) The word serverless is buzzing through dozens of dev circles today.如今, 無服務器一詞正在數十個開發界中流行。 It has been for a while now.已經有一段時間了。 I’ve been meaning to exit my code ed…

leetcode145. 二叉樹的后序遍歷(dfs)

給定一個二叉樹&#xff0c;返回它的 后序 遍歷。示例:輸入: [1,null,2,3] 1\2/3 輸出: [3,2,1]class Solution {List<Integer> listnew ArrayList<>();public List<Integer> postorderTraversal(TreeNode root) {getPostorderTraversal(root);return list;…

[luoguP2801] 教主的魔法(二分 + 分塊)

傳送門 以為對于這類問題線段樹都能解決&#xff0c;分塊比線段樹菜&#xff0c;結果培訓完才知道線段樹是一種特殊的分塊方法&#xff0c;有的分塊的題線段樹不能做&#xff0c;看來分塊還是有必要學的。 對于這個題&#xff0c;先分塊&#xff0c;然后另開一個數組對于每個塊…

鴻蒙系統適配開發,捕獲科技擬建立鴻蒙開發組 為區塊鏈錢包客戶適配鴻蒙系統做籌備...

遭遇美國“實體清單”封殺的第85天&#xff0c;華為“鴻蒙”橫空出世&#xff01;8月9日下午&#xff0c;在華為全球開發者大會上&#xff0c;當余承東正式宣布鴻蒙系統(Harmony OS)發布的時候&#xff0c;全場掌聲雷動&#xff01;世界上第一個由中國企業自主研發的全平臺微內…

[arm驅動]linux內核中斷編程

第一部分獲取中斷(開啟硬件中斷)一、中斷的申請注銷: 1&#xff09;中斷的申請 12int request_irq(unsigned int irq, irq_handler_t handler, unsigned long irqflags, const char *devname, void *dev_id) 2)中斷的注銷 1void free_irq(unsigned int irq, void *dev_id) 3&am…

關于VCP(Virtual Com Port)拓展的調試經歷(一)

* The Overview 前日&#xff0c;接到老板部署的任務&#xff0c;將現有的基于STM32L151與L432的LoRaWAN程序中添加USB CDC(Communication Device Class)功能&#xff0c;并枚舉為VCP(Virtual Com Port)用以替代以往的串口打印。很疑惑為什么以前架構代碼的時候沒有添加進去。。…

leetcode701. 二叉搜索樹中的插入操作(dfs)

給定二叉搜索樹&#xff08;BST&#xff09;的根節點和要插入樹中的值&#xff0c;將值插入二叉搜索樹。 返回插入后二叉搜索樹的根節點。 輸入數據保證&#xff0c;新值和原始二叉搜索樹中的任意節點值都不同。注意&#xff0c;可能存在多種有效的插入方式&#xff0c;只要樹在…

三星s6 android 8.0,再見Android 8.0,三星s6全系列系統都停止了,第一代國王已經倒下了嗎?...

對于Android用戶而言&#xff0c;最令人興奮的事情是系統更新&#xff0c;因為該更新意味著更流暢的體驗和更加用戶友好的功能. 但是&#xff0c;舊的三星S6并不是那么幸運&#xff0c;并且不再錯過Android 8.0.三星s6的全系列指的是三星s6&#xff0c;三星s6 edge&#xff0c;…

devise tree_Devise如何確保您的Rails應用密碼安全

devise treeby Tiago Alves由蒂亞戈阿爾維斯(Tiago Alves) Devise如何確保您的Rails應用密碼安全 (How Devise keeps your Rails app passwords safe) Devise is an incredible authentication solution for Rails with more than 40 million downloads. However, since it ab…

Exchange 2010無法安裝問題解決方法

當你在活動目錄(AD)森林中安裝多臺全局編錄服務器(GC)之后,默認情況下你會發現在AD站點里面自動生成二條站點連接,從上面的截圖可以看到目前在AD森林的Default-First-Site-Name(默認站點)里面有6臺GC。 從上面的截圖可以看到目前只有一臺叫做Sh-Site1GC(全局編錄服務器)是處于運…

android edittext 不滾動,EditText 設置可以垂直滑動但是不可輸入

一、前言&#xff1a;android:id"id/edtInput"android:layout_width"match_parent"android:layout_height"60dp"android:background"drawable/round_theme_3_gray"android:gravity"top"android:hint"string/please_inp…

snmpd修改端口

http://blog.csdn.net/cau99/article/details/5077239 http://blog.csdn.net/gua___gua/article/details/48547701轉載于:https://www.cnblogs.com/diyunpeng/p/6829592.html