Android去广告技术总结

/*
*  作者:蟑螂一号
*  原文链接:http://www.sanwho.com/115.html
*  转载请注明出处
*/

Android中去广告软件有很多款,比如AdAway、adblock plus、360手机卫士、金山毒霸、lbe等。这些软件区广告各有优势,并且实现技术也有差别。比如AdAway是一款基于修改hosts文件的Android屏蔽广告软件。金山毒霸是基于root条件下so注入技术实现广告拦截。

Android去广告技术可归纳如下:

1.apk反编译修改

这种方法原理是直接反编译apk,然后修改apk中显示广告的字节码达到广告屏蔽目的。

2.修改hosts文件

AdAway就是基于修改hosts文件达到去广告目的。修改hosts文件需要root权限。该种方法需要收集大量广告域名,并将广告域名在hosts文件中的解析指向为127.0.0.1。

3.基于C层socket拦截

该种广告涉及到android进程注入,需要拦截远程进程的socket函数调用。比如拦截connect函数,在connect函数中如果ip地址是广告ip地址,将广告ip地址修改为127.0.0.1。

4.基于Java层拦截

java层API拦截去广告代表软件金山毒霸。该软件通过so注入,加载jar包,然后拦截java层API实现函数拦截。java层拦截,可以通过拦截NotificationManager中的api实现通知栏广告拦截。通过拦截应用的消息机制,遍历顶层界面中的控件,如果控件包名与广告包名一致,那么增加一个关闭按钮,用户可以通过关闭按钮关闭广告。

以上纯属个人理解,有不足之处,望多多指教交流。

你可能感兴趣的:(Android去广告技术总结)