返回

广告拦截:通过亮度判断最顶层的图片,助你告别广告困扰

Android

使用 autojs 查看图片的平均亮度,辅助我们识别最顶层的图片

随着智能手机的普及,移动互联网的发展也越来越迅速。在移动互联网中,广告是一种常见的获利模式。然而,随着广告的泛滥,用户也开始厌倦这些广告,甚至会使用各种手段来拦截广告。autojs 是一款功能强大的自动化工具,可以帮助用户完成各种各样的操作,其中就包括拦截广告。

autojs 可以通过查看图片的平均亮度来区分图片是否处在最顶层。最顶层的图片通常是广告图片,而其他图片通常是应用界面图片。通过比较图片的平均亮度,我们可以判断出最顶层的图片,然后对其进行点击,即可拦截广告。

具体操作步骤如下:

  1. 打开 autojs,点击“脚本”菜单,选择“新建脚本”。
  2. 在脚本编辑器中,输入以下代码:
// 导入 autojs 库
importClass(android.graphics.Bitmap);
importClass(android.graphics.BitmapFactory);
importClass(android.view.WindowManager);

// 获取窗口管理服务
var wm = context.getSystemService(WindowManager.class);

// 获取当前窗口
var window = wm.getDefaultDisplay();

// 获取屏幕截图
var screenshot = window.screenshot;

// 将屏幕截图转换为位图
var bitmap = BitmapFactory.decodeByteArray(screenshot, 0, screenshot.length);

// 获取位图的平均亮度
var brightness = 0;
for (var i = 0; i < bitmap.getWidth(); i++) {
    for (var j = 0; j < bitmap.getHeight(); j++) {
        var color = bitmap.getPixel(i, j);
        brightness += (color >> 16) & 0xFF; // 红色分量
        brightness += (color >> 8) & 0xFF; // 绿色分量
        brightness += color & 0xFF; // 蓝色分量
    }
}
brightness /= (bitmap.getWidth() * bitmap.getHeight());

// 输出图片的平均亮度
log("图片的平均亮度:" + brightness);
  1. 点击“运行”按钮,运行脚本。
  2. 在脚本运行结束后,控制台将输出图片的平均亮度。
  3. 如果图片的平均亮度大于某个阈值,则说明该图片是广告图片,我们可以对其进行点击,拦截广告。

注意事项:

  • 使用 autojs 查看图片的平均亮度,需要 root 权限。
  • 不同的手机屏幕亮度不同,因此需要根据实际情况调整阈值。
  • autojs 查看图片的平均亮度,只适用于安卓手机。

通过使用 autojs 查看图片的平均亮度,我们可以轻松拦截广告,提升使用效率。希望本文对您有所帮助。