Android-0.Android源码相关简介

Android Studio下查看源码

下载源码

点击Settings–>Android SDK–>勾选Show Package Details,这时就可以看到Sources for Android XX,勾选下载即可。

在这里插入图片描述
下载的源码位于Sdk\sources\android-27下。

关联源码

找到C:\Users\{USER_NAME}\.AndroidStudio{version}\config\options\jdk.table.xml ,比如我这里是:
C:\Users\Administrator\.AndroidStudio3.3\config\options\jdk.table.xml, 打开搜索Android API 27 Platform,在<sourcePath>配置路径:

<sourcePath>
      <root type="composite">
            <root url="file://$USER_HOME$/AppData/Local/Android/Sdk/sources/android-27" type="simple" />
      </root>
</sourcePath>

重启一下Android Studio即可。

如果在系统函数中跳转遇到红色的显示类,可以尝试点击File菜单下面的Invalidate Caches/Restart,选择Invalidate and Restart即可。

这种方式下载的源码,只适用于google这种未修改rom的手机,可以直接下断点,如果像小米这种深度rom的手机,很多断点是无效的。

AOSP源码

很多时候,会遇到

throw new RuntimeException("Stub!");

表示实际运行时的逻辑会由Android ROM里面相同的类代替执行。

当你需要的源码在Android SDK Source中找不到的时候,就有必要去AOSP(Android Open Source Project)项目里面找了。
chrome有个扩展叫:Android SDK Search
在这里插入图片描述
安装后,到 Android开发者官网 查看API时,这个扩展可以在API类名旁边显示一个跳转链接,用于跳转到AOSP中对应的类的源码,方便查看源码。
在这里插入图片描述

另外在浏览器输入框输入 ad + tab,注意是ad字母后输入tab键,之后输入要查询的API, 就会进入Android SDK搜索功能:
在这里插入图片描述
这时,你在AOSP查看代码时,还可以返回上一级看到同目录的其他源码在这里插入图片描述

另外还有个网站 http://androidxref.com 可以快速在线查询,跳转,非常方便

Android目录分类

AOSP源码很多,所以 最好分类查看:
https://developer.android.com/guide/platform?hl=zh-cn 上有平台构架图:
在这里插入图片描述
对应AOSP的目录结构:
第一层:应用程序层(applications)对应根目录下platform/packages/apps
第二层:应用程序框架层(application framework)对应根目录下的platform/frameworks
第三层:运行库层包括运行库(libraries)和android运行时环境(android runtime)
运行库(libraries)对应目录很多,其中libc库对应的是platform/bionic
android运行时环境(android runtime),Core Libraries 对应根目录下的platform/libcoreDalvik Virtual Machine 对应根目录下的platform/dalvik ,不过现在已经是ART了,所以目录是platform/art
第四层:Linux内核层对应根目录下的kernel,每一个目录对应了一个kernel的版本
三、四层中间还有个硬件抽象层(HAL)对应根目录下的platform/hardware

packages 目录
|——apps//应用程序库
|——|——BasicSmsReceiver//基础短信接收
|——|——Bluetooth//蓝牙
|——|——Browser//浏览器
|——|——Calculator//计算器
|——|——Calendar//日历
|——|——Camera//照相机
|——|——CellBroadcastReceiver//单元广播接收
|——|——CertInstaller//被调用的包,在Android中安装数字签名
|——|——Contacts//联系人
|——|——DeskClock//桌面时钟
|——|——Email//电子邮件
|——|——Gallery//图库
|——|——Gallery2//图库2
|——|——HTMLViewer//HTML查看器
|——|——KeyChain//密码管理
|——|——Launcher2//启动器
|——|——Launcher3//启动器
|——|——Music//音乐
|——|——MusicFX//音频增强
|——|——PackageInstaller//包安装器
|——|——Phone//电话
|——|——Protips//主屏幕提示
|——|——Provision//引导设置
|——|——QuickSearchBox//快速搜索框
|——|——Settings//设置
|——|——SoundRecorder//录音机
|——|——SpareParts//系统设置
|——|——Tag//标签
|——|——WallpaperPicker
|——experimental//非官方的应用程序
|——|——BugReportSender//Bug的报告程序
|——|——Bummer
|——|——CameraPreviewTest//照相机预览测试程序
|——|——DreaamTheater
|——|——ExampleImsFramework
|——|——LoaderApp
|——|——NotificationLog
|——|——NotificationShowcase
|——|——procstatlog
|——|——RpcPerformance
|——|——StrictModeTest
|——inputmethods//输入法
|——|——LatinIME//拉丁文输入法
|——|——OpenWnn//OpenWnn输入法
|——|——PinyinIME//拼音输入法
|——providers//提供器
|——|——ApplicationsProvider//应用程序提供器,提供应用程序所需的界面
|——|——CalendarProvider//日历提供器
|——|——ContactsProvider//联系人提供器
|——|——DownloadProvider//下载管理提供器
|——|——MediaProvider//媒体提供器
|——|——TelephonyProvider//彩信提供器
|——|——UserDictionaryProvider//用户字典提供器
|——screensavers//屏幕保护
|——|——Basic//基本屏幕保护
|——|——PhotoTable//照片方格
|——|——WebView//网页
|——wallpapers//墙纸
|——|——Basic//系统内置墙纸
|——|——Galaxy4//S4内置墙纸
|——|——HoloSpiral//手枪皮套墙纸
|——|——LivePicker// 选择动态壁纸
|——|——MagicSmoke// 壁纸特殊效果
|——|——MusicVisualization// 音乐可视化,图形随音乐而变化
|——|——NoiseField
|——|——PhaseBeam

frameworks/base目录
|——api
|——cmds //Android中的重要命令(am,app_proce等)
|——core //核心库
|——data //声音字体等数据文件
|——docs //文档
|——drm //数字版权管理
|——graphics //图形图像
|——keystore //数字签名证书相关
|——libs //库
|——location //地理位置
|——media //多媒体
|——native //本地库
|——nfc-extras //NFC相关
|——obex //蓝牙传输
|——opengl //OpenGL相关
|——packages //设置,TTS,VPN程序
|——sax //XML解析器
|——services //Android服务
|——telephony //电话相关
|——test-runner //测试相关
|——tests //测试相关
|——tools //工具
|——wifi //无线网络

参考:
阅读ANDROID源码的一些姿势
https://github.com/foxleezh/AOSP

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值