`
Coding.Ghost
  • 浏览: 19160 次
  • 性别: 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源码 【长青说安卓】系列专题(七):Eclipse王者归来——如何使用Eclipse调试Android源码

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

    源码参考,欢迎下载

    android 1.6 eclipse源码

    android 1.6 eclipse源代码 eclipse调试出现source not found时将该文件加入路径即可

    vs eclipse 联机调试ndk

    使用vs与eclipse 进行 ndk源码级调试 当然网络上也有介绍,我只是做了一个简单总结,把工具跟使用方法写到了一起

    Android Platform签名提取apk签名 用于Android studio,eclipse调试

    具有apk源码,同样是具备系统权限的,当我们将apk源码导入Eclipse中,使用 Run as --&gt; Android application 编译安装APK时, Eclise同样会提示场景一的错误信息,原因也是一样。我们同样可以将Eclipse生成的apk按照...

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

    android手机 OTG功能调试usb串口的demo源码程序,可在android studio下进行运行和调试,eclipse环境需要自己去配置依赖工程,依赖工程见android studio环境

    android 输入法源码 eclipse可以编译

    本apk 是在安卓2.2SDK 编译.可以运行在大部分机器上. ...本人花费大量时间 移植到 window上jave 环境 Eclipse 上编译, 而且JNI 都被修改了,提供源码,可以自己编译. window下开发调试非常方便. 附带编译截图.

    蓝牙串口助手(Android Studio源码)

    本软件为蓝牙串口通信工具,支持蓝牙从模式和主模式,可进行蓝牙串口通信测试。能连接单片机及PC的蓝牙串口。 可用于硬件的串口蓝牙模块(TTL)通信。 软件功能: 1、搜索蓝牙设备 ...2、接收显示数据与发送数据 ...

    android 2.3.1 source 源码

    android 2.3.1 source 源码,用7zip解压。 解压为 android-sdk-windows\platforms\android-9\sources\ ...可解决 eclipse 调试时 android 项目时报“Source not found”问题。也方便查看 android 源代码。

    VLC Media Player Android 源码 (可在eclipse中调试 截止2015年1月18日最新版)

    VLC Media Player Android 源码 (可在eclipse中调试 截止2015年1月18日最新版) 讲解博客 : http://blog.csdn.net/shulianghan/article/details/42707293

    《Android应用开发详解》源码

    《Android应用开发详解》源码,完整版,值得看一看。 《Android核心技术和开发...然后会向读者讲解如何搭建.Android的开发环境、如何在Eclipse中创建一个项目,以及如何使用Android平台提供的工具调试和监控应用程序。

    android 1.5 source 源码

    android 1.5 source 源码,用7zip解压。 解压为 android-sdk-windows\platforms\android-3\sources\ ...可解决 eclipse 调试时 android 项目时报“Source not found”问题。也方便查看 android 源代码。

    Android Cocos2dx 之用eclipse开发调试c++

    NULL 博文链接:https://cindy-lee.iteye.com/blog/1718657

    android 2.3.3 source 源码

    android 2.3.3 source 源码,用7zip解压。 解压为 android-sdk-windows\platforms\android-10\sources\ ...可解决 eclipse 调试时 android 项目时报“Source not found”问题。也方便查看 android 源代码。

    详解如何使用Android Studio 进行NDK开发和调试

    尽管Android Studio已经越来越流行了,但很多人还是习惯于Eclipse或源码环境下开发JNI应用。个人认为使用Android Studio作NDK开发是必然趋势,所以本文将简单介绍如何在Android Studio上实现NDK开发。 简介 JNI JNI ...

    Android飞机战斗游戏源码

    通过整合多种手机应用的开发包(SDK)及对应的Eclipse Plugin、跨平台中间件、中国移动开发者社区服务件,支持HTML5跨平台开发,原有Java跨平台插件支持Android、Symbian、Kjava的跨平台和原生开发,已覆盖Android、...

    疯狂Android讲义源码

     1.3.3 使用DDMS进行调试 15  1.3.4 Android Debug Bridge(ADB)  的用法 16  1.3.5 使用DX编译Android应用 18  1.3.6 使用Android Asset Packaging  Tool(AAPT)打包资源 19  1.3.7 使用mksdcard管理虚拟...

    linphone-android项目导入eclipse可直接运行20150403整理

    研究SIP通讯的可以想在看看,linphone-android源码,导入eclipse即可运行调试

    Android4.0.3 Launcher代码Eclipse运行打包

    项目导入使用Import-&gt;General-&gt;Existing Projects into Workspace,保证配置一样 详情请参考:http://blog.csdn.net/you_and_me12/article/details/12101071

    Android应用源码瀑布流美甲应用项目例子

    本来项目是有侧边栏菜单的,不过我用eclipse编译了一下功能竟然没有了,而且也神奇的不报错。需要的朋友可以自行下载调试一下。另外项目中的百度地图key失效了,需要替换自己在百度地图申请的key。library作为工程...

Global site tag (gtag.js) - Google Analytics