<b>使用</b><b>Eclispe</b><b>進行Android系統應用的開發和調試</b><b></b>
<b></b>
以下的内容就直接延續我上篇的環境目錄,不做特殊說明了。
<b>一、閱讀文檔</b><b></b>
步驟其實講述的很清楚了,但在自己的環境下難免不遇到一點問題。
<b>二、準備環境</b><b></b>
<b>1</b><b>)修改Java</b><b>環境變量</b>
好吧,隻能說之前配置的不合規範了。至于之後會引起什麼問題,也會提到的,算是給别人的參考吧(安慰下自己T^T)。
1. sudo gedit /etc/profile(在這配置Java環境變量)
添加内容:
JAVA_HOME=/usr/lib/jvm/java/jdk1.6.0_29
export JRE_HOME=/usr/lib/jvm/java/jre1.6.0_29
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
2. sudo gedit /etc/environment(把之前的改回來,再重新開機==)
修改前:
PATH="......:$JAVA_HOME/bin"(......為原PATH)
CLASSPATH=".:$JAVA_HOME/lib"
JAVA_HOME="/usr/lib/jvm/java/jdk1.6.0_29"
修改後:
PATH="......"(......為原PATH)
<b>2</b><b>)進入源碼目錄</b>
join@join-Vostro-230:~$ cd ~/env/android_src/4.0.3_r1/
<b>3</b><b>)copy .classpath</b>
join@join-Vostro-230:~/env/android_src/4.0.3_r1$ cp development/ide/eclipse/.classpath .
join@join-Vostro-230:~/env/android_src/4.0.3_r1$ chmod u+w .classpath
<b>4</b><b>)修改Eclipse</b><b>緩存</b>
join@join-Vostro-230:~/env/android_src/4.0.3_r1$ cd ~/env/eclipse/
join@join-Vostro-230:~/env/eclipse$ gedit eclipse.ini
将
-XX:MaxPermSize=256m
-Xms40m
-Xmx512m
修改為
-Xms128m
-Xmx512m
<b>5</b><b>)建立Eclipse</b><b>工程</b>
join@join-Vostro-230:~/env/eclipse$ ./eclipse
New->Java Project
Project name: 4.0.3_r1
Use default location: 去除鈎選
Location->Browse...: /home/join/env/android_src/4.0.3_r1
等待一會...
bingo,工程建立好了^^。
1、Eclispe建立Java工程時,注意是“Create project from existing source”。官方文檔說要選擇這個,我建時沒這選項直接選路徑就ok了,可能是不同版本Eclispe的原因吧==。
2、紅色叉叉、警告什麼的先不管,這不影響子產品編譯。或者先往下看調試部分的内容,把這先解決^^。
<b>6</b><b>)增加Eclispe</b><b>模版</b>
模版在‘源碼目錄/development/ide/eclipse’下,android-formatting.xml&android.importorder檔案。(.classpath也是在這目錄下的,Ctrl+H顯示隐藏檔案即可看到^^)
1)Select Window > Preferences > Java > Code Style.
2)Use Formatter > Import to import android-formatting.xml.
3)Organize Imports > Import to import android.importorder.
<b>三、修改應用,局部編譯</b><b></b>
<b>1</b><b>)修改&</b><b>編譯</b>
1)找到packages/apps/Launcher2/src,右鍵Go Into,在上方有個左右箭頭可以來回切換。這樣之後,友善檢視代碼。
2)在Launcher.java的onCreate(...)裡加個自己的Log,如“Log.e("Join", "Hello, I'm Join!");”。
3)編譯Launcher2:
Ctrl+Alt+T(新開一個終端)
gedit ~/.bashrc(編輯.bashrc)
添加“source ~/env/android_src/4.0.3_r1/build/envsetup.sh”,免去每次啟動新的終端執行mm等指令之前,需要引用此檔案。
cd ~/env/android_src/4.0.3_r1/(進入源碼目錄)
. build/envsetup.sh(準備好環境,這次還是要的)
mmm packages/apps/Launcher2/(編譯Launcher2子產品,或者直接make Launcher2)
make snod(重新生成system.img,如果隻是為了修APP就沒必要了)
1、在編譯Launcher2子產品時,你應該可以看到新APP的生成。
2、重新生成個img吧,之後我們還要看下打的日志呢^^。
3、之前說的Java環境變量,如果還是原配置的話在make snod時會有問題。
錯誤:“/bin/bash: jar: 未找到指令”
補充:java -version版本沒問題,javac也還能找到,但jar就是不行。也試過了“sudo ln -s -f /usr/lib/jvm/java/jdk1.6.0_29/bin/jar”來連結,至少我這無效T^T。
<b>2</b><b>)确認日志</b>
Ctrl+Alt+T(新開一個終端)
cd ~/env/android_src/4.0.3_r1/(進入源碼目錄)
lunch 1(建立模拟器)
emulator(打開模拟器)
cd ~/env/eclipse/(進入Eclispe目錄,新開終端或原先的)
./eclipse(打開Eclispe,還開着的忽視==)
在DDMS中選擇emulator,過濾看看是否有你之前打的Log,如“Join”^^。
1、Eclispe安裝了ADT元件的話,可以直接看它的。如果沒的話,就另外打開吧。
cd ~/env/android_src/4.0.3_r1/(進入源碼目錄)
ddms(開啟DDMS)
<b>四、調試源碼</b><b></b>
<b>1</b><b>)2.3.3_r1</b><b>源碼的調試</b>
cd ~/env/eclipse/(進入Eclispe目錄)
./eclipse(打開Eclispe)
修正lib包錯誤,右鍵工程->Properties->左側選Java Build Path->右側選Libraries标簽->選中兩紅叉的lib,Remove掉->Add JARs...->增加“out/target/common/obj/JAVA_LIBRARIES/android-common_intermediates/javalib.jar”。
Ctrl+Alt+T(新開一個終端)
lunch 1(建立模拟器)
emulator(打開模拟器)
在emulator中進入settings,在Eclipse的DDMS裡,選中新增加的com.android.settings程序。注意程序名稱一行最後一項多了個/8700,即是之後設定的Port。
傳回工程界面,找到“packages/apps/Settings/src”打開“com.android.settings”包内的“WirelessSettings.java”類,在onCreate()方法内打個斷點。
右鍵工程->Debug As->Debug Configurations->左側欄輕按兩下Remote Java Application->修改右側欄Connect标簽下配置,Connection Type: Standard(Socket Attach),Connection Properties: Host,localhost; Port,8700->将Common标簽下的Debug打鈎->繼而“Apply”、“Debug”
回到emulator,選擇Wireless&networks。OK,開始Debug吧^^。
<b>2</b><b>)4.0.3_r1</b><b>源碼的調試</b>
./eclipse &(打開Eclispe,背景)
修正lib包錯誤,右鍵工程->Properties->左側選Java Build Path->右側選Libraries标簽->選中兩紅叉的lib,Remove掉->Add JARs...->增加“out/target/common/obj/JAVA_LIBRARIES/android-common_intermediates/javalib.jar”、“out/target/common/obj/JAVA_LIBRARIES/filterfw_intermediates/classes-jarjar.jar”、“out/target/common/obj/JAVA_LIBRARIES/android-support-v13_intermediates/classes-jarjar.jar”。
在Eclipse工程界面,找到“packages/apps/Launcher2/src”打開“com.android.launcher2”包内的“Launcher.java”類,在onKeyDown()方法内打個斷點。繼而在DDMS中,選中“com.android.launcher”程序。注意程序名稱一行最後一項多了個/8700,即是之後設定的Port。
進行Debug設定,右鍵工程->Debug As->Debug Configurations->左側欄輕按兩下Remote Java Application->修改右側欄Connect标簽下配置,Connection Type: Standard(Socket Attach),Connection Properties: Host,localhost; Port,8700->将Common标簽下的Debug打鈎->繼而“Apply”、“Debug”
回到emulator,點選傳回鍵。OK,開始Debug吧^^。
<b>五、後記</b><b></b>
玩的開心^^
本文轉自winorlose2000 51CTO部落格,原文連結:http://blog.51cto.com/vaero/799473,如需轉載請自行聯系原作者