4.6 去广告

作者:飞龙

软件在这里下载:http://www.yxdown.com/shouji/376800.html

我们要去掉的是主界面上的广告:

4.6 去广告 - 图1

把它拖进 Android Killer,这个项目的包是com.cnnzzse.kxxye,通过查询配置文件可得知,主界面是hellot

4.6 去广告 - 图2

我们在这个类中搜索ad

  1. .field private adView:Lcom/baidu/mobads/AdView;
  2. # ...
  3. .field private interAd:Lcom/baidu/mobads/InterstitialAd;
  4. .field private isInitAd:Z
  5. # ...
  6. .field private showAd:Z
  7. # ...
  8. .method public showAdView()V
  9. # ...
  10. .method public showInterView()V
  11. # ...

可以看到一共有两个广告,adViewinterAd,我们再来看showAdViewshowInterView的方法:

  1. # showAdView
  2. .line 283
  3. iget-boolean v1, p0, Lcom/cnnzzse/kxxye/hellot;->showAd:Z
  4. if-nez v1, :cond_1
  5. .line 300
  6. :cond_0
  7. :goto_0
  8. return-void
  9. # showInterView
  10. .line 302
  11. iget-boolean v0, p0, Lcom/cnnzzse/kxxye/hellot;->showAd:Z
  12. if-nez v0, :cond_0
  13. .line 346
  14. :goto_0
  15. return-void

它们都通过showAd这个字段来判断是否要显示广告。

我们可以想办法把这个字段给赋成false。搜索Lcom/cnnzzse/kxxye/hellot;->showAd:Z

4.6 去广告 - 图3

发现对其写入的一共两处。第一处是构造器<init>中。

  1. .prologue
  2. const/4 v1, 0x1
  3. # ...
  4. .line 74
  5. const/4 v0, 0x0
  6. # ...
  7. .line 75
  8. iput-boolean v1, p0, Lcom/cnnzzse/kxxye/hellot;->showAd:Z

这里我们把v1改成v0

第二处是静态方法access$0,这个方法专门用于设置showAd

  1. .method static synthetic access$0(Lcom/cnnzzse/kxxye/hellot;Z)V
  2. .locals 0
  3. .prologue
  4. .line 75
  5. iput-boolean p1, p0, Lcom/cnnzzse/kxxye/hellot;->showAd:Z
  6. return-void
  7. .end method

我们加上一句const/4 p1, 0x0

完事。