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-wifipublicsystem 接口,编译会报错,提示你运行 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

相关推荐
千里马学框架2 小时前
Android Automotive CarService 和 CarManager 源码剖析
android·车载系统·framework·系统开发·car framework
独隅2 小时前
PyTorch模型转TensorFlow Lite的Android部署全流程指南
android·pytorch·tensorflow
ganshenml2 小时前
Android 存储权限与文件系统演进全解析(Android 10 → 16)
android·gitee
seabirdssss2 小时前
从 Windows GUI 自动化到 Android 自动化:一套双端巡检脚本的重构过程
android·windows·自动化
黄林晴3 小时前
重磅!Android Studio Quail 1 来了,IDE直接内置 LeakCanary
android studio
winfredzhang3 小时前
Android中安装模拟器失败,清理安装失败的模拟器
android·清理·模拟器
ganshenml3 小时前
Android PopupWindow 在老年模式下定位偏移问题分析与解决(showAtLocation / 字体缩放 / 抖动)
android
summerkissyou19873 小时前
Android-SurfaceView-投屏-例子
android·surfaceview
Kapaseker3 小时前
我再也不用求设计做阴影了 — Compose 阴影
android·kotlin