天天看點

使用Eclispe進行Android系統應用的開發和調試

<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-&gt;Java Project

  Project name: 4.0.3_r1

  Use default location: 去除鈎選

  Location-&gt;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&amp;android.importorder檔案。(.classpath也是在這目錄下的,Ctrl+H顯示隐藏檔案即可看到^^)

  1)Select Window &gt; Preferences &gt; Java &gt; Code Style.

  2)Use Formatter &gt; Import to import android-formatting.xml.

  3)Organize Imports &gt; Import to import android.importorder.

<b>三、修改應用,局部編譯</b><b></b>

<b>1</b><b>)修改&amp;</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包錯誤,右鍵工程-&gt;Properties-&gt;左側選Java Build Path-&gt;右側選Libraries标簽-&gt;選中兩紅叉的lib,Remove掉-&gt;Add JARs...-&gt;增加“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()方法内打個斷點。

右鍵工程-&gt;Debug As-&gt;Debug Configurations-&gt;左側欄輕按兩下Remote Java Application-&gt;修改右側欄Connect标簽下配置,Connection Type: Standard(Socket Attach),Connection Properties: Host,localhost; Port,8700-&gt;将Common标簽下的Debug打鈎-&gt;繼而“Apply”、“Debug”

回到emulator,選擇Wireless&amp;networks。OK,開始Debug吧^^。

<b>2</b><b>)4.0.3_r1</b><b>源碼的調試</b>

./eclipse &amp;(打開Eclispe,背景)

修正lib包錯誤,右鍵工程-&gt;Properties-&gt;左側選Java Build Path-&gt;右側選Libraries标簽-&gt;選中兩紅叉的lib,Remove掉-&gt;Add JARs...-&gt;增加“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設定,右鍵工程-&gt;Debug As-&gt;Debug Configurations-&gt;左側欄輕按兩下Remote Java Application-&gt;修改右側欄Connect标簽下配置,Connection Type: Standard(Socket Attach),Connection Properties: Host,localhost; Port,8700-&gt;将Common标簽下的Debug打鈎-&gt;繼而“Apply”、“Debug”

回到emulator,點選傳回鍵。OK,開始Debug吧^^。

<b>五、後記</b><b></b>

  玩的開心^^

     本文轉自winorlose2000 51CTO部落格,原文連結:http://blog.51cto.com/vaero/799473,如需轉載請自行聯系原作者

繼續閱讀