首页
社区
课程
招聘
[原创]Android源码分析工具及方法
发表于: 2014-1-2 09:32 47204

[原创]Android源码分析工具及方法

2014-1-2 09:32
47204

在对 Android 源码进行分析时,如果有得力的工具辅助,会达到事半功倍的效果。本文
介绍了一些在分析 Android 源码时使用的一些工具和方法,希望能够帮助到有需要的同学。

Eclipse

在 Android 应用程序开发过程中,一般会使用 Eclipse,当然 Google 在 2013 年也推出了
针对 Android 开发的 IDE 工具 Android Studio。借助于 Eclipse 可以更好的分析 Android 源码,
关于 Android 源码的下载和编译在此省略,网上有很多相关的教程,当然最好是参考 Google
官方的文档了,http://source.android.com/source/downloading.html 提供了从源码下载到编译运
行的所有步骤。在编译完 Android 源码后,可以将源码导入到 Eclipse 中方便后续的分析,具
体步骤如下(可参考《深入理解 Android 卷 II》P7-P8):


1. public class MainActivity extends Activity { 

2. @Override

3. protected void onCreate(Bundle savedInstanceState) {

4. super.onCreate(savedInstanceState);

5. setContentView(R.layout.activity_main);

6. ......

7.   }

8. }

  • Symbol:搜索符号,例如可以搜索类中的成员变量等,图 13 显示了通过 Symbol 搜索
  • WINDOW_HIERARCHY_TAG 的结果;
  • 将 Android 源码目录下/development/ide/eclipse/.classpath 复制到 Android 源码根目录;
  • /development/ide/eclipse/.classpath 文件供 Eclipse 使用,文件内容是源码目录中各个模块
  • 在 Eclipse 中单击 File -> New -> Java Project,在弹出的窗口中填写 Project Name 并去除
  • 在.classpath 文件中会有一些指向/out/target/...的路径,而 out 目录是在对 Android
  • 导入源码前请取消 Eclipse 的自动编译选项(Android 源码文件很多,编译一遍比较耗
  • 14 - Android 4.0.1
  • 10 - Android 2.3.4
  • 9 - Android 2.3
  • 8 - Android 2.2
  • 7 - Android 2.1

  • [培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

    上传的附件:
    收藏
    免费 5
    支持
    分享
    最新回复 (23)
    雪    币: 185
    活跃值: (25)
    能力值: ( LV2,RANK:10 )
    在线值:
    发帖
    回帖
    粉丝
    2
    XRef 这网站用的非常多, 在群里也多次发过链接。
    2014-1-2 09:34
    0
    雪    币: 427
    活跃值: (64)
    能力值: ( LV2,RANK:10 )
    在线值:
    发帖
    回帖
    粉丝
    3
    感谢,收藏了
    2014-1-2 09:38
    0
    雪    币: 341
    活跃值: (138)
    能力值: ( LV7,RANK:110 )
    在线值:
    发帖
    回帖
    粉丝
    4
    路过 看看
    2014-1-2 10:36
    0
    雪    币: 208
    活跃值: (40)
    能力值: ( LV3,RANK:20 )
    在线值:
    发帖
    回帖
    粉丝
    5
    多谢楼主分享!
    2014-1-2 11:22
    0
    雪    币: 12332
    活跃值: (5103)
    能力值: ( LV2,RANK:10 )
    在线值:
    发帖
    回帖
    粉丝
    6
    速度来收藏了,多谢楼主
    2014-1-2 11:49
    0
    雪    币: 259
    活跃值: (11)
    能力值: ( LV2,RANK:10 )
    在线值:
    发帖
    回帖
    粉丝
    7
    Mark  谢谢分享
    2014-1-2 13:44
    0
    雪    币: 90
    活跃值: (92)
    能力值: ( LV5,RANK:60 )
    在线值:
    发帖
    回帖
    粉丝
    8
    今天上看雪好慢。
    2014-1-2 15:43
    0
    雪    币: 200
    活跃值: (10)
    能力值: ( LV2,RANK:10 )
    在线值:
    发帖
    回帖
    粉丝
    9
    收藏

    收藏了,大神
    2014-1-2 16:30
    0
    雪    币: 216
    活跃值: (55)
    能力值: ( LV2,RANK:10 )
    在线值:
    发帖
    回帖
    粉丝
    10
    学习~~
    2014-1-3 09:30
    0
    雪    币: 269
    活跃值: (25)
    能力值: ( LV7,RANK:100 )
    在线值:
    发帖
    回帖
    粉丝
    11
    wine+src insight~~
    2014-1-3 15:32
    0
    雪    币: 293
    活跃值: (225)
    能力值: (RANK:250 )
    在线值:
    发帖
    回帖
    粉丝
    12
    恩,再加上其他小伙伴提供的工具:
    1. vim+ctags+cscope
    2. Understand http://www.scitools.com/index.php,这个可以根据源码生成调用图
    2014-1-3 19:25
    0
    雪    币: 245
    活跃值: (13)
    能力值: ( LV2,RANK:10 )
    在线值:
    发帖
    回帖
    粉丝
    13
    学习了 谢谢
    2014-1-6 10:23
    0
    雪    币: 37
    活跃值: (10)
    能力值: ( LV2,RANK:10 )
    在线值:
    发帖
    回帖
    粉丝
    14
    值得收藏,
    2014-1-7 21:09
    0
    雪    币: 109
    活跃值: (493)
    能力值: ( LV12,RANK:220 )
    在线值:
    发帖
    回帖
    粉丝
    15
    楼主很细心,希望能和楼主共同学习。
    2014-1-21 16:30
    0
    雪    币: 101
    活跃值: (10)
    能力值: ( LV2,RANK:10 )
    在线值:
    发帖
    回帖
    粉丝
    16
    多谢分享。。正想通过android学习下整个操作系统。。这些好方法完全满足善其事利其器的要求啊
    2014-2-8 10:26
    0
    雪    币: 1
    活跃值: (10)
    能力值: ( LV2,RANK:10 )
    在线值:
    发帖
    回帖
    粉丝
    17
    收藏了谢谢
    2014-2-8 10:44
    0
    雪    币: 34
    活跃值: (11)
    能力值: ( LV2,RANK:10 )
    在线值:
    发帖
    回帖
    粉丝
    18
    学习学习,支持一下
    2014-2-10 11:48
    0
    雪    币: 1462
    活跃值: (12)
    能力值: ( LV2,RANK:10 )
    在线值:
    发帖
    回帖
    粉丝
    19
    mark!
    2014-2-11 12:30
    0
    雪    币: 201
    活跃值: (10)
    能力值: ( LV2,RANK:10 )
    在线值:
    发帖
    回帖
    粉丝
    20
    谢谢分享,只用过eclipse和AndroieXRef
    2014-2-26 13:32
    0
    雪    币: 1585
    活跃值: (182)
    能力值: ( LV2,RANK:10 )
    在线值:
    发帖
    回帖
    粉丝
    21
    支持,很好
    2014-3-6 14:44
    0
    雪    币: 200
    活跃值: (10)
    能力值: ( LV2,RANK:10 )
    在线值:
    发帖
    回帖
    粉丝
    22
    楼主很细心,希望能和楼主共同学习
    2014-3-12 18:28
    0
    雪    币: 191
    活跃值: (195)
    能力值: ( LV8,RANK:130 )
    在线值:
    发帖
    回帖
    粉丝
    23
    楼主按照你的eclipse的那个办法,Ctrl 键+鼠标左键或者F3对于java部分的代码确实可以转到函数定义和实现的地方,,但是对于jni的c++代码里面的函数不能看到啊,提示Could not find symbol "XXX" in index   ,网上搜了一堆办法都不能解决
    2016-9-18 11:40
    0
    雪    币: 38
    活跃值: (11)
    能力值: ( LV2,RANK:10 )
    在线值:
    发帖
    回帖
    粉丝
    24
    收藏
    2017-3-30 09:22
    0
    游客
    登录 | 注册 方可回帖
    返回
    //