这几年都在做浏览器,从webkit到chromium,从最开始的页面打补丁调整页面的布局显示,到内核问题修改,到性能优化,一直都是公司分配的任务,自己很少的进行整理,趁着长假对这部分进行梳理。
浏览器代码下载、编译在之前一篇的博客中有介绍,有兴趣的小伙伴可以看看:
https://blog.youkuaiyun.com/mengxin00100/article/details/103321170
浏览器代码编译结束后,会在src\out\Defautlt\apks\目录下生成相应的apk,可以准备搭建调试环境。
如下是我安装的调试环境,有更好方法的也请共享下。
1、安装雷电模拟器、SecureCRTPortable或者putty也可以;
2、打开windows 命令窗口,执行adb devices,会有如下提示
有时候,可能运气不太好,就一直显示着127.0.0.1:5555 off,可以试试如下几种方法:
2.1 最简单的,重启下模拟器,看看是否可以正常获取了;
2.2 如果2.1无效,那就先看看adb端口是否被占用了
2.2.1 5037是adb默认端口:
netstat -aon|findstr 5037
2.2.2 根据如上步骤可以看到占用5037端口号的进程,查看对应的进程名
tasklist /fi "PID eq 11848"
2.2.3 根据如上步骤kill非adb进程
taskkill /pid 进程号 /f
2.2.4 然后输入adb kill-server 再输入adb devices看看是否可以获取到设备
2.3 如果两种方法都不行,那就建议你更换下adb,我之前搭建环境也是怎么试都获取不到设备,
更换不同版本的adb,就可以了。。。(雷电模拟器有点小任性,偶尔会获取不到设备,重启下就可以了)
3、 Telnet调试
3.1 在模拟器,设置网络为桥接
3.2 在windows 命令窗口执行adb shell,然后输入busybox telnetd -l /system/bin/sh(雷电模拟器默认Telnet是关闭的);
3.3、执行netcfg,查看你当前模拟器的ip,然后可以通过putty或者通过SecureCRT创建一个telnet连接。会比在Windows 命令窗口操作方便些。
执行如上步骤后,就可以将编译的apk,拖到模拟器中,它会自动进行安装。安装成功后,点击进行运行,根据需要抓取过程日志,我比较常用的命令是:logcat -v threadtime >/data/logcat.txt &,这样会打印出相关的线程号。