|
本帖最后由 Wave 于 2022-3-29 16:32 编辑
软件删减底栏菜单按钮布局后,可能导致软件闪退,功能异常,就需要分析被删除的底栏菜单关联了哪些代码,分析后将点击事件关联的代码删除,还要考虑View对应的约束,如菜单个数,菜单顺序等等。
下面修改搜书大师的底栏菜单,删除社区:
成品如图
1.查找底栏菜单的xml文件
删除蓝色部分
其中的关键参数是orderInCategory的序号,以这个数字来区分是哪个item
删除后,使用APP过程中发现有闪退问题,接下来就需要去除社区关联的代码以及修改底栏菜单对应的约束。
2.活动记录定位底栏菜单关键类
com.flyersoft.seekbooks.ActivityMain
再分析查找,找到菜单add关键词
在ActivityMain$MainActivityFragmentAdapter类里
3.分析修改
在修改调试几次后,闪退始终存在,我猜测闪退原因是底栏菜单有4个,通过整形变量与数组来调用菜单相关的代码,要想没有bug,就需要把社区对应的第3项关联代码删除,把底栏菜单的个数改成3个。
因此关键词就是 0x4与0x3,正好MT新版有全词匹配,在上面结果中搜索出来分析调试。
下面直接说结果,
删除数组里的社区以及add增加的item(蓝色部分)
修改类:ActivityMain
首先修改onCreate,把3改成2
接下来的这个非常关键,可以看到当e50.l2为3(社区id)才requestFocus()Z,搜索这个可以快速定位,调试时发现没有执行的话,点击菜单后出现空白,所以把判断是否为3项删除
删除社区(i=2)对应的执行代码
更正:这里不要改 安卓虚拟键盘onKeyUp弹起的keycode为4表示KEYCODE_BACK 返回键 4
其它的代码调试后没有异常也不闪退,至此完美精简了底栏菜单
如果不删除社区菜单,只修改社区里的布局
效果如图
搜索字符串:排行
把line单元里的3或4行代码删除或移动即可对社区里的布局进行调整
自己写了一个用蓝奏云发布的书源文件,稍微修改一下就可以把书上传到蓝奏云,再直接用改过的源看云盘上的电子书。
获取最新书源兼容阅读2和3第三版,修复搜书大师网页打开浏览网址错误,添加直接获取蓝奏云下载链接功能。网络导入链接:
http://txfile-30121.sz.gfp.tencent-cloud.com/1647533147157_5649_e6edcc945a97dedb889a447283e46320.json
最新搜书大师
https://wave.lanzoub.com/b0d1ojrte
点开我的帖子就会发现我光盯着搜书大师搞,没办法,虽然搜书大师已经很久很久没有更新了,但是它的功能依然YYDS,比如定时强制休息功能就非常nice
搜书大师其它修改部分:
优化搜书大师书源管理菜单选项及其书源的相关问题
搜书大师解锁书源屏蔽
解锁block的书
解锁自带的非官方源
至于其它修改的地方可以参考我改的包对比修改
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
|