4.6 去广告
作者:飞龙
软件在这里下载:<http://www.yxdown.com/shouji/376800.html>
我们要去掉的是主界面上的广告:

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

我们在这个类中搜索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:

发现对其写入的一共两处。第一处是构造器<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。
完事。
