教大家怎么去除APK 软件里的广告 先了解下软件的广告原理
一个软件若要显示广告,需要先导入SDK,并在AndroidManifest.xml中注册。
res\layout目录内的xml文件就包含有广告界面的配置代码,修改这些代码就可以去除广告界面。
另外还要屏蔽广告下载源,不然只是单单不显示广告界面而已,软件还会下载广告所需的数据,耗费流量。
目前Android的广告供应商有两个,一个是Admob,一个是Google Ads,前者已被后者收购,但两者SDK依然独立。
- 广告代码
Admob的广告代码为:
<com.admob.android.ads.AdView
android:id=”@+id/ad”
android:layout_width=”fill_parent”
android:layout_height=”wrap_content” />
Google Ads的广告代码为:
<com.google.ads.GoogleAdView
android:id=”@+id/adview”
android:layout_width=”wrap_content”
android:layout_height=”wrap_content” />
- 广告下载源
Admob的广告下载源:
http:去掉我///ad_source.php
http:去掉我//
http:去掉我//
Google Ads的广告下载源:
http:去掉我///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文件夹),代码只搜索开头就行了,如:com.admob.android.ads.AdView 和 com.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像素,等于不显示,达到了去广告窗口界面的目的。
第二篇:教你如何去除讨厌的软件广告
教你如何去除讨厌的软件广告! 随着Android(安卓)智能手机在全世界普及率日益提升,各种基于Android手机推出的软件也是呈现“井喷”之势,在极大地方便了手机用户的同时也会被暴露出一些不利因素,像在使用手机软件时会弹出各种广告,令许多人非常头疼。如何去除这些烦人的广告?下面就将自己以及网友总结的一些去除手机广告的方法分享给大家,希望能帮助大家早日脱离手机广告困扰。
三个解决方法如下:
一、初级解决方法--采用关闭手机联网功能
大家都知道手机弹出广告是在手机使用联网功能下发生的,那么我们是不是可以采用对手机软件联网功能的限制,从而达到屏蔽手机广告的目的呢?答案是可以的!
打开网络助手后进入到“流量排行”列表,点击“批量联网控制”,然后找到相应有广告的软件,点击其“2G/3G”、“WIFI”按钮关闭即可。
我们以“水果忍者”这款游戏作为例子来说明,在安装好这款游戏后,在运行游戏后会弹出一个匹萨广告,点击“No,thanks”才会进入游戏界面。在使用上述关闭联网方法后进入游戏过程中则不会出现广告。但是不是万能的,要是手机在进行联网游戏时就不适用了。 优点:不需要下载其他第三方软件;手机无需ROOT
缺点:不适合在进行联网游戏时使用
二、行之有效方法--安装安全管理类软件
下面的这种方法也是大家很常用也比较简单的方法,那就是安装第三方手机安全管理类软件,例如腾讯手机管家等进行对广告的拦截。
腾讯手机管家
进入相应程序然后找到类似“恶意广告拦截”或“广告拦截”字样的功能,点击进入后软件会自动检测你手机中的所有软件,检测完毕后会自动将含有广告的软件一列表的形式排列出来。最后点击相应含有广告的软件进行手动关闭禁止。不过在这里需要注意的是手机必须在ROOT之后才可进行以上操作。
优点:简单、易操作,效果明显
缺点:需要进行对手机进行ROOT操作
三、技术宅方法--使用Android反编译工具
最后的这个方法是从网有那里收集来的,个人认为这个比较麻烦,技术宅们可以去尝试一下。
去广告所用到的软件:
1.java环境
2.xtemp解包工具
3.notepadplus
4.apk签名工具
先用winrar将apk安装包解压,从中提取classes.dex,利用Xtemp将dex解包,得到classes文件夹 打开notepadplus,然后按Ctrl+F,选择"Find in Files"标签,搜索“http://”,然后点击“Find All”:
从搜索到的结果中找到名为“AdView”的文件夹,此文件中包含的就是加载广告的脚本,将下面三行脚本"/apk/lib/com.google.ads"改为""(也就是删除),就可以屏蔽掉广告的加载和显示。
重新打包dex文件(双击“redex.bat”即可,然后会生产一个“out.dex”,把它改名为“classes.dex”替换到原apk包中即可),然后为改动过的apk软件签名,这样便得到了一个无广告的应用。
优点:根除准确、彻底
缺点:需要有一定Java以及Android编程基础,普通人不易掌握
结语:以上就是给大家分享的三种屏蔽Android手机广告的方法,大家使用前两种方法就可以屏蔽大多数手机广告了。不过这些方法当然不是所有屏蔽Android手机广告的方法,也非常欢迎大家将自己屏蔽Android手机广告的技巧或方法分享给更多人,使得大家能有一个干净Android手机使用环境。