/*
* 作者:蟑螂一号
* 原文链接: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实现通知栏广告拦截。通过拦截应用的消息机制,遍历顶层界面中的控件,如果控件包名与广告包名一致,那么增加一个关闭按钮,用户可以通过关闭按钮关闭广告。

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

更多相关文章

  1. Android 交叉编译 Linux 可执行文件
  2. Android 工程中的 R.java 文件丢失后如何重新生成
  3. 【Android Developers Training】 25. 保存文件
  4. Android本地数据存储之.txt文件存储读写
  5. 使用Kotlin开发Android 扩展函数(Extensions)
  6. Android Json 使用jsonschema2pojo生成.java文件文件

随机推荐

  1. 通过userAgent判断是是否手机、微信、手
  2. 原生APP中js怎样与Android和ios进行交互
  3. android Bitmap
  4. eclipse导入android的app
  5. 获取Android设备唯一标识(唯一序列号)
  6. android studio 在windows 7环境下安装
  7. SharedPreferences之Android数据保存
  8. Android(安卓)2.1 源码结构分析 转载
  9. android 出错信息为:Class 'Anonymous cla
  10. Android(安卓)对话框【Dialog】去除白色