您的位置:首页 > 移动开发 > Android开发

如何编译android 4.1 的源码并在android的ADT里面调试framework相关的代码

2014-05-06 12:15 429 查看
步骤:

首先获得android 4.1.1的源码,并按照下面网页的说明进行编译。
http://blog.csdn.net/hudan2714/article/details/7926924
讲了如何编译以及对可能产生的问题所列举的对策。

主要的命令:

1.source build/envsetup.sh  这是向系统导入不同的厂商版本,并添加m命令

2.lunch 选择编译厂商版本

3. mm  编译版本

别忘了配置环境变量:

export ANDROID_BUILD_TOP=/home/qixinmin/andriod/android4.1.1

export ANDROID_PRODUCT_OUT=/home/qixinmin/andriod/android4.1.1/out/target/product/generic

export PATH=$PATH:/home/qixinmin/andriod/android4.1.1/out/host/linux-x86/bin

编译完以后把生成的

home/qixinmin/andriod/android4.1.1/out/target/product/generic 里面的三个image(ramdisk.img, system.img, userdata.img )

复制到

 home/qixinmin/eclipse/adt-bundle-linux-x86_64-20140321/sdk/system-images/android-19/armeabi-v7a 目录下(上面的路径或根据你的ADT版本的不同可能有所不同,请自行确认)

这样的话就可以让ADT开发环境里面直接启动你刚刚编译好的image, 可以在模拟器里面setting看到你所看到的android的版本



ADT环境的配置:
1. 复制{android源码目录}/development/ide/eclipse/.classpath到{android源码目录}下的.classpath
2. 打开ADT,选择导入已有项目,目录选择{android的源码目录}
3. 打开以后可能出现下面的问题

Project'gingerbread' is missing required library:'out/target/common/obj/JAVA_LIBRARIES/google-common_intermediates/javalib.jar'

Project'gingerbread' is missing required library:'out/target/common/obj/JAVA_LIBRARIES/gsf-client_intermediates/javalib.jar'
可以参照http://blog.csdn.net/yjkwf/article/details/7162873里面的解决方案

4.
如何调试:

http://book.douban.com/people/RiaSakurai/annotation/5351836/

设置步骤是:

1.先打开模拟器,并打开要调试的程序(这样DDMS中才能看到该程序包)
2.启动DDMS,选中需要调试的程序
3.切换到java界面,在项目上点击右键,执行Debug,  注意首先需要设置Config(设置端口8700和相关参数),然后再执行debug,此时如果切换到DDMS窗口,可以看到选中要调试的程序包前面自动有一个小虫子图标,这时候再在模拟器上操作,一般都是可以成功进入debug窗口跟踪调试的。




在DDMS 透视图下面才能看到下面的界面
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  framework 调试 android