android源碼調試
⑴ android studio源碼怎麼使用
Android Studio開發/調試Android源碼的方法如下:
1、修改Android Studio(以下簡稱AS)的內存配置
2、配置AS的JDK、SDK
3、生成導入AS所需配置文件(*.ipr)
4、解決源碼中跳轉錯誤問題
5、可以通過給剛導入的工程在'Moles'中添加'Android Framework'來讓AS將它作為一個Android工程,從而方便我們調試代碼.
⑵ android代碼調試測試用例怎麼編寫
1、創建測試工程
介紹了這么多,也是時候該動手嘗試一下了,下面我們就來創建一個測試工程。在創建之前你需要知道,測試工程通常都不是獨立存在的,而是依賴於某個現有工程的,一般比較常見的做法是在現有工程下新建一個tests文件夾,測試工程就存放在這里。
那麼我們就給剛創建的項目test創建一個測試工程吧。在Eclipse的導航欄中點擊File→New→Other,會打開一個對話框,展開Android目錄,在裡面選中Android Test Project,如圖1所示。
點擊Next後會彈出創建Android測試工程的對話框,在這里我們可以輸入測試工程的名字,並選擇測試工程的路徑。按照慣例,我們將路徑選擇為test項目的tests文件夾下,
⑶ 如何在android studio中調試源程序
一、修改Android Studio(以下簡稱AS)的內存配置
因為在導入源碼時需要消耗大量內存,所以先修改IDEA_HOME/bin/studio64.vmoptions(x86的機器修改studio.vmoptions)中-Xms和-Xmx的值。文檔中使用的是748m,可自行修改。
二、配置AS的JDK、SDK
在IDE中添加一個沒有classpath的JDK,這樣可以確保使用源碼里的庫文件
在彈出的選擇進程(Choose Process)對話框中,勾選顯示所有進程,選擇要DEBUG的代碼所在的進程,點擊OK即可。
⑷ android開發如何調試
能夠在eclipse上運行調試應用程序之前,你必須為它創建一個啟動項。啟動項指定哪個工程將被啟動,哪個activity開始工作,以及使用哪些模擬器選項等。
按照以下步驟為Eclipse版本的應用程序創建合適的啟動項:
打開啟動項管理工具。
在Eclipse 3.3 (Europa)的版本中,酌情選擇 Run > Open RunDialog... or Run > Open Debug Dialog... 。
在Eclipse3.4 (Ganymede)版本中,酌情選擇 Run > Run Configurations...or Run > Debug Configurations... 。
在左邊的工程類型列表選擇Android Application選擇,雙擊(或者點擊右鍵選擇new),創建一個新的啟動項。
輸入啟動項名稱。
在Android標簽中,瀏覽要開始的工程和Activity 。
在Target標簽中,設置想要顯示的屏幕及網路屬性,以及其他任何模擬器啟動選項。
你可以在Common標簽中設置更多的選項.
按下Apply保存啟動配置,或者按下Run或Debug()。
運行和調試應用程序
一旦你設定了工程和工程啟動配置,你就可以按照以下的說明運行和調試應用程序了。
從eclipse主菜單,根據情況選擇Run>Run 或者 Run>Debug,開始運行或者調試活動啟動項。
注意,這里活動啟動項是在運行配置管理中最最近一次選中的那個。它不一定就是在Eclipse Navigation 面板中選擇的程序(如果有的話)
設置和修改活動啟動項,可以使用啟動項管理工具。如何獲得啟動項管理工具可以參考創建一個啟動項
運行或調試應用程序將觸發以下動作:
啟動模擬器,如果他還沒有開始運行。
編譯工程, 如果在上次編譯的基礎上修改過代碼,將重新編譯。在模擬器上安裝應用程序。
Run選項,開始運行程序。
Debug 在"Wait for debugger "模式下啟動程序,然後打開調試窗口並將Eclipse java調試器和程序關聯。
利用其他IDEs和工具開發Android應用程序
通常我們使用安裝有ADT插件的eclipse Eclipse with the ADT plugin.來開發Android程序,這個插件將編輯,build和調試功能集成到IDE上。
然而,如果你想在其他的IDE上開發程序,例如IntelliJ,或者使用沒有ADT插件的eclipse也可以。SDK提供了安裝,編譯,調試應用程序所需要的工具。
創建一個android工程
Android SDK包含一個activityCreator的程序,它將為工程產生多個stub文件和一個build文件。你可以用這個程序創建一個新的 Android工程或者在現有代碼上創建工程,如SDK中包含的例子。對於linux 和Mac系統,SDK提供activityCreator.py,一個 Python腳本,Windows上則是activityCreator.bat一個批處理腳本。無論是哪種平台,用法是一樣的。
按以下步驟運行activityCreator創建Android工程:
在命令行下,切換到SDK下的tools/目錄下,為你的工程文件新建一個目錄。如果你是在現有代碼上創建工程,切換到程序的根目錄下。
運行activityCreator。在命令行下,你必須指定完全合格的類名作為參數。如果你是創建一個全新的工程,這個類代表的與它同名的stub類和腳本文件。如果是在現有代碼上創建工程,必須指定軟體包中其中一個Activity類的名稱。命令選項的腳本包括:
--out <folder> 設定輸出目錄。默認情況下輸出目錄為當前目錄。如果你想為工程文件創建一個新的目錄,可以使用這個選項來指向它。
--ide intellij, 在一個新的項目中生成IntelliJIDEA 工程文件。
這里有個例子:
~/android_linux_sdk/tools $ ./activityCreator.py --out myprojectyour.package.name.ActivityName
package: your.package.name
out_dir: myproject
activity_name: ActivityName
~/android_linux_sdk/tools $
activityCreator腳本生成以下文件和目錄(但是不能重寫已有文件):
AndroidManifest.xml 程序的清單文件,同時為工程指定Activity類。
build.xml 一個Ant文件,用來編譯/打包應用程序。
src/your/package/name/ActivityName.java 你指定的輸入Activity類。
your_activity.iml, your_activity.ipr, your_activity.iws [only with the-ide intelliJ flag] intelliJ工程文件
res/ 資源目錄.
src/ 源代碼目錄.
bin/ build腳本的輸出目錄.
現在你可以將開發文件夾移到任何地方,但是記住,必須使用tool/文件夾下的adb程序將文件發送到模擬器上。因此你需要在你工作環境和tools/文件夾之間活動。
當然你需要避免移動SDK目錄,因為它將打斷編譯腳本。(再重新build之前需要手動更新SDK的映射路徑)
編譯 android應用程序
使用activityCreator生成的Ant文件build.xml來編譯程序
如果你沒有,你可以通過Apache Ant home page得到Ant文件。安裝它,並確定它在你的可執行文件路徑下。
呼叫Ant之前,你需聲明JAVA_HOME環境變數,並將它設置為JDK的安裝路徑。
注 意:在windows上,JDK默認的安裝路徑為"ProgramFiles",這個路徑將會引起Ant失敗,因為路徑中間有空格。解決這個問題,你可以像這樣指定環境變數 JAVA_HOME:JAVA_HOME=c:\Prora~1\Java\ 然而簡單的解決方法是將JDK安裝在沒有空格的目錄下。例如:c:\java\jdk1.6.0_02.
如果你還沒有這么准備好,按照上面創建一個新的工程的介紹建立一個工程。
現在你可以為你的工程運行Ant編譯文件,只需在build.xml同文件夾下輸入ant即可。每次修改原文件或是資源,都需要重新運行ant,它將把最新版的應用程序打包以便deploy.
運行Android程序
運行一個編譯好的程序,你需要用adb工具將.apk文件載入到模擬器的/data/app/目錄下,用法如下面介紹。
啟動模擬器(命令行下運行sdk目錄下的/tools/emulator)。
模擬器切換到主畫面(最好不要在程序運行的時候向模擬器安裝程序,可以按home鍵離開應用程序)。
運 行adb,安裝myproject/bin./<appname>.apk文件。例如,安裝Lunar Lander 示例,命令行下,切換到SDK目錄下的/sample/LunarLander子目錄下,輸入../../tools/adbinstall bin/LunarLander.apk
在模擬器中,打開可執行程序列表,卷動屏幕,選中並啟動你的應用程序。
注意:當你第一次安裝一個Activity時,你可能需要在啟動項顯示之前,或者其它程序調用它之前重新啟動模擬器。因為軟體包管理工具通常只有在模擬器啟動時才能完全的審查manifests。
為程序附加調試器
這一節我們介紹如何在屏幕上顯示調試信息(例如CPU使用率),以及如何將IDE和模擬器上運行的程序關聯起來。
使用eclipse插件可以自動的生成調試器。但你也可以通過配置IDES來監聽調試埠得到調試信息。
啟動Dalvik Debug Monitor Server (DDMS) 工具 ,它在IDE和模擬器之間扮演著埠轉換服務的角色。?
設置模擬器調試配置選項。例如,等到調試信息被載入後才啟動應用程序。注意,很多調試選項無需DDMS也可以使用,例如模擬器上顯示CPU的使用效率,或者屏幕的刷新頻率。
配置IDE,使得調試時IDE與8700埠關聯 .how to set up Eclipse to debug your project. 包含以下信息。
配置IDE附加調試埠
DDMS將為每一個虛擬機分配一個特殊的調試埠,這個埠在模擬器上可以找到。你必須將你的IDE與此埠(虛擬機上信息欄中有列出這些埠)關聯或者是默認的埠8700。這樣可以使IDE 連接到模擬器上程序列表中的任一個程序。
你的IDE需要能夠關聯模擬器上正在運行的程序,顯示它的線程,並允許你掛起它,檢查它的狀態,設置斷點。如果你在開發設置面板選擇了「等待調試」,應用程序將等到Eclipse連接後才運行,所以你需要在連接之前設置斷點。
修改正在調試的程序,或者在當前程序運行時選擇「等待調試」將引起系統殺死這個應用程序。如果你的程序處於一種壞的狀態,你可以使用方式殺死它,方法很簡單,只需要設置和鉤掉復選框。
⑸ 開發和調試Android系統源碼,開發環境如何搭建!
在ubuntu下面編譯吧在eclipse下面沒法編譯framework層的東西的 這些都是打包成jar的 而且有關聯性如果是僅僅調試 倒是的確可以用eclipse但是需要你手機上面的system.img的編譯源碼和你導入的源碼是一樣的 否則會出現錯位甚至eclipse檔掉
⑹ 如何調試跟蹤Android Framework源代碼
本文講解如何在Eclipse中導入Android源代碼(包括Framework和Application的代碼),然後通過模擬器或真機跟蹤/調試Android的Java代碼,區別於一般基於Android SDK的純應用開發,這里可以跟蹤/調試Framework中的代碼。
一、准備工作
確保機器上已經安裝並配置下列軟體環境:JDK/ Eclipse / Android SDK / ADT
即,機器上已經安裝了Eclipse下Android應用開發所需的環境。如果還未配置,移步《搭建Windows下Android應用開發環境——Eclipse/Android/ADT》。
另外,為了跟蹤調試Android源碼,你還需要有Android源碼,並有源碼的編譯環境,可以是:
虛擬機環境 虛擬機中安裝Linux,Linux下編譯Android源碼。此環境下,如果要在宿主機的Eclipse中調試,還需要把Android的源碼路徑共享出來,宿主機可訪問到;
有單獨的可編譯Android的網路環境 在你的客戶端的機器上訪問伺服器共享出來的Android的源碼路徑;
Linux環境下直接通過Eclipse跟蹤調試本機上的Android源碼。
-Xms40m
-Xmx384m
-Xms128m
-Xmx512m
注意:不管哪種工作方式,Android源碼要都是已經編譯過的,且編譯時採用的是Eng模式(vs User mode)。編譯Android Platform和Kernel的過程,可參考《Ubuntu10.10下編譯Android2.2平台》及《Ubuntu10.10下編譯Android2.2內核》。
二、基本設置
准備工作完畢之後,現在做一些基本的設置。
1. 把Android源碼路徑<Android_ROOT>下的developmentideeclipse中的.classpath文件復制到<Android_ROOT>下;如果需要在模擬器中進行調試的話,需要復制三個img(具體方法見http://wenku..com/view/26d9063c87c24028915fc366.html)
2. 修改Eclipse的設置
修改eclipse.ini文件,更改下列內容:
[plain]view plain
改為:
[java]view plain
這里增大最小Java堆大小到128MB,增大最大Java堆大小到512MB。
三、Eclipse中創建工程
1. File > New > Java Project
⑺ 如何使用Android Studio開發/調試Android源碼
開發調試環境: Ubuntu 14.10,openJdk 1.7,Android Studio 1.0.2,android-5.0.1_r1源碼
由於AS是基於IntelliJ IDEA開發的,所以本文也適用於IntelliJ IDEA
一、修改Android Studio(以下簡稱AS)的內存配置
因為在導入源碼時需要消耗大量內存,所以先修改IDEA_HOME/bin/studio64.vmoptions(x86的機器修改studio.vmoptions)中-Xms和-Xmx的值。文檔中使用的是748m,可自行修改。
二、配置AS的JDK、SDK
在IDE中添加一個沒有classpath的JDK,這樣可以確保使用源碼里的庫文件
在代碼中加斷點,然後選擇'Run'->''或者直接點擊下圖所示的圖標
在彈出的選擇進程(Choose Process)對話框中,勾選顯示所有進程,選擇要DEBUG的代碼所在的進程,點擊OK即可.
六、其它
代碼中很多地方提示CallrequiresAPILevelx.... 出現這個問題是因為AS將我們的工程當做安卓應用程序工程了,且源碼中沒有指定minSdkVersion.
我們只需在源碼根目錄加一個聲明minSdkVersion的AndroidManifest.xml文件即可(分享了一個AndroidManifest.xml)。
也可以考慮使用build.gradle來解決該問題。
⑻ 如何使用Android Studio開發/調試Android源碼
一、修改Android Studio(以下簡稱AS)的內存配置
因為在導入源碼時需要消耗大量內存,所以先修改IDEA_HOME/bin/studio64.vmoptions(x86的機器修改studio.vmoptions)中-Xms和-Xmx的值。文檔中使用的是748m, 可自行修改。
二、配置AS的JDK、SDK
在IDE中添加一個沒有classpath的JDK, 這樣可以確保使用源碼里的庫文件
三、生成導入AS所需配置文件(*.ipr)
①編譯源碼(為了確保生成了.java文件,如R.java;如果編譯過,則無需再次編譯)
②檢查out/host/linux-x86/framework/目錄下是否有idegen.jar
如果idegen.jar不存在,執行:
mmm development/tools/idegen/
在5.0.1的源碼中會生成res.java的文件夾,導致idegen.jar運行時拋FileNotFoundException,這是idegen的代碼不夠嚴謹造成的。
我的分享里有修改這個bug的patch,或者直接使用我分享的idegen.jar。
③執行
development/tools/idegen/idegen.sh
等待出現類似下面的結果:
Read excludes: 5ms
Traversed tree: 44078ms
這時會在源碼的根目錄下生成android.ipr和android.iml兩個IntelliJ IDEA(AS是基於IntelliJ
IDEA社區版開發的)的配置文件
Tips:
AS在導入代碼時比較慢,建議先修改android.iml,將自己用不到的代碼exclude出去.可以仿照過濾.repo文件夾的語法,如:
<excludeFolder url="file://$MODULE_DIR$/.repo" />
<excludeFolder
url="file://$MODULE_DIR$/abi" />
<excludeFolder
url="file://$MODULE_DIR$/art" />
這樣在導入時就會跳過abi和art文件夾.過濾的越多,AS的處理速度就會越快.
④在AS中打開源碼根目錄下新生成的android.ipr
如果在導入時AS出現
則建議按照其給定的解決方法來解決
四、解決源碼中跳轉錯誤問題
①為當前工程設置正確的SDK和JDK
②設置'Moles'的依賴
先將所有依賴刪掉,只留下上圖'1'所指向的兩個(注意:這里刪除全部只是為了方便。如果確實用到了.jar,在將它們的路徑添加進來就可以了.
如:5.0.1的ContactsCommon用到了geocoder-2.9.jar和libphonenumber-6.2.jar)
點擊上圖中'2'指向的'+'並選擇上圖'3'指向的'Jars or
directories'選項,依次將frameworks和external文件夾添加進來.如:
其它版本的代碼在添加frameworks時可能會顯示成:
⑼ 如何編譯和調試android源碼中platform/system/core下的代碼
首先在Android源代碼目錄下的build目錄下,有個腳本文件envsetup.sh,執行這個腳本文件後,就可以獲得一些有用的工具:
USER-NAME@MACHINE-NAME:~/Android$ . ./build/envsetup.sh
注意,這是一個source命令,執行之後,就會有一些額外的命令可以使用:
- croot: Changes directory to the top of the tree.
- m: Makes from the top of the tree.
- mm: Builds all of the moles in the current directory.
- mmm: Builds all of the moles in the supplied directories.
- cgrep: Greps on all local C/C++ files.
- jgrep: Greps on all local Java files.
- resgrep: Greps on all local res/*.xml files.
- godir: Go to the directory containing a file.
這些命令的具體用法,可以在命令的後面加-help來查看,這里我們只關注mmm命令,也就是可以用它來編譯指定目錄的所有模塊,通常這個目錄只包含一個模塊。
⑽ 如何在Android studio中進行代碼調試
1
在android studio中新建默認的android應用app。
2
點擊菜單欄的「Run」->「Attach debugger to Android process」。
3
然後會打開「Choose Process」窗口。選中要調試的進程,然後點擊ok。
4
console中會輸出:Connected to the target VM, address: 'localhost:8601', transport: 'socket'。說明已經可以進行調試。
5
在MainActivity的第14行打斷點,然後運行程序,可以看到程序停在斷點上。