Eclipse Android源码工程调试

移动开发 Android
Eclipse Android源码工程调试是本文要介绍的内容,主要是来了解并学习Eclipse Android源码的内容,具体关于Eclipse Android源码内容的详解来看本文。

Eclipse Android源码工程调试是本文要介绍的内容,主要是来了解并学习Eclipse Android源码的内容,具体关于Eclipse Android源码内容的详解来看本文。

1、ubuntu 下源码编译

***切换到root用户下进行操作

  1. $ sudo -s 

(1)下载jdk1.5 并安装(下载自解压版本并设置环境变量)

编辑/root/.bashrc 添加

  1. #set java environment  
  2. export JAVA_HOME=/work/jdk1.5.0_22  
  3. export JRE_HOME=JAVA_HOME/jre  
  4. export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH  
  5. export SDK_HOME=/work/froyo/out/host/linux-x86/sdk/android-sdk_eng.root_linux-x86/tools  
  6. export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH:$SDK_HOME:/work/froyo/out/host/linux-x86/bin  
  7. export ANDROID_PRODUCT_OUT=/work/froyo/out/target/product/generic 

(2)安装(apt-get install xxx)

  1. git-core gnupg flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl libncurses5-dev zlib1g-dev 

(3)下载源码(网上有详细说明)

(4)编译源码

  1. $ export ANDROID_JAVA_HOME=$JAVA_HOME  
  2. $ make 

查看编译过程中是否有错误,一般情况不会有错误,如果有错误可能是某个依赖包没有安装,安装提示的依赖包后重新make

(5)生成sdk

  1. $ make PRODUCT-sdk-sdk ###使用make sdk 会出现R文件不能自动生成的问题 

编译完成后会在/work/froyo/out/host/linux-x86/sdk/目录生成sdk

(6)编译完成之后查看是否编译成功

  1. $ . build/envsetup.sh  
  2. $ emulator& //启动模拟器,如果能成功启动代表编译成功。 

2、Android Eclipse 中进行调试

(1)拷贝development/ide/eclipse/.classpath到源代码根目录并修改.classpath

删除下面两行

  1. <classpathentry kind="lib" path="out/target/common/obj/JAVA_LIBRARIES/google-common_intermediates/javalib.jar"/> 
  2. <classpathentry kind="lib" path="out/target/common/obj/JAVA_LIBRARIES/gsf-client_intermediates/javalib.jar"/> 

添加

  1. <classpathentry kind="lib" path="/work/froyo/out/target/common/obj/JAVA_LIBRARIES/android-common_intermediates/javalib.jar"/> 

(2)在eclipse中修改

(2.1)通过create project from existing source 导入froyo源代码

(2.2)展开packages/providers/CalendarProvider/src

(2.3)展开包: com.android.providers.calendar

(2.4)右键点击包com.android.providers.calendar

(2.5)选择 "new file"

(2.6)在对话框中选择点击  "Advanced >>" 按钮, 可以看到"Link to file in the file system" checkbox,

(2.7)勾选上 checkbox.  这时 "Browse..." 可用.

(2.8)点击 "Browse..." 按钮,选择EventLogTags.java (e.g.,out/target/common/obj/APPS/CalendarProvider_intermediates/src/src/com/android/providers/calendar/EventLogTags.java)

(2.9)点击OK

(2.10)点击 Finish (in "New File")

(3)同样的方式修改com.android.providers.contacts的问题

3、调试

在IDE(eclipse)中修改源代码后在shell中编译运行

源码自带编译工具

先在Eclipse Android 源码根目录执行 . build/envsetup.sh 再通过m/mm/mmm进行编译

 

  1. - m:       Makes from the top of the tree.  
  2. - mm:      Builds all of the modules in the current directory.  
  3. - mmm:     Builds all of the modules in the supplied directories. 
  1. $cd /path/to/android/root  
  2. $. build/envsetup.sh  
  3. $lunch 1   # 初始化模拟器等  
  4. $make/m/mm/mmm      #   
  5. $emulator&  # you should see a GUI picture of a phone  
  6. $ddms& #调试工具 

(1)修改APK应用:在packages中的应用如果修改后都可以单独编译。先执行

  1. $. build/envsetup.sh #初始化  
  2. $mmm packages/providers/ContactsProvider/  
  3. ##用mm/mmm来编译生成的.apk并不会打包到system.img中,需要我们手动通过make snod把system文件夹打包为system.img  
  4. ##可以使用make snod将模块打包到system.img中,也可以使用 adb install *.apk安装 

注:通过mmm packages/providers/ContactsProvider/ 编译后的apk在 out/target/product/generic/system/app

这时候通过 adb install out/target/product/generic/system/app/xxx.apk 安装你刚修改过的apk就可以在模拟器上看到你修改的效果了。

(2)修改framework:如果在Contacts.java中修改了,必须重新编译下framework。先执行

  1. $ . build/envsetup.sh #初始化 

#网上有的说要执行 make update-api,实际上直接make PRODUCT-sdk-sdk就可以将修改后的framework编译到sdk中。 #编译framework后,那些修改了的应用可以不用再单独编译了。4~6分钟

  1. $ make PRODUCT-sdk-sdk #重新生成SDK 10~20分钟. 

小结:Eclipse Android源码工程调试的内容介绍完了,希望通过Eclipse Android源码内容的学习能对你有所帮助。

责任编辑:zhaolei 来源: 互联网
相关推荐

2012-05-02 11:21:41

Eclipse调试Ant

2013-05-28 10:52:07

Android开发移动开发移动应用

2011-09-13 17:03:16

Eclipse And

2009-06-03 16:12:41

Eclipse开发AnAndroidEclipse

2012-02-02 15:14:29

Node.js

2009-06-03 14:42:21

Eclipse调试调试Java程序

2009-06-02 10:02:50

eclipse jboeclipse jbojboss for e

2010-05-08 17:22:03

Black Berry

2012-02-20 14:41:30

JavaPlay Framew

2023-07-10 07:40:14

2010-07-11 00:24:50

EclipsePHPPDT

2020-05-25 15:40:23

IntelliJ IDEclipse强Java

2013-04-10 09:46:29

EclipseJava

2011-02-22 16:09:53

Eclipse调试

2022-07-31 19:57:26

react项目VSCode

2022-12-05 08:41:39

Redis调试环境源码

2017-05-22 16:32:53

AndroidFrameworkManifest

2011-02-23 09:35:25

Eclipse远程调试

2013-07-29 14:23:55

Eclipse开发环境Eclipse开发环境

2017-02-08 12:59:32

AndroidFramework调试
点赞
收藏

51CTO技术栈公众号