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;

3. # ...

5. .field private interAd:Lcom/baidu/mobads/InterstitialAd;

7. .field private isInitAd:Z

9. # ...

11. .field private showAd:Z

13. # ...

15. .method public showAdView()V

17. # ...

19. .method public showInterView()V

21. # ...

可以看到一共有两个广告,adView和interAd,我们再来看showAdView和showInterView的方法:

1. # showAdView
2. .line 283
3. iget-boolean v1, p0, Lcom/cnnzzse/kxxye/hellot;->showAd:Z

5. if-nez v1, :cond_1

7. .line 300
8. :cond_0
9. :goto_0
10. return-void

12. # showInterView
13. .line 302
14. iget-boolean v0, p0, Lcom/cnnzzse/kxxye/hellot;->showAd:Z

16. if-nez v0, :cond_0

18. .line 346
19. :goto_0
20. return-void

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

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

4.6 去广告 - 图3

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

1. .prologue
2. const/4 v1, 0x1

4. # ...

6. .line 74
7. const/4 v0, 0x0

9. # ...

11. .line 75
12. 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

4. .prologue
5. .line 75
6. iput-boolean p1, p0, Lcom/cnnzzse/kxxye/hellot;->showAd:Z

8. return-void
9. .end method

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

完事。