清除安卓内置广告的方法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
清除安卓内置广告的方法
Android最大的特点就是开放性。正是因为它的开放性,让许多创业者走上了APP开发这条路。但是有不少人动了“歪脑筋”,在正版APP中植入广告然后欺骗用户下载,从而获利。烦人的广告非常影响用户体验,我们能否自己动手将广告去掉呢?
方法一:利用安全软件蔽广告 Android设备同一样,也有很多安全软件。在Android上,安全软件有很多,比较知名的有LBE安全大师、360手机卫士、腾讯手机管家、网秦安全等等,大都具备了屏蔽App的广告。我们就以LBE安全大师为例,看看它是怎么屏蔽广告的。
我们首先在LBE安全大师中找到“广告拦截”功能(最好首先点击“更新”将广告样本库升级为最新版,升级之后可以在顶部看到以日期命名的样本库版本号),在其中点击“广告扫描”,软件会自动开始扫描手机中的所有APP,很快就可以将嵌入了广告的APP罗列出来。找出嵌入广告的APP之后,可以直接卸载或者屏蔽广告接下来让我们试试它的广告拦截功能,任意点击其中一个APP,就可以看到它的广告行为,包括弹窗广告、通知栏广告等(在此还可以顺便查看这个APP的敏感权限,如拨打电话、获取位置等),直接点击右下角的“屏蔽广告”,然后重新运行这个APP,就会发现讨厌的广告条消失了。
处理过后,广告不见了
方法二:设置联网权限屏蔽广告
但是,有个别APP使用LBE安全大师无法直接屏蔽广告,还可以用其他方法去封杀广告——大部分广告都需要访问网络,我们可以限制其权限,让它无法联网,从而达到屏蔽广告的目的。在LBE安全大师中的“流量监控”中,有个“联网权限”功能(需ROOT),我们可以在这里,找到需要处理的APP,将它的WiFi链接和数据链接(即2G、3G网络)权限关闭。
不过,这个方法并不完美,会出现两种问题,一是如果软件本身需要联网(如在线播放类APP),则无法使用;二是在限制访问网络之后,某些APP会在原来广告的位置留下难看的空白框,同样让人不舒服。
方法三:自己打造干净的APK文件
既然黑心开发者可以在APP的安装程序中(APK文件)嵌入广告,那么我们能否反其道而行之,将广告赶走呢?接下来我就教大家一个绝招——将广告清理干净之后再安装。
这种方法,大致思路就是,反编译(编译可以理解为将源代码转化为可运行的程序,反编译就是将程序转化为源代码)APK文件,然后修改XML文件(一般情况下是在反编译出来的res文件夹中的main.xml,通常在layout文件夹,有时候也会放在其他文件夹)将广告信息去掉,最后重新编译为新的APK文件。下面让我们说说具体的操作过程,首先你需要在上安装Java环境(可以在.java.下载并安装),然后在go.icpcw./e/15app.htm下载apktool。解压
aptool.jar到c:windows,解压apktool-install-windows.zip到任意文件夹(例如D盘根目录)。
要想apk去广告,先了解下apk软件游戏的内置广告原理,一个软件若要显示广告,需要先导入SDK,并在AndroidManifest.xml 中注册。
reslayout目录内的xml文件就包含有广告界面的配置代码,修改这些代码就可以去除广告界面。另外还要屏蔽广告下载源,不然只是单单不显示广告界面而已,软件还会下载广告所需的数据,耗费流量。
目前Android的广告供应商有两个,一个是Admob,一个是Google Ads,前者已被后者收购,但两者SDK依然独立。
广告代码
Admob的广告代码为:
<.admob.android.ads.AdView
android:id=”@+id/ad”
android:layout_width=”fill_parent”
android:layout_height=”wrap_content” />
Google Ads的广告代码为:
<.google.ads.GoogleAdView
android:id=”@+id/adview”
android:layout_width=”wrap_content”
android:layout_height=”wrap_content” />
广告下载源
Admob的广告下载源:
:去掉我//r.admob./ad_source.php
:去掉我//mm.admob.
:去掉我//api.admob.
Google Ads的广告下载源:
:去掉我
//pagead2.googlesyndication./pagead/afma_load_ads.js 去广告基本步骤:
1、去除广告下载源
- 解包classes.dex(方法上面已讲过),用Notepad++ Portable 搜索广告下载源地址(若不知道软件用的是哪个供应商的广告的话,最好两家的下载源都搜索下)
搜索结果如下:
- 将广告下载源地址修改成无效的地址(例如0.0.0.0、192.168.1.1等):
- 完成后保存,重新打包classes.dex,拖回apk安装包替换原文件。
2、去除广告界面
①将刚刚已经替换了classes.dex文件的apk安装包用APKTool反编译。
②用Notepad++ Portable搜索广告代码(上面已列出)
- 如图,将搜索路径定位到res文件夹(就是反编译后的res 文件夹),代码只搜索开头就行了,如:.admob.android.ads.AdView 和 .google.ads.GoogleAdView。
- 搜索结果:
③修改代码
android:layout_width="fill_parent" 修改为
android:layout_width="0.0dip"
android:layout_height="wrap_content" 修改为
android:layout_height="0.0dip"
修改后:
- 将所有搜索到的代码按照上面修改,完成后保存,用APKTool 重新编译打包,可签,安装即可。
再作下解释:
android:layout_width="fill_parent" 修改为
android:layout_width="0.0dip"
android:layout_height="wrap_content" 修改为
android:layout_height="0.0dip"
之所以这么修改,是因为要让广告窗口不显示,
android:layout_width定义的是广告窗口的宽度,
android:layout_height定义的是广告窗口的高度,0.0dip代表0像素,将两者后面的值修改为0.0dip,那么高和宽都是显示0像素,等于不显示,达到了去广告窗口界面的目的