来源 : http://hi.chinaunix.net/?uid-21747227-action-viewspace-itemid-48339


这个文档主要说明了如何debug我们的JNI以上的javacode部分,包括App Framework以及Application部分。

1.首先建立Android的编译环境,并且将android的sourcecode repo下来。然后对源码进行make。安装eclipse以及eclipse的android plus-in。具体安装方法在这里就不多说了。

2.将out/target/product/generic目录下的system.img,userdata.img,ramdisk.img拷贝到目 前eclipse使用的SDK目录下的tools/lib/images下,SDK中的这三个img,最好做一个备份。

3.eclipse需要一个目录以保证它能够找到路径下面的java文件,就是所谓的“java build path”,在android的source code已经给我们准备了一个叫“.classpath”的文件,我们可以直接利用这个文件,也可以对这个文件进行相应的修改。这个文件在source code的位置为:development/ide/eclipse/.classpath。将这个文件cp到android sorce code的根目录下。拷贝后,需要对.classpath文件的属性进行修改,以保证这个文件的可以修改。chmod u+w .classpath

4.Android Project比较大,Eclipse的java Vm在编译的时候可能会有内存不够的情况,我们需要编辑elipse.ini文件,这个ini文件就在eclipse文件夹下,将其修改为:
-Xms128m
-Xmx512m
第一个表示eclipse最小的java栈是128m,第二个表示eclipse的最大栈是512m

5.如何根据源代码建立android source code的工程。打开eclipse
(1)File->New->Java Project,注意这个与Android的Application的建立是不一样的,这个不是一个Android Project而是建立的Java Project
(2)随便选择一个工程名,这里我们取名叫Android
(3)然后选择“Create project from existing source”,然后Android source code的目录,完成。]
(4)然后就是等待工程的建立,这个需要一会,工程比较多,这个工程的建立就是根据我们.classpath中的内容完成的。
代码导入后,没有error,但是有很多的warning,但是这个不影响我们debug。

关于.classpath的说明:这里我们演示的是如何用eclipse debug源代码中的一个Helloworld的应用,在.classpath中我们相应的添加上<classpathentry kind="src" path="packages/apps/Helloworld/src"/>这样在工程生成的时候,我们就可以在eclipse的java code部分看到我们在source code里面添加的这个Helloworld的应用了。其他的添加也是相同的方法。


6.如何debug,在SDK的tools下启动./emulator,这个时候emulator启动运行的加载的就是我们通过source code编译出来的img。然后启动./ddms,ddms默认使用的是端口8700。ddms启动起来就可以看到emulator中的活动等消息。
Eclipse关于debug的一些设置,Run->Debug Configurations->Remote Java Application,鼠标右键->随意选择一个名字,设置Project为你目前的 Project,Standard,localhost,8700->Debug。如下图所示:


7.如何debug,这里我们需要debug的是实验的小程序Helloworld,在eclipse里面给在需要的地方加上断点,如图所示:



断点添加好以后,在ddms里面选中我们需要debug的进程,如图所示:


然后运行emulator中的Helloworld的应用,这样我可以在eclipse里面进行我们的debug工作了。如下图所示:


这样我们就可以基于我们的源代码,使用eclipse debug我们JNI上面的代码了。

补充1:
如果代码repo sync过,我们这样作:
(1).Window > Show View > Navigator
(2).在project名字上右键
(3).refresh,然后新添加删除的东西就会在eclipse的工程进行了一个同步。

更多相关文章

  1. android 创建文件夹和文件
  2. 在AndroidManifest.xml文件中的android:windowSoftInputMode属性
  3. 调试 android 工程时出现 Unable to upload file: No space left
  4. Android 记忆卡片游戏 记忆力 Android游戏 Android记忆卡片游戏
  5. android 源代码在线查看和索引
  6. FrameLayout的使用——android开发之xml布局文件
  7. android中将数据写入手机内存和sdcard中的文件
  8. Android系统默认Home应用程序(Launcher)的启动过程源代码分析(3)

随机推荐

  1. Android之EditText imeOptions属性解析
  2. Android性能调优工具TraceView介绍
  3. 用.Net打造一个移动客户端(Android/IOS)的
  4. 基本组件之列表选择框
  5. Android系统
  6. Android(安卓)Activity之间跳转出现短暂
  7. Android(安卓)4.0已知信息汇总
  8. 移动应用平台首选iOS还是Android?
  9. adb shell 命令详解
  10. Android(安卓)Studio自带的sdk manager打