谈谈Android平台广告去除方法

说起广告,那真是我们痛恨的东西,想想一个游戏被广告条占去了1/5的屏幕空间真的是很扫兴的一件事。。用户讨厌广告,开发者却喜欢,
因为广告能带来收益,软件下载量大的免费应用通过广告获取的利益真的不小。

目前Android平台广告主要由Google和admob提供,虽然Google已经收购了后者,但实际上两者的SDK还是独立的,不能互相融合。




Admob

admob广告首先需要导入AdMob Android SDK,需要在AndroidManifest.xml内注册:





……




还有在相应layout内创建元素

android:id=”@+id/ad”
android:layout_width=”fill_parent”
android:layout_height=”wrap_content” />

*admob的广告下载源为:  http://r.admob.com/ad_source.php ;http://mm.admob.com ;http://api.admob.com


Google Ads

Google Ads的SDK已经包含在Android SDK内,也同样需要在AndroidManifest.xml内注册:

xmlns:android=”http://schemas.android.com/apk/res/android”
package=”com.example.android.adsense”
android:versionName=”1.0″>
android:versionCode=”1″







需要在相应layout内创建元素

android:id=”@+id/adview”
android:layout_width=”wrap_content”
android:layout_height=”wrap_content” />

*Google的广告下载源为: http://pagead2.googlesyndication.com/pagead/afma_load_ads.js


去除广告
(*注:需要熟练使用apktool等反编译工具,本文不就如何操作进行解释,更多请参考我之前的博文)
通常来说,去广告主要分两部,第一步是禁止广告下载,第二部是将广告条从界面上移走。
1.禁止下载

上文我已经给出两者的广告源了,我们要做的就是将其屏蔽,最简单的方法就是将url换为127.0.0.1(Localhost) 或者0.0.0.0(Default route)


当然,也可以换成在兲朝不存在的url,比如twitter.com (开个玩笑 : P)
2.修改layout
修改之前需要先对Android的layout xml稍作一些解释。

android:id=”@id/ad”
android:layout_width=”fill_parent”
android:layout_height=”fill_parent”
>


这是一个普通LinearLayout布局内的元素,id为”ad” ,顾名思义就是广告。下面的layout_width和layout_height指的是这个广告
元素的宽度和高度。值”fill_parent”意为填充满父容器。
我们的目的是不显示广告条,我的方法是将layout_height的值改为”0.0dip”,也就是高度0像素,那广告自然就不显示了。
彻底一点的话,直接删除这个id为”ad”为元素就行,不过我不推荐,修改当然是改动越少越不容易出错咯~
①admob:只需要在layout内找到广告条对应的元素,修改layout_height的值就行。
②Google:在对应layout内寻找 ③具体是哪个xml就要靠摸索了,layout下每一个xml都对应着一个活动(activity),也就是一个界面,通过xml的名称是很容易辨析的。
比如说,广告条出现在主界面,那就找main.xml;出现在设置界面,那就找perference.xml
写在最后
这些方法不是万能的,也不是唯一的,有些程序只有一种广告,干掉他很简单,照着我的方法做就行。而有的就很变态,例如海豚浏览
器和Chompsms,不单单带有admob和Google的双重广告,甚至还有自家的广告服务,不过原理还是一样的,还是那两步。也有的程
序加入了自校验,对程序本身的任何修改都会让程序无法启动,这我也没辙了。。。

最后推荐一个应用,adfree,从外部屏蔽广告下载,admob和Google的都能屏蔽,缺点是部份程序layout会有一块空白。

你可能感兴趣的:(android)