langjiawen 发表于 2018-4-5 16:42

微信去除唤醒锁wakelock和tinker启动迅速并省电。

本帖最后由 langjiawen 于 2019-5-18 20:31 编辑

微信用Object中的hashcode()函数和wakerlock字符串拼接启动了很多唤醒锁。明明微信有alert机制非得加个恶心唤醒锁。后台会召唤无数wakelock并且这些唤醒禁用了还会随机增加几十个唤醒。直接反编译后把hashcode函数重写返回固定的数字0 让微信只保留一个唤醒
去除微信662恶心的唤醒。dex++路径。classes.dex com/tencent/mars/comm/wakerlock在490行添加
.method public hashCode()I
    .registers 12
   
    .prologue
    .line 202
const/4 v0, 0x0
新版本找wakelock启动函数在这之前替换掉就行了。

分割线

Tinker是微信热更新每次启动微信会占用大量内存占用。首先反编译 AndroidManifest.xml找到application标签见图三(手机发帖见谅)分析下代码
第一行程序声明
第二行标签为ap主题
第三行标签eee程序名
第四行标签图标
第五行是程序启动代码
第六行常驻属性为否
第七行备份微信调用自家应用宝用的接口。方便微信内在应用宝下载包
第八行开启应用加速
第九行内存限制申请内存使用
重点在第五行为真实应用在dex里定位app.application(图4)
打开application

Tinker是做了个重定向,检测到热更新时启动时重定向到Tinker本体,所以我们只要移除重定向就行了(图五)

回编译重签名。再次启动微信就成功了。实测打开微信速度比以前卡启动屏快了。

其他应用也是同理先分析androidmanifest然后分析dex去除tinker加快启动。

xjh88232259 发表于 2018-4-6 13:03

虽然看不懂,但感觉很厉害的样子,也辛苦楼主了。

langjiawen 发表于 2018-10-1 21:04

stxxb 发表于 2018-4-8 22:48
用其他方式禁用了 但启动还是比较慢 试试这个方式

这个用第三方禁用。会随机生成ID进程。而且微信有active会检测内存1GB以上一下的判断。从而后台挤掉别的app

Zero__Lee 发表于 2018-4-5 16:58

dismsa 发表于 2018-4-5 17:05

感谢分享啊。。学习了

wjzbjx 发表于 2018-4-5 17:19

有成品没有,不会玩这个,不知道你用的是什么反编译软件。

aa868682008 发表于 2018-4-5 17:31

直接上個成品體驗體驗。

萌神淼菥 发表于 2018-4-5 17:46

lizhipei78 发表于 2018-4-5 17:57

一点都看不懂

jsqwz 发表于 2018-4-5 18:59

是啊给个成品吧

贱J小张 发表于 2018-4-5 19:58

有成品不。。看不懂哟。。

ww5231159 发表于 2018-4-5 20:30

给个成品吧{:1_921:}
页: [1] 2 3 4 5
查看完整版本: 微信去除唤醒锁wakelock和tinker启动迅速并省电。