news 2026/6/10 21:48:10

不只是代码:一场关于 AOSP 目录架构与网络服务的深度旅行

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
不只是代码:一场关于 AOSP 目录架构与网络服务的深度旅行

🏙️ 第一部分:AOSP 目录结构——Android 数字城市的“总体规划图”

想象一下,你要去一个从未去过的超级大城市(AOSP)。这个城市非常大,有几百万行代码。如果你没有地图,进去就会迷路。

这个城市的建设遵循一个非常严格的**“金字塔”逻辑**:

🏛️ 第一层:基石区 (system/,build/,hardware/)

这是城市的地基、水电厂和马路。

  • system/:这里是 C/C++ 代码的地盘。负责最底层的运行(就像城市的水电煤)。
  • build/:这是建筑局,负责怎么把一堆砖头(代码)盖成大楼(系统镜像)。
  • hardware/:这是接口区,负责让城市能适应不同的地质(不同的手机芯片,如高通、联发科)。
👑 第二层:中央政府 (frameworks/)

这是我们要重点参观的地方。这里是Java/Kotlin代码的地盘,是整个城市的“大脑”和“管理中枢”。

  • 所有你在写 App 时调用的ActivityViewService,都在这里实现。
  • 它就像是一个巨大的中央政府,管理着城市里的一切。
🏢 第三层:居民与商业区 (packages/)

这里是系统自带的应用。

  • Settings(设置):就像市政府的便民服务大厅。
  • Launcher(桌面):就像城市的主广场。
  • Mms(短信):就像城市的邮局。

🏣 第二部分:深入“中央政府” (frameworks/base)

既然我们要找的路径在frameworks/base/...下面,说明它是核心中的核心

进入frameworks/base,你可以把它想象成**“中央政府的主楼”**。这栋楼里有几个关键的部门:

目录名部门名称职责说明
core/基础教育部负责最基础的东西,比如String(字符串)、List(列表)等基础工具类。
cmds/命令执行部也就是我们常用的ampm等 ADB 命令的源码所在地。
libs/库管理部一些核心的原生库。
media/文化宣传部负责音乐、视频的播放。
services/**公共服务部这是重中之重!我们要找的“网络管理”就在这里面。

🚦 第三部分:揭秘“公共服务部” (services/)

services/目录是 Android 系统里最繁忙的地方。这里运行着所有你听说过的系统服务(SystemServer启动的那些服务)。

这里的逻辑是**“分权制衡”**。为了不让所有代码都挤在一起,政府把公共服务部分成了两类:

1. 核心大管家 (core/)

路径:frameworks/base/services/core/

  • 这里住着的是**“通用型”**的管家。
  • 它们负责那些谁都需要的基础服务,比如电源管理、电池统计、以及我们要找的网络流量统计
  • 特点:这些服务通常是跨领域的,不光是 Wi-Fi 用,移动数据、蓝牙网络都可能要用到。
2. 专项事务局 (wifi/,telephony/,usb/)
  • wifi/:专门只管 Wi-Fi 的连接、扫描、认证。
  • telephony/:专门只管打电话、发短信、SIM 卡。
  • usb/:专门只管 USB 连接。

💡 关键洞察
为什么网络相关的代码有的在core,有的在wifi

  • wifi/负责“怎么连上”网络(技术实现)。
  • core/net负责“连上后怎么管”(策略、统计、权限)。

📍 第四部分:精准定位目标办公室 (.../net)

现在,我们终于可以解读那个长长的路径了:

frameworks/base/services/core/java/com/android/server/net

把它翻译成人话就是:

  1. frameworks/base/:进入中央政府大楼。
  2. services/:找到“公共服务部”。
  3. core/:在公共服务部里,找到“核心大管家”办公室。
  4. java/.../net:在核心大管家的管辖范围内,有一个专门负责**“网络事务(Net)”**的小组。
🤝 这个小组具体是干什么的?

在这个net目录下,主要住着两个关键的“公务员”类:

  1. NetworkStatsService(流量统计员)

    • 它的任务是拿着一个小本本,记录每一个 App 用了多少流量。
    • 当你在“设置”里查看“流量使用情况”时,就是它在背后提供数据。
  2. NetworkPolicyManagerService(网络警察)

    • 它的任务是制定规则。
    • 比如:“这个 App 在移动数据下不允许后台联网”、“这个 App 是系统级白名单,随便用”。
    • 它负责执行 Android 的网络策略(NetPolicy)。

🚀 总结与学习建议

📌 总结

你看到的这个目录,是 Android 系统的网络交通指挥中心

  • 它不负责具体的修路(那是wifi/hardware/的事)。
  • 它负责统计车流量(流量统计)和制定交通规则(联网权限)。
🧭 如何快速熟悉 AOSP?

不要试图背诵所有目录。记住这三个“黄金路径”就能解决 90% 的问题:

  1. 找 App 界面代码-> 去packages/apps/(这里是 Settings、Launcher 的家)。
  2. 找 Java API 实现-> 去frameworks/base/core/(这里是 Activity、View 的家)。
  3. 找系统服务逻辑-> 去frameworks/base/services/(这里是各种 "Manager" 的家)。

希望这篇“通俗易懂详尽完美”的博客,能帮你彻底看懂 AOSP 的世界!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/10 11:52:57

寒假CSP信奥赛逆袭计划——C++学习全攻略

寒假CSP信奥赛逆袭计划——C学习全攻略 “寒假快到了,学CSP信奥赛的同学,你是不是觉得C难、算法枯燥、刷题没方向?别慌!这个寒假,正是你拉开差距、冲击C高分的黄金时间!我是专注信奥赛的王老师,…

作者头像 李华
网站建设 2026/6/10 14:56:55

VMWare Tools 灰色无法自动安装(二)

文章目录 接上一篇[VMware Tools灰色,无法直接安装解决办法【亲测有效】](https://blog.csdn.net/MelyLenient/article/details/109204228?spm=1001.2014.3001.5501) 安装后,无法自动挂载共享文件夹 已连接 接上一篇VMware Tools灰色,无法直接安装解决办法【亲测有效】 由…

作者头像 李华
网站建设 2026/6/10 14:35:59

微软承诺解决AI数据中心社区争议问题

微软公司今日宣布了一项名为"社区优先AI基础设施"的五点计划,旨在平息围绕其新建AI数据中心引发的社区愤怒情绪。这项举措是在大型科技公司面临日益严重的数据中心项目反对浪潮背景下推出的。为了满足耗电巨大的AI产品需求,科技公司的数据中心…

作者头像 李华
网站建设 2026/6/10 14:56:14

Python+Vue的私人定制装修设计系统 Pycharm django flask

这里写目录标题项目介绍项目展示详细视频演示技术栈文章下方名片联系我即可~解决的思路开发技术介绍性能/安全/负载方面python语言Django框架介绍技术路线关键代码详细视频演示收藏关注不迷路!!需要的小伙伴可以发链接或者截图给我 项目介绍 传统的装修…

作者头像 李华
网站建设 2026/6/9 22:46:26

EasyGBS算法算力平台在智慧安防视频监控中的应用实践

在数字化、智能化浪潮席卷全球的今天,传统安防体系正经历着深刻的变革。随着GB28181国家标准的全面推广和实施,视频监控系统的标准化、网络化、智能化已成为智慧安防建设的必然要求。EasyGBS作为GB28181的算法算力平台,不仅解决了海量视频资源…

作者头像 李华
网站建设 2026/6/10 14:57:44

基于uni-app的儿童安全教育平台

第三章 系统分析 3.1 系统设计目标 儿童安全教育平台主要是为了方便管理儿童安全教育的信息。也是为了更好的让管理员进行更好存储所有数据信息及快速方便的检索功能,对系统的各个模块是通过许多今天的发达系统做出合理的分析来确定考虑用户的可操作性,遵…

作者头像 李华