本帖最后由 烈火 于 2015-1-21 23:09 编辑
我今天还应约帮一位小朋友去掉芒果启动页倒计时广告
正好做个补充:
1,首先在 AndroidManifest.xml 搜索 app_name,第一个就是我们要找到了:
<application android:allowBackup="true" android:hardwareAccelerated="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:name="com.hunantv.imgo.global.ImgoApplication" android:theme="@style/AppTheme" android:uiOptions="splitActionBarWhenNarrow">
即 android:name="com.hunantv.imgo.global.ImgoApplication"。
2,依次在 smali 目录下打开 com/hunantv/imgo/global 双击里面的 ImgoApplication.smali,随便找找敏感词,比如 "ad_",结果一下子就找到了。
.method public static e()V
.locals 7
const/4 v2, 0x0
const-string v0, "ad_url"
invoke-static {v0, v2}, Lcom/hunantv/imgo/f/ac;->b(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
const-string v1, "ad_file_name"
invoke-static {v1, v2}, Lcom/hunantv/imgo/f/ac;->b(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
move-result-object v1
const/4 v2, 0x0
const-string v3, "/mobile/ad"
invoke-static {}, Lcom/hunantv/imgo/net/c;->b()Lcom/loopj/android/http/RequestParams;
move-result-object v4
const-class v5, Lcom/hunantv/imgo/net/entity/AdImageEntity;
new-instance v6, Lcom/hunantv/imgo/global/g;
invoke-direct {v6, v0, v1}, Lcom/hunantv/imgo/global/g;-><init>(Ljava/lang/String;Ljava/lang/String;)V
invoke-static {v2, v3, v4, v5, v6}, Lcom/hunantv/imgo/net/d;->a(ZLjava/lang/String;Lcom/loopj/android/http/RequestParams;Ljava/lang/Class;Lcom/hunantv/imgo/net/b;)V
return-void
.end method
3,返回值是 return-void,过程中间没发现与外面有啥红杏出墙的交流,就删空试试吧。改完后为:
.method public static e()V
.locals 0
return-void
.end method
4,回编译测试,启动页广告好象真的没啦。。。修改结束。
5,需要注意的是,现在大多数应用,如果以前显示过广告,一定会有缓存,因此下次打开程序,还有可能显示广告,故此,不妨再搜索一遍 "ad_"。结果在 \smali\com\hunantv\imgo\activity\MainActivity.smali 中,又搜索到 了 const-string v0, "ad_file_name"。
在整个函数里上下看看,发现一些有趣的句子。比如:
......
invoke-static {v1}, Lcom/nostra13/universalimageloader/utils/StorageUtils;->getCacheDirectory(Landroid/content/Context;)Ljava/io/File;
......
invoke-direct {v0, v1, v2}, Ljava/io/File;-><init>(Ljava/io/File;Ljava/lang/String;)V
......
invoke-virtual {v0, v1}, Landroid/widget/ImageView;->setImageBitmap(Landroid/graphics/Bitmap;)V
......
invoke-direct {v0, v6}, Landroid/view/animation/AnimationSet;-><init>(Z)V
......
invoke-virtual {v1}, Lcom/hunantv/imgo/activity/dj;->start()Landroid/os/CountDownTimer;
通过这些关键字,您能联想到什么了吗?
哦!对了,其实 start() 以及 CountDown 我是 DDMS 看到首次启动时 logcat 里面出来的关键字。与搜索 "ad_" 相配合,准确率更高。。。我这是通过 NOTEPAD++ 搜索的,非 APKIDE…… 以后还是多用 APKIDE 更好。
以上是我并不专业的改法,拿出来可能误人子弟,我只想提供一个另类思路,千万不可当真。见笑!!
|