⑴ 【android】如何使用ADB進行調試
1、adb devices
( 用於查看當前adb連接的設備有哪些,這里目前是無)
(1)安卓開發調試的四種方法是什麼擴展閱讀:
無線使用ADB(Android Debug Bridge)非常的實用,它能夠讓你的手機用無線來取代USB連接,與電腦鏈接起來更加的方便快捷,還可以保護電池。需要root。
還可以進行以下的操作:
1、快速更新設備或手機模擬器中的代碼,如應用或Android系統升級;
2、在設備上運行shell命令;
3、管理設備或手機模擬器上的預定埠;
4、在設備或手機模擬器上復制或粘貼文件;
老玩家對adb這個調試工具肯定不陌生了,不過一般都是用USB連接來玩兒,這次帶來的是用無線進行連接,就太強大了,畢竟usb連接對電池的壽命有一定影響。
⑵ 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開發怎麼調試Service
Android開發如何調試Service
Android 開發中,添加代碼對Service 進行調試 。
介紹
以調試 模式啟動Android 項目時,在service 中設置斷點,調試 器不會停止下來
解決方法
所有的這種情況下,都是在代碼中聲明。調用的方法是:
android.os.Debug.waitForDebugger();
舉個例子,SoftKeyboard:
public class SoftKeyboard extends InputMethodService implements KeyboardView.OnKeyboardActionListener { @Override public void onConfigurationChanged(Configuration newConfig) { Log.d("SoftKeyboard", "onConfigurationChanged()"); /* now let's wait until the debugger attaches */ android.os.Debug.waitForDebugger(); super.onConfigurationChanged(newConfig); /* do something useful... */ }
代碼中你可以看到,首先是調用了日誌記錄器logger,代碼運行到這里時,會將在logcat中添加一條記錄,這是跟蹤代碼運行的一種方法,如果不需要在斷點上停止時可以使用。但通常為了更詳細的調試 ,這是不足夠的。
第二條語句等待添加調試 器,添加了這條語句之後,可以在這個方法的任何地方添加斷點。
Activity也是應用的部分時調試 Service 就更加容易了。那種情況下,首先需要啟動Activity,調試 器也可以在Service 的斷點中停止下來,不需要調用 waitForDebugger()。
⑷ 浠涔堟槸瀹夊崜浠g爜璋冭瘯錛
android 寮鍙戜嬌鐢╡clipse鎴栬匒ndroid Studio鏉ョ紪杈戙佺紪璇戙佽皟璇曘
涓銆佸紑鍙戠幆澧冩惌寤鴻繃紼嬪備笅:
瀹夎匤ava榪愯岀幆澧冧笅杞絜clipse鎴朅ndroid Studio
涓嬭澆瀹夎匒ndroid SDK
瀹夎匒ndroid妯℃嫙鍣,鍏朵腑Android妯℃嫙鍣ㄥ彲浠ョ敤Android鎵嬫満浠f浛錛(涓嶈佺敤Google鐨勬ā鎷熷櫒錛屽お鎱,涓嶄互鐢℅enymotion鉶氭嫙鏈)
鍙傝冭祫鏂:
http://jingyan..com/article/60ccbceb165c7664cab197d8.html
浜屻佽皟璇
娣誨姞鏂鐐硅皟璇曪紝鍦ㄥ乏渚ч紶鏍囧乏閿鐐瑰嚮濡傚浘鎵紺
褰撶▼搴忚繍琛屽埌璇ュ勬椂錛岄紶鏍囧垝鍒板彉閲忎笂鏃朵細鏄劇ず鍙橀噺鐨勫
娉: 浣跨敤鏂鐐硅皟璇曞父鐢ㄥ揩鎹烽敭:
緇х畫: F8
鍗曟ヨ繑鍥 F7
鍗曟ヨ煩榪 F6
鍗曟ヨ煩鍏 F5
鍗曟ヨ煩鍏ラ夋嫨 Ctrl+F5
璋冭瘯涓婃″惎鍔 F11
緇х畫 F8
浣跨敤榪囨護鍣ㄥ崟姝ユ墽琛 Shift+F5
娣誨姞/鍘婚櫎鏂鐐 Ctrl+Shift+B
鏄劇ず Ctrl+D
榪愯屼笂嬈″惎鍔 Ctrl+F11
榪愯岃嚦琛 Ctrl+R
鎵ц Ctrl+U
鐢↙og.v杈撳嚭錛屽備笂鍥炬墍紺哄皢鍙傛暟鍐呭硅緭鍑猴紝褰撲唬鐮佽繍琛屽悗浼氬湪LogCat涓鏄劇ず淇℃伅
⑸ 如何使用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, 這樣可以確保使用源碼里的庫文件
並將其作為要使用的SDK的Java SDK。如下圖
三、生成導入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出現
則建議按照其給定的解決方法來解決(網址:http://confluence.jetbrains.com/display/IDEADEV/Inotify+Watches+Limit),具體內容如下圖:
四、解決源碼中跳轉錯誤問題
①為當前工程設置正確的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時可能會顯示成:
沒有關系,只是顯示問題,點擊OK還是會把frameworks路徑添加進去的.
如果還有代碼跳轉錯誤,請仿照上面的步驟將相應代碼的路徑或jar文件添加到其Dependencies標簽頁中即可.
五、DEBUG源碼
我們可以通過給剛導入的工程在'Moles'中添加'Android Framework'來讓AS將它作為一個Android工程,從而方便我們調試代碼.
可以按照上圖中'1'和'2'來添加Android Framework支持.
在代碼中加斷點,然後選擇'Run'->'Attach debugger to Android process'或者直接點擊下圖所示的圖標
在彈出的選擇進程(Choose Process)對話框中,勾選顯示所有進程,選擇要DEBUG的代碼所在的進程,點擊OK即可.
六、其它
代碼中很多地方提示Call requires API Level x.... 出現這個問題是因為AS將我們的工程當做安卓應用程序工程了,且源碼中沒有指定minSdkVersion.
我們只需在源碼根目錄加一個聲明minSdkVersion的AndroidManifest.xml文件即可(分享了一個AndroidManifest.xml)。
也可以考慮使用build.gradle來解決該問題。