使用Eclispe进行Android系统应用的开发和调试

使用Eclispe进行Android系统应用的开发和调试

准备好自己的源码并顺利编译通过,现在开始进一步开发啦^^。还没准备好的,可以参阅我上一篇《ubuntu 11.10下载和编译Android源码》。

以下的内容就直接延续我上篇的环境目录,不做特殊说明了。

 

一、阅读文档

Using Eclipsehttp://source.android.com/source/using-eclipse.html

步骤其实讲述的很清楚了,但在自己的环境下难免不遇到一点问题。

 

二、准备环境

1)修改Java环境变量

好吧,只能说之前配置的不合规范了。至于之后会引起什么问题,也会提到的,算是给别人的参考吧(安慰下自己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

 

2)进入源码目录

join@join-Vostro-230:~$ cd ~/env/android_src/4.0.3_r1/

 

3copy .classpath

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

 

4)修改Eclipse缓存

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

修改为

  -XX:MaxPermSize=256m

  -Xms128m

-Xmx512m

 

5)建立Eclipse工程

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,工程建立好了^^

 

1Eclispe建立Java工程时,注意是“Create project from existing source”。官方文档说要选择这个,我建时没这选项直接选路径就ok了,可能是不同版本Eclispe的原因吧==

  2、红色叉叉、警告什么的先不管,这不影响模块编译。或者先往下看调试部分的内容,把这先解决^^

 

6)增加Eclispe模版

  模版在‘源码目录/development/ide/eclipse’下,android-formatting.xml&android.importorder文件。(.classpath也是在这目录下的,Ctrl+H显示隐藏文件即可看到^^

 

  1Select Window > Preferences > Java > Code Style.

  2Use Formatter > Import to import android-formatting.xml.

  3Organize Imports > Import to import android.importorder.

 

三、修改应用,局部编译

1)修改&编译

1)找到packages/apps/Launcher2/src,右键Go Into,在上方有个左右箭头可以来回切换。这样之后,方便查看代码。

  2)在Launcher.javaonCreate(...)里加个自己的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

  4android模块编译相关命令:http://www.cnblogs.com/bobystudy/articles/1770193.html

 

2)确认日志

  Ctrl+Alt+T(新开一个终端)

  cd ~/env/android_src/4.0.3_r1/(进入源码目录)

  lunch 1(创建模拟器)

  emulator(打开模拟器)

 

  cd ~/env/eclipse/(进入Eclispe目录,新开终端或原先的)

  ./eclipse(打开Eclispe,还开着的忽视==

 

  DDMS中选择emulator,过滤看看是否有你之前打的Log,如“Join^^

 

  1Eclispe安装了ADT组件的话,可以直接看它的。如果没的话,就另外打开吧。

  Ctrl+Alt+T(新开一个终端)

cd ~/env/android_src/4.0.3_r1/(进入源码目录)

ddms(开启DDMS)

 

四、调试源码

12.3.3_r1源码的调试

cd ~/env/eclipse/(进入Eclispe目录)

./eclipse(打开Eclispe

 

修正lib包错误,右键工程->Properties->左侧选Java Build Path->右侧选Libraries标签->选中两红叉的libRemove->Add JARs...->增加“out/target/common/obj/JAVA_LIBRARIES/android-common_intermediates/javalib.jar”。

 

Ctrl+Alt+T(新开一个终端)

cd ~/env/android_src/4.0.3_r1/(进入源码目录)

lunch 1(创建模拟器)

emulator(打开模拟器)

 

emulator中进入settings,在EclipseDDMS里,选中新增加的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&networksOK,开始Debug^^

 

24.0.3_r1源码的调试

cd ~/env/eclipse/(进入Eclispe目录)

./eclipse &(打开Eclispe,后台)

 

修正lib包错误,右键工程->Properties->左侧选Java Build Path->右侧选Libraries标签->选中两红叉的libRemove->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”。

 

cd ~/env/android_src/4.0.3_r1/(进入源码目录)

lunch 1(创建模拟器)

emulator(打开模拟器)

 

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^^

 

五、后记

  玩的开心^^


     本文转自winorlose2000 51CTO博客,原文链接:http://blog.51cto.com/vaero/799473,如需转载请自行联系原作者





上一篇:kafka官方文档学习笔记3--配置简述


下一篇:如何解决一些控件无法运行在高版本的Chrome下运行的问题