前期准备(容易被忽略但实际很重要)
Mac录屏快捷键 command + shit + 5
- 用自己熟悉的电脑系统(window/mac)
- 熟悉每个系统的快捷键,dock/任务栏位置
- 下载自己熟悉的开发工具、辅助工具(Android studio,Google浏览器、gglog日志查看器,The Unarchiver,scrcpy,GIt,adobe Photoshop)
- 下载必要的android studio 插件
个人偏好:把dock栏设置在系统右边
开发技巧记录
1 . 使用最新的Android studio编译速度会明显加快
(Android Studio Electric Eel | 2022.1.1 Patch 2)
3. 熟练使用 Logcat日志,最新Android studio 更新了logcat,"|"分隔符之间需要二边用空格生效
DcsNaviControlApi | NavigationController
4. 熟练使用Android studio debug断点模式
根据debug断点处,通过自带工具窗口可以分析出之前的所有调用链方法,一层一层进行分析
快捷键
- 最近修改
Command + Shift + 回车键
(mac)- 最近操作
Command + E
(mac)ctrl + E
(win)- 最近修改
Command + Shift + E
(mac)ctrl + shift + enter
(win)- 全局搜索
Command + Shift + F
(mac)ctrl + shift + F
(win)- 格式化代码
command + option + L
(mac)ctrl + alt + L
(win)- 移动上一个光标处
Command + Option + Left\Right
或者command + [
,command + ]
(mac)ctrl + alt + Left\Right
(win)- 删除行
Command + 回车键
(mac)移动行
这个不用太多介绍, 就是整行的上下移动.
Option + shift + 方向键上\方向键下
(mac)alt + shift + 方向键上\方向键下
(win)
6. 熟练使用 LayoutInspector 分析布局文件,快速定位布局问题,定位bug代码位置
7. 根据进程号分析崩溃问题
8. 个别项目无法显示xml布局显示如下问题
解决方法:清空Android studio缓存
cd /Users/用户名/.gradle/caches/transforms-2/
rm -rf files-2.1
9. 使用lancet-base ,简洁的 API, 几行 Java 代码完成注入需求.可以在SDK编写注入代码来修改依赖SDK的App.
注意:方法名、放回参数、静态修饰都应该与注入的方法保持一致。有static修饰你注入方法也应有static,有返回值注入方法也应有,有参数注入方法也应有!!!!!
@Proxy("isLongRouteFeature")
@TargetClass(value = "com.baidu.navisdk.config.ICustomConfigBridge")
public boolean hookIsLongRouteFeature() {
AppLog.e(TAG, "hookIsLongRouteFeature");
ContentFragmentManager manager = BaseFragment.getNaviFragmentManager();
if (manager != null && manager.getCurrentFragment() instanceof NaviEndCardFragment) {
return true;
} else {
return (boolean) Origin.call();
}
}
工具篇
mac 的话 使用glogg查看日志
车机调试建议使用 scrcpy Android 屏幕镜像工具
Git使用常用指令
Amend commit 可以覆盖之前的提交
[Cherry-Pick 这个可以把别的分支的commit复制到当前分支的主线中](如何将master分支上commit的代码 push到其他分支上去_小码林marlin的博客-CSDN博客)
git fetch 是在当前仓库下面下载其他分支
adb指令篇
adb shell wm size 查询和修改当前设备的尺寸,使用x(xyz的x)进行连接。
打开wifi:
adb shell svc wifi enable
关闭wifi:
adb shell svc wifi disable
查看设备分辨率:adb shell wm size
查看屏幕密度(DPI):adb shell wm density
默认密度比为(标准dpi = 160)
DPI / 标准DPI
查看包名com.baidu.naviauto的堆栈信息来查看在目录位置
adb shell dumpsys package com.baidu.naviauto grep|PATA
LInux指令篇
find 命令实现搜索
find 是英文,寻找的意思。这个命令可以很方面的来搜索我们需要的内容。
标准命令如下:
find ./ -iname "*.txt"
find + grep 搜索
默认的 find 命令,功能及其强大,并且最基础的也需要知道一个 * 这样的通配符。但是通过这个组合命令,可以让你啥都不懂的进行任意的搜索。
我们知道 find ./ 命令,可以把当前文件夹下的所有内容全部列出来。同时 grep 命令可以根据关键词进行过滤。然后我们就可以组合这个命令了。
find ./ | grep txt
LayoutInspector 问题梳理
1.一直转圈等待,如下:
解决方法:等待几十秒,后面右上角会有dump view选项点击即可
2. 不工作不转圈,如下
解决方法重启adb如下:
adb kill-server
adb start-server
adb查看崩溃日志
adb logcat -b crash