谈谈Android平台广告去除方法

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

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




Admob

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


<!– The application’s publisher ID assigned by AdMob –>
<meta-data android:value=”a149afxxxx” android:name=”ADMOB_PUBLISHER_ID” />
</application>
……
<!– AdMob SDK permissions –>
<uses-permission android:name=”android.permission.INTERNET” />
</manifest>

还有在相应layout内创建元素

<com.admob.android.ads.AdView
android:id=”@+id/ad”
android:layout_width=”fill_parent”
android:layout_height=”wrap_content” />

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


Google Ads

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

<manifest
xmlns:android=”http://schemas.android.com/apk/res/android
package=”com.example.android.adsense”
android:versionName=”1.0″>
android:versionCode=”1″
<uses-sdk android:targetSdkVersion=”4″ />
<uses-permission android:name=”android.permission.INTERNET” />
<application android:label=”AdSenseExample”>
<!– … –>
</application>
</manifest>



需要在相应layout内创建元素

<com.google.ads.GoogleAdView
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稍作一些解释。

<LinearLayout xmlns:android=”http://schemas.android.com/apk/res/android
android:id=”@id/ad”
android:layout_width=”fill_parent”
android:layout_height=”fill_parent”
>
</LinearLayout>

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

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

相关文章推荐

JniHelper调用java静态和非静态方法总结(即cocos2dx中调用android平台下显示第三方广告)

2013-12-29 13:10 219人阅读 评论(0) 收藏 举报 调用非静态方法首先就是调用的静态方法得到要调用的java的类对象然后通过调用 minfo.env->CallVoidMe...
  • dj0379
  • dj0379
  • 2014年01月13日 11:10
  • 8057

JniHelper调用java静态和非静态方法总结(即cocos2dx中调用android平台下显示第三方广告)

调用非静态方法首先就是调用的静态方法得到要调用的java的类对象然后通过调用 minfo.env->CallVoidMethod(activityObj, minfo.methodID);方法把对象...
  • guggy
  • guggy
  • 2014年05月30日 16:56
  • 1079

android平台故障分析方法

  • 2015年01月06日 14:08
  • 1.25MB
  • 下载

Cocos2d-x3.1中使用万普平台实现Android平台广告添加

本文使用万普广告平台往Cocos2d-x3.1项目中添加广告。万普的SDK for Cocos2d-x功能挺全的,只是官方文档的使用说明中使用的Cocos2d-x引擎是2.0.1,平台是Windows...

Android平台Camera实时滤镜实现方法探讨(一)--JNI操作Bitmap

众所周知,通过setPreviewHolder可以将预览数据显示在一个SurfaceView上,即可实现相机拍照时的预览功能,通过添加各个控件和接口即可实现简单相机应用,但如果需要对预览画面进行处理,...
  • oShunz
  • oShunz
  • 2015年11月16日 10:20
  • 9134

Android平台Camera实时滤镜实现方法探讨(六)--创建帧缓存对象(FBO)加速实时滤镜处理

上几章探讨了各种YUV转RGB方式和Camera预览数据处理方式,并以一个简单的滤镜为例。但是如果需要实现计算较为复杂的图像处理例如高斯滤波或者双边滤波,则效果则差很多。例如以1920X1080为Pr...
  • oShunz
  • oShunz
  • 2015年12月04日 16:39
  • 6264

Android平台下与服务器数据库通信的方法

1、Android平台下与服务器数据库通信的方法         在Android平台下,连接电脑服务器的MySQL、PostgreSQL、Oracle、Sybase、Microso...

Android平台实现https信任所有证书的方法

Android平台上经常有使用https的需求,对于https服务器使用的根证书是受信任的证书的话,实现https是非常简单的,直接用httpclient库就行了,与使用http几乎没有区别。但是在大...
  • 123bobo
  • 123bobo
  • 2012年02月16日 14:11
  • 28137

cocos2d-js如何在android平台上使用js直接调用Java方法

地址:https://github.com/chukong/cocos-docs/blob/v3-unified-documentation/manual/framework/html5/v3/ref...

Android平台Camera实时滤镜实现方法探讨(四)--以Hefe滤镜为例

上文讲到如何将YUV转换成RGB,之后就可以根据自己的设计,制作自己需要的滤镜了,例如将红色变的更红,增加亮度等 滤镜的制作,基本上采用图层+曲线,结合一些其他属性的调节,例如这篇文章讲解了如何用PS...
  • oShunz
  • oShunz
  • 2015年11月27日 13:12
  • 4686
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:谈谈Android平台广告去除方法
举报原因:
原因补充:

(最多只允许输入30个字)