在使用 DFP Ads 的时候,官方文档中会要求开发人员在测试广告的过程中必须使用测试广告 ID,并需要将测试的设备在代码中添加为测试设备才可以正常使用。但添加的过程有些麻烦:我们需要将测试设备连接至电脑,启动应用拉取广告,同时观察 logcat 中的日志,抓取到形如 ... addTestDevice("123456789ABCDEF0123456789ABCDEF0") ...
的 log 后,将其中的 Device Id 写到代码中并重新编译才可以。如果测试设备很多,就要对每个设备都抓一遍 log,比较繁琐。因此希望能够在代码中自动抓取 DFP Ads 输出的 log,提取出 Test Device Id,并添加到代码中。这样就可以做到每个新的设备都可以在拉取一次广告后将自身加为测试设备了。
实现基本如下:
1 | private void loadAd() { |
备注
- 一些网上的教程说需要添加 READ_LOGS 的 permission 以获取读取日志的权限。但实际上,如果只是获取当前应用所生成的 log,似乎并不需要此权限。(况且读其他应用的日志,在 4.1 以上的 Android 系统中也需要 root 才能实现)
- clearLog 那个命令,据说如果不清理日志的话,任何操作都将产生新的日志并导致代码进入死循环。。不过实际上也没有出现,我猜测是如果要在 while 语句中输出 log 的话需要调用此命令,否则无所谓。