`
Coding.Ghost
  • 浏览: 19840 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Android Eclipse 源码工程调试

阅读更多

 

Android Eclipse 源码工程 调试

转载自CSDN virus026的专栏

 

 

1, ubuntu 下源码编译
最好切换到root用户下进行操作
$ sudo -s
1.1,下载jdk1.5 并安装(下载自解压版本并设置环境变量)
编辑/root/.bashrc 添加
#set java environment
export JAVA_HOME=/work/jdk1.5.0_22
export JRE_HOME=JAVA_HOME/jre
export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export SDK_HOME=/work/froyo/out/host/linux-x86/sdk/android-sdk_eng.root_linux-x86/tools
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH:$SDK_HOME:/work/froyo/out/host/linux-x86/bin
export ANDROID_PRODUCT_OUT=/work/froyo/out/target/product/generic
1.2,安装(apt-get install xxx) git-core gnupg flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl libncurses5-dev zlib1g-dev
1.3,下载源码(网上有详细说明)
1.4,编译源码
$ export ANDROID_JAVA_HOME=$JAVA_HOME
$ make
查看编译过程中是否有错误,一般情况不会有错误,如果有错误可能是某个依赖包没有安装,安装提示的依赖包后重新make

1.5,生成sdk
$ make PRODUCT-sdk-sdk ###使用make sdk 会出现R文件不能自动生成的问题
编译完成后会在/work/froyo/out/host/linux-x86/sdk/目录生成sdk
1.6,编译完成之后查看是否编译成功
$ . build/envsetup.sh
$ emulator& //启动模拟器,如果能成功启动代表编译成功。

2.Android 在eclipse中进行调试
2.1 拷贝development/ide/eclipse/.classpath到源代码根目录并修改.classpath
删除下面两行
<classpathentry kind="lib" path="out/target/common/obj/JAVA_LIBRARIES/google-common_intermediates/javalib.jar"/>
<classpathentry kind="lib" path="out/target/common/obj/JAVA_LIBRARIES/gsf-client_intermediates/javalib.jar"/>
添加 <classpathentry kind="lib" path="/work/froyo/out/target/common/obj/JAVA_LIBRARIES/android-common_intermediates/javalib.jar"/>
还要把classpath中指定的所有与 编译过的源码拷贝到相应路径下 


2.2,在eclipse中修改
2.2.1. 通过create file from existing source 导入froyo源代码
2.2.2. 展开packages/providers/CalendarProvider/src
2.2.3. 展开包: com.android.providers.calendar
2.2.4. 右键点击包com.android.providers.calendar
2.2.5. 选择 "new file"
2.2.6. 在对话框中选择点击  "Advanced >>" 按钮, 可以看到"Link to file in the file system" checkbox,
2.2.7. 勾选上 checkbox.  这时 "Browse..." 可用.
2.2.8. 点击 "Browse..." 按钮,选择EventLogTags.java (e.g.,out/target/common/obj/APPS/CalendarProvider_intermediates/src/src/com/android/providers/calendar/EventLogTags.java)
2.2.9. 点击OK
2.2.10. 点击 Finish (in "New File")
修改添加EventLogTags.java的package路径 
2.3 同样的方式修改com.android.providers.contacts的问题

3,调试

在IDE(eclipse)中修改源代码后在shell中编译运行
源码自带编译工具
先在android源码根目录执行 . build/envsetup.sh 再通过m/mm/mmm进行编译
- m:       Makes from the top of the tree.
- mm:      Builds all of the modules in the current directory.
- mmm:     Builds all of the modules in the supplied directories.

$cd /path/to/android/root
$. build/envsetup.sh
$lunch 1   # 初始化模拟器等
$make/m/mm/mmm      # 
$emulator&  # you should see a GUI picture of a phone
$ddms& #调试工具

启动emulator和ddms 

3.1 修改APK应用 :在packages中的应用如果修改后都可以单独编译。先执行 
$. build/envsetup.sh #初始化
$mmm packages/providers/ContactsProvider/
##用mm/mmm来编译生成的.apk并不会打包到system.img中,需要我们手动通过make snod把system文件夹打包为system.img
##可以使用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就可以在模拟器上看到你修改的效果了。

3.2 修改framework :如果在Contacts.java中修改了,必须重新编译下framework。先执行 
$ . build/envsetup.sh #初始化
#网上有的说要执行 make update-api,实际上直接make PRODUCT-sdk-sdk就可以将修改后的framework编译到sdk中。 #编译framework后,那些修改了的应用可以不用再单独编译了。4~6分钟
$ make PRODUCT-sdk-sdk #重新生成SDK 10~20分钟

分享到:
评论

相关推荐

    Eclipse王者归来——如何使用Eclipse调试Android源码

    【长青说安卓】系列专题(七):Eclipse王者归来——如何使用Eclipse调试Android源码 在Android开发领域,Eclipse曾是开发者的主要工具,尤其在早期,其强大的集成开发环境为开发者提供了便捷的代码编辑、构建和调试...

    Android源码apk settings调试

    下面将详细阐述如何在Eclipse环境下进行源码调试,并解决编译时可能出现的问题。 首先,由于Android系统源码编译出的apk直接加载到Eclipse时,可能会因为依赖关系和库文件问题导致大量的编译错误。为了解决这个问题...

    vlc android eclipse 工程

    VLC for Android Eclipse 工程是一个专为在Android平台上运行VLC媒体播放器而设计的开发项目,它基于Eclipse IDE进行构建。VLC是一款开源的、跨平台的多媒体播放器,支持各种视频和音频格式,以及网络流媒体。在这个...

    怎样使用Eclipse来开发Android源码

    1. **复制Eclipse工程配置文件**:将`.classpath`文件复制到Android源码的根目录下,并确保它具有可写权限。 ```bash cp development/ide/eclipse/.classpath ./ chmod u+w .classpath ``` 2. **调整Eclipse...

    android 1.6 eclipse源码

    总的来说,掌握Android 1.6在Eclipse中的源码调试技巧,不仅可以解决实际开发中的问题,还能提升我们的编程技能,深化对Android系统底层机制的理解。通过对源码的深入学习,开发者可以更好地适应Android的快速迭代,...

    Eclipse来开发Android源码

    通过以上步骤,你就可以在Eclipse中顺利地开发和调试Android源码了。记得定期更新SDK和Eclipse,以获取最新的特性和修复。同时,遵循最佳实践,如代码风格指南和组织导入,可以提高代码质量和团队协作效率。此外,...

    Android 4.0 Eclipse 源码

    总之,Android 4.0 Eclipse源码为开发者提供了一个深入学习和实践Android平台的机会。通过研究源码,开发者不仅可以提升自身技能,还能更好地理解和利用这个平台来创造创新的应用。同时,源码也是解决特定问题或优化...

    Android高级应用源码-蓝牙调试助手.rar

    这个源码包为你提供了深入了解Android蓝牙应用开发的机会,帮助你掌握如何在Android系统上实现蓝牙连接、数据传输以及调试功能。下面我们将详细探讨相关的知识点。 1. **Android Bluetooth API** Android提供了...

    Android4.4Eclipse关联源码

    通过Eclipse,开发者可以方便地进行代码编写、调试和构建Android应用程序。将Android 4.4源码与Eclipse关联,意味着开发者可以直接在IDE中浏览、搜索和修改源码,这极大地提高了开发效率和学习过程中的直观性。 要...

    android browser 源码直接导入eclipse中可以使用

    7. **调试技巧**:学习如何在Eclipse环境中调试Android源码,可以帮助开发者快速定位和解决问题,提高开发效率。 8. **版本兼容性**:Android Browser是早期版本的默认浏览器,源码可以帮助开发者了解不同Android...

    将Android_SystemUI源码工程导入Eclipse编译

    在Android开发社区中,经常会遇到需要将Android系统源码中的模块导入到Eclipse这样的IDE(集成开发环境)中的场景,以便于进行源码级别的调试或二次开发。本文档主要介绍如何将Android系统中的SystemUI模块导入到...

    获取android源码及在eclipse中查看源码

    ### 获取Android源码及在Eclipse中查看源码 #### 一、下载Android源码 在深入了解Android系统之前,获取其源代码是非常重要的一步。这不仅有助于开发者理解系统的内部工作原理,还能帮助他们在开发过程中遇到问题...

    Android 最简工程 Eclipse

    "Android 最简工程 Eclipse" 提供了一个简洁的基础框架,适用于那些希望快速创建一个新的Android项目进行调试的开发者。这个压缩包文件可能包含了基本的Android项目结构,使得开发者能够迅速开始编写代码和测试功能...

    eclipse查看android源码工程(附件)

    Eclipse作为一个经典的集成开发环境(IDE),曾经是Android开发者的主要工具,它提供了查看和调试Android源码的功能。本教程将详细介绍如何在Eclipse中配置和查看Android源码工程。 首先,我们需要获取Android源码...

    eclipse android4.4.2源码

    将压缩包文件解压到SDK目录下的`sources`文件夹后,意味着你已经准备好了本地源码环境,这使得在Eclipse中查看和调试源码变得方便快捷。 在Eclipse中,当你需要查看某个Android类的源码时,只需按住Ctrl键并点击该...

    android源码跟踪单步调试

    如果要在Eclipse环境中进行调试,你需要先将Android源码导入Eclipse项目。导入完成后,你可以在Eclipse中对源码进行操作。 当模拟器启动并运行后,你可以打开Eclipse中的DDMS(Dalvik Debug Monitor Service)视图...

    android 4.4 源码 eclipse 浏览

    7. **测试**:Android源码包含了大量单元测试和集成测试,例如`test`目录下的代码,这对于理解系统行为和调试很有帮助。 通过以上步骤,开发者不仅能学习到Android 4.4的具体实现,还能掌握更高级的系统级编程技巧...

    Eclipse跟踪调试Android源代码

    在Android应用开发中,Eclipse是一款常用的集成开发环境(IDE),它提供了强大的代码编辑、构建、测试和调试功能。本文将详细介绍如何使用Eclipse来跟踪和调试Android源代码,包括应用层和框架层,这对于提升开发...

    android手机 OTG功能调试usb串口的demo源码程序,可在android studio运行调试

    这个【标题】提到的是一个用于调试USB串口的Android应用的源码示例,适配了Android Studio开发环境。下面将详细介绍这个项目的相关知识点。 1. **Android OTG功能**: - OTG功能是Android系统对USB接口的一种扩展...

    android 源码 (可与eclipse关联)

    "android 源码 (可与eclipse关联)" 提供的源码库允许开发者直接在Eclipse集成开发环境中(IDE)进行查看和研究,这极大地便利了代码理解和调试。 1. **Android源码结构**: Android系统源码主要由以下几个部分组成...

Global site tag (gtag.js) - Google Analytics