前言
打开,APP总是有开屏广告,比如下边:
好不容易进来,发现刚刚只是冰山一角等等,后边不做演示了。
这里有一点,要说一下,我们每隔一段时间打开游戏,广告内容都是不同的。
且紧跟时代的“ 潮流 ”,这里就可以说明问题了,这是软件联网自动获取的。
既然这样,我们就直接从软件的“ 网络 ”开刀。
分析
反编译APK,打开AndroidManifest.xml查看权限,发现下边都是网络的关键词。
如internet、network、wifi等等。
这里一般有两个办法:
~留下Internet,删除network与WiFi(这两个是获取网络权限的)
~留下Internet,其他全删(方便,但是有可能出问题)
为什么要留下Internet?
~因为在游戏中还有需要网络的地方,就由他去完成了,所谓“ 做人留一线 ”哈哈。
先试试,方便快捷的办法。
记得先卸载掉原本的APK,在将上述修改的APK回编译回去,安装。
发现开屏广告还在,但是5秒的倒计时没了,且内容没了。
后边也比较的干爽,也是没有广告了。
完善
这里“ 一打开 ”APP就有广告,还是让人微微不爽。
猜测一下这个一打开就弹得广告是什么?
嗯嗯,没错,是打开APP的第一时间,先加载的广告“ activity ”(活动或者说界面)。
现在的问题是:
我们怎么知道打开APP首先打开的activity是哪个呢,
毕竟这个AndroidManifest文件那个多的activity标签。
即如何寻找APP的入口点。
思路:
第一种:
只要是在activity中,“ MAIN ”与“ LAUNCHER ”一起出现,那个此activity就是入门点。
第二种:
打开cmd,输入“ adb devices ”获取当前电脑与模拟器的连接状态。
假如一次获取不到,就多输入几次。
出现类似这个“ 5570 ”的字眼就说明,链接成功。
此时输入“ adb shell dumpsys activity top ”来获取模拟器最顶层的活动页面。
一个回车,什么也没有。
为什么没有?因为模拟器此时,还没有运行APK。
当程序运行的时候,再次执行,直接破获到。
对比一下,没得问题。
此时的思路就比较明确了,直接获取游戏运行的界面,
将游戏界面的属性设置为“ MAIN ”与“ LAUNCHER ”。
获取得到游戏运行界面的名字为“ org.cocos2dx.lua.AppActivity ”
在代码中寻找,发现就在他原来的下边;
对比发现,缺失的属性仅仅是“ LAUNCHER ”,
删除广告属性,替换游戏界面属性,当然直接将上边广告的activity干掉也可以。
保存修改后直接回编译。再次安装打开,开屏广告也不见了。
完结撒花。