当前位置:网站首页 > 通栏广告 > 正文

android应用广告过滤几种方式

作者:admin发布时间:2021-09-04分类:通栏广告浏览:评论:22


导读:代理方式:1.1服务器方式:对于一个应用如果数据来源于指定的服务器,只需要我们在指定的服务器里控制好资源请求与分发即可,那么对于移动应用来说去广告的效率更好,因为资源的过滤运算均在...

android应用广告过滤几种方式

代理方式:

1.1服务器方式:对于一个应用如果数据来源于指定的服务器,只需要我们在指定的服务器里控制好资源请求与分发即可,那么对于移动应用来说去广告的效率更好,因为资源的过滤运算均在服务器,而不在移动端,相对来说更可维护,但这样的对服务器的任务又是一个问题了。

世界上的网站何止千万,而这些网站的内容又随时都有可能发生变化。因此,想出了一个解决方案:通过社区来维护一个规则表,然后根据这个规则表来过滤url,同时让用户自己动手,参与到制作这个规则表的过程中来,以成千上万的用户来对抗千变万化的广告。但是一个app是怎么能够对整个手机的流量进行过滤的呢?其实很简单,自动对手机设置了代理,代理到本机的2020端口,然后建立了一个简单的代理服务器,将所有的网络请求都统一通过这个代理来处理,从而达到全局的广告过滤效果。当然,当使用数据流量的时候,需要root权限,在4.0版本以上的wifi下的代理设置,也需要root权限,或者手动进行设置。我们先不管的代理服务器那部分功能,只看其核心的部分,也就是下载并读取规则文件,然后根据规则文件来判断url是否应该被过滤。如果你看过其安卓源码,你就会惊讶的发现,里面居然是用jni实现的,再仔细看的话,会发现jni的代码只是封装了静态链接库里面的内容,真正干活的部分都在静态链接库里,至于静态链接库里面的源码,就得装上git,hg,然后按照使用说明,才能同步下来整个代码库。这还不算完,因为估计是为了能跨平台使用,其核心部分代码是用js写的。就是通过V8引擎来执行js代码的,而js代码和V8引擎,都先通过交叉编译,被整合到了静态链接库中,最后通过jni封装以后,编译成动态链接库来使用。可以说的核心就是对规则库的解析和匹配了,所以如果想修改的核心代码,则需要修改js、编译V8才行,或者使用java完全重写js代码的内容,而如果只想快速的将的广告过滤功能应用到自己的app中,就只能把原封不动的使用现成的模块了。


已有22位网友发表了看法:

欢迎 发表评论: