Android Studio 阅读 frameworks/base 下的代码
从网上搜的方案都是生成 android.ipr,但是这个需要整编,整编一次比较费时费劲,所以想了个巧招
首先用 Android Studio 打开 frameworks/base,其文件夹目录大概形如下:
├── Android.bp
├── Android.mk
├── api 全是xml文件,定义了API
├── cmds android中的重要命令(am, app_proce等)
├── core framework核心--框架组件
├── data 资源:声音字体视频软盘等数据文件
├── docs 项目说明文档
├── drm 数字版权管理
├── graphics 图形图像
├── keystore 数字签名相关
├── libs 库信息(界面,存储,usb)
├── location 地理位置信息
├── media 手机媒体管理(音频视频)
├── native 本地方法实现(传感器,输入,界面,窗体,存储...)
├── nfc-extras 近场通讯NFC相关
├── obex 蓝牙传输
├── opengl 2D,3D图形绘制
├── packages 设置、TTS,VPN程序
├── proto 协议框架
├── rs 资源框架
├── samples实例
├── sax xml解析器
├── services 基于手机的服务(复制粘贴,输入输出,手势,wifi)
├── telecomm通信框架
├── telephony 电话相关(拨打接听电话,发送接受短信)
├── test-runner 运行测试
├── tests 自带实例测试
├── tools 自带工具(打包,布局)
└── wifi 无线网络
经常需要查看的是 core 目录,和 services/core 目录,以这两个目录为例
打开用 Android Studio 打开 frameworks/base 后,点击 File -> Project Structure ,选择 Modules tab,先将 base Module 删掉
再点击 add -> Import Module
选择 frameworks/base 下面的 core 目录,弹出窗口中选择第一个,点击 next
在下面的窗口中,只选择 java 就够用
之后一路 next 即可
点击 OK 即可
这之后 frameworks/base/core 下面的代码就可以相互跳转了,但是 AIDL 接口类型因为未编译过所以无法识别,这是一个小小的缺点,只能通过全局搜索来解决
同样的操作,可以把 frameworks/base/services/core 也添加进来,然后再配一下依赖
frameworks/base/services/core 依赖 frameworks/base/core,Module SDK 最好选择 JAVA 的 SDK
配完之后,重启一下 Android Studio,File -> Invalidate Caches
其他模块也可以按需用上面的方法配置