在 Android N 或更高版本上,只有在执行以下步骤后,才能在 Charles 代理中看到广告调用:
- 更新移动设备上的 Google Play 服务。
- 在移动设备上启用网络跟踪。
- 在设备上安装 Charles SSL 证书,并设置代理。
- 为移动应用启用 SSL 代理。
更新移动设备上的 Google Play 服务
对于模拟器,如果您在侧边菜单中没有看到“Google Play”部分,可能需要在虚拟设备配置中更新 Android Studio 并下载最新的系统映像。请务必使用目标中包含 Google Play 的系统映像。

使用侧边菜单检查 Google Play 服务是否为最新版本,并将其更新到最新版本。Google Play 服务的最低有效版本为 14.5.74。

对于实体移动设备(手机或平板电脑),您可以搜索 Google Play,也可以点击此链接直接打开 Google Play。
在移动设备上启用网络跟踪
如需启用网络跟踪,您需要为设备启用开发者选项。启动“Google 设置”应用,然后依次选择 Google > 广告 > 启用广告的调试日志记录。我们还为 AdMob 和 Google Ad Manager 发布商提供了更详细的指南。

在设备上安装 Charles SSL 证书,并设置代理
如需将 Charles 用作移动应用的代理,您需要在电脑上下载并安装 Charles。按照 Charles 的说明在 Android 模拟器或移动设备上安装 SSL 证书。

使用带代理的模拟器更简单,因为模拟器已与运行 Charles 的计算机连接到同一 Wi-Fi 网络。将模拟器与代理搭配使用时,请将代理设置为 localhost (http://127.0.0.1) 和 Charles 代理正在运行的端口(可在 Charles 菜单选项 Proxy > Proxy Settings 中找到)。
如果您使用的是实体移动设备(手机或平板电脑),则需要使用高级网络设置将移动设备与运行 Charles 的计算机连接到同一 Wi-Fi 网络。为实体设备设置代理设置时,请使用 Charles 菜单选项 Help > Local IP address 获取计算机的 IP 地址,以便在设备上输入代理地址(您必须连接到同一 Wi-Fi 网络,此操作才能生效)。 使用 Charles 代理正在运行的端口。
为移动应用启用 SSL 代理
为了让 Charles 拦截移动应用的 SSL 流量,您需要声明您的应用可以信任用户提供的 SSL 证书。
首先,您需要在 Network Security Configuration 下添加新的 XML 资源文件
<network-security-config>
<debug-overrides>
<trust-anchors>
<!-- Trust user added CAs while debuggable only -->
<certificates src="user" />
</trust-anchors>
</debug-overrides>
</network-security-config>

接下来,更新 AndroidManifest.xml 文件以使用网络安全配置。
<?xml version="1.0" encoding="utf-8"?>
<manifest ... >
<application ...
android:networkSecurityConfig="@xml/network_security_config"
... >
...
</application>
</manifest>

之后,您可以启动移动应用,并在 Charles 日志中查找广告请求。