前言
说起网页广告,那真是让人又恨又爱,它们不但占用了网页的可视控件,分散用户的注意力,还有些浮动广告干扰甚至误导用户操作。但是广告又是开发者重要的收入来源之一,同样作为一名开发者,还是挺能理解的。比如我们在做浏览器的同时需要接入新的广告,同时又要过滤掉网页中的广告,这就是一个很正常的现象。说起应用广告过滤对于PC端来说可能更方便,网上有大量各种广告过滤插件。但对于Android等移动来来说就不那么友好了。Android应用的广告过滤方案大概可以分为一下几种方式
分析
从上图来看,虽然有这几种方式,甚至还有一些方式没有列出来,但其根本可以用一句话来概括:根据规则来过滤URL。其原理可以简单概括如下:
过滤广告很简单,就是判断页面是否有广告,如果有广告,则不加载这条广告。具体就要从网页加载原理说起了,懂的可以跳过这段。我们知道网页其实就是html+css+js,请求网页的时候,会先根据url来下载html文件,并进行解析,解析到需要加载的css和js以及图片视频等资源的时候,就会去下载这些文件。也就是说,每一个文件的下载都对应一条url,打开一个网页,可能需要下载数十上百个文件,也就有这么多的url。所以我们可以针对每一条url进行判断,看其到底是不是会产生广告的url,或者就是广告的资源。<