阅读源码很枯燥,如果能单步调试岂不是能使逻辑更清晰,本文章讲如何调适android framework。本文使用的环境是ubuntu 14.04,jdk1.6。Android4.4.2源码(有兴趣可以去下载更新版本的代码,其他版本源码编译需要的jdk版本不同,请配置合适的jdk),Android Studio调试其他版本源码framework同理。

如已经编译过源码请跳过1,2步骤。

1.下载android源代码

官网下载https://source.android.com/source/downloading.html(需要,安装git,repo)。
国内网盘下载http://blog.csdn.net/ilittleone/article/details/6823441

2.编译android源码

官网https://source.android.com/source/building.html
步骤:
a.初始化环境,在源码目录中执行
source build/envsetup.sh或者. build/envsetup.sh
b.选择build类型
lunch aosp_arm-eng
有三种类型:user,userdebug ,eng
这里选择eng
c.开始编译
make -j4
j后边的数字是使用几个线程编译,根据自己cpu配置自行决定,一半为核心数目2倍。
然后就是漫长等待,中间出现各种错误,自行网上搜索解决,大多都是缺少各种配置环境,挨个安装就好。

3.生成android.ipr和android.iml文件

进入Android 源码根目录
执行
mmm development/tools/idegen/
这行命令的意思是编译idegen这个项目,生成idegen.jar文件.生成成功后,会显示这个jar包的位置,并显示 #### make completed successfully
然后执行
sh ./development/tools/idegen/idegen.sh
这行命令的意思是生成对应的文件:android.iws, android.ipr, android.iml .

这里写图片描述

4.android studio导入源码

生成上述对应的文件后,打开Android Studio,选择打开一个现有的Android Studio项目,选择Android源码的根目录,导入即可(起作用的是android.irp文件).在配置sdk版本之后就可以查看Android 源码了.
导入过程比较慢,可以打开android.iml参考网上文章过滤掉一些模块。

使用Android Studio调试Android Framework代码_第1张图片

5.调试代码

Run->Attach debugger to Android process选择要调试的程序

这里写图片描述

选择要调试的程序。

使用Android Studio调试Android Framework代码_第2张图片

这里选择了自己的一个程序,来调试ListView,虚拟机中国年滑动下ListView,编辑器中进入了断点,这样就可以开开心心的,一步一步研究android的一些源码的原理

使用Android Studio调试Android Framework代码_第3张图片

注意:
调试的时候,国产手机有的断点进不去,可能是厂商修改了framework的原因(具体有待考证)所以我这里使用的是虚拟机。

参考:

Android官网http://source.android.com
http://www.jianshu.com/p/c85984cf99e2

更多相关文章

  1. Android源码阅读分析:从Activity开始(二)——加载布局
  2. Android打包成jar文件方法总结
  3. Android 9.0 Launcher源码分析(一)——系统启动Launcher流程
  4. Android常用Layout源码总结—FrameLayout
  5. Linux手机打电话代码分析
  6. android 应用程序包文件 (APK)
  7. Android 动态加载布局文件
  8. Android事件分发机制完全解析,带你从源码的角度彻底理解

随机推荐

  1. 10个android开发必备的开源项目
  2. Android编译系统
  3. Android的NDK开发(1)————Android(安
  4. 这些年正Android(安卓)- 大纲
  5. Android(安卓)资源文件中的符号含义与说
  6. android去除ImageButton白色边框
  7. Android(安卓)完美扩大ImageView的点击范
  8. listview超强优化
  9. Android(安卓)设置默认锁屏壁纸接口
  10. 百度地图 Android(安卓)SDK 技术详解集锦