Android (AAOS) 13 编译中间产物(Wifi Jar)

Android 13 framework-wifi 编译产物

在 Android 13 (API 33) 及更高版本中,Wi-Fi 框架已完全模块化(Mainline Module)。其源码位于 packages/modules/Wifi,编译产物主要分布在 Soong 中间目录、APEX 软件包和系统镜像中。

1. 编译产物核心路径总览

产物类别 物理路径 (相对于 out/ 目录) 主要用途
Soong 中间产物 soong/.intermediates/packages/modules/Wifi/framework/framework-wifi/ 包含编译过程中的 .class、.dex 及未签名的 JAR。
模块 SDK 产物 soong/.intermediates/packages/modules/Wifi/framework/framework-wifi-module-sdk/ 供其他模块依赖的存根 (Stub) 库。
Target 预置产物 target/product/[device]/obj/JAVA_LIBRARIES/framework-wifi_intermediates/ 链接后的目标文件,用于最终镜像合成。
APEX 镜像文件 target/product/[device]/system/apex/com.android.wifi.apex Wi-Fi 模块的最终发布格式(压缩包)。

2. 详细产物结构解析

A. Soong 编译中间层 (Intermediates)

当你执行 m framework-wifi 时,这是最关键的目录:

out/soong/.intermediates/packages/modules/Wifi/framework/framework-wifi/android_common/

  1. javac/ :

    • framework-wifi.jar: 包含标准 Java 字节码 (.class 文件)。
    • 用于静态扫描或简单的代码逻辑分析。
  2. dex/ :

    • framework-wifi.jar: 包含经过 D8 转换后的 Dalvik 字节码 (classes.dex)。
    • 注意:这是真正运行在 Android 虚拟机上的代码格式。
  3. combined/ :

    • framework-wifi.jar: 整合后的 JAR 包,通常包含资源和代码,用于最终链接。

B. APEX 模块内路径

由于 Wi-Fi 是一个 Mainline 模块,它最终被封装在 com.android.wifi.apex 中。在设备运行或镜像挂载后,其路径如下:

  • 运行时路径 : /apex/com.android.wifi/javalib/framework-wifi.jar
  • 镜像构建路径 : out/target/product/[product]/system/apex/com.android.wifi/javalib/framework-wifi.jar

3. 关键文件作用说明

  • framework-wifi.jar: Wi-Fi 框架的核心实现。

  • framework-wifi.res.jar: (如果存在) 包含 Wi-Fi 相关的资源文件(如定义的 Overlay 属性)。

  • API 签名文件:

    • 位于 prebuilts/sdk/current/public/api/framework-wifi.txt。
    • 如果你修改了 framework-wifi 的 public 或 system 接口,编译会报错,提示你运行 m update-api 更新此处的文件。

4. 常用调试操作

如何快速查找刚编译出的 JAR 包?

如果你不确定具体目录名(有时会有变动),可以在根目录执行:

Bash

arduino 复制代码
find out/soong/.intermediates/packages/modules/Wifi -name "framework-wifi.jar"

如何确认我的改动已进入 DEX?

你可以使用 Android SDK 自带的 dexdump 工具查看编译产物:

Bash

bash 复制代码
dexdump -d out/soong/.intermediates/packages/modules/Wifi/framework/framework-wifi/android_common/dex/framework-wifi.jar | grep "你的类名或方法名"

5. 编译小贴士 (Tips)

  • 全量与模块编译 :使用 m framework-wifi 只会编译该库,但不会重新打包 APEX。若需更新镜像,建议执行 m com.android.wifi。
  • Symbols :如果你在进行本地调试或需要符号表,请关注 out/target/product/[device]/symbols/apex/com.android.wifi/... 路径下的文件。

适用版本: Android 13 (Tiramisu) / AAOS 13

相关推荐
Kapaseker几秒前
AI 会干掉 React Native 吗?
android·kotlin
2501_915921437 分钟前
iOS 实时日志怎么看?KeyMob 的日志过滤、崩溃报告与符号化
android·ios·小程序·https·uni-app·iphone·webview
千里马学框架16 分钟前
Service服务绑定对进程adj影响及常见绑定错误
android·智能手机·性能优化·程序员·framework·性能·安卓失业
独隅12 小时前
Claude API 实战教程:从入门到完整项目
android·java·数据库·claude·claude code
且随疾风前行.16 小时前
Paint Cavans高级绘制:[一]Paint画笔高级应用
android·ui
郑州光合科技余经理18 小时前
同城小程序开发:同一笔单在用户端和商家端各显示到哪
android·java·开发语言·前端·后端·uni-app·php
pigdreams19 小时前
Google 官方 Android CLI:让AI直接读布局结构而不是用adb截图验证
android·人工智能·adb
hunterandroid1 天前
[Android 从零到一] Glide 图片加载原理:三级缓存、生命周期绑定与内存优化
android
法的空间1 天前
AI 编程时代,为什么 Dart 分析会拖慢大型项目的开发
android·flutter·ios
鱼儿也有烦恼1 天前
客户端应用架构模式
android·架构