Android Studio和 adb 的一些常用技巧

Posted chavin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android Studio和 adb 的一些常用技巧相关的知识,希望对你有一定的参考价值。

工欲善其事,必先利其器。

最近因为换了Mac,很多地方有些不太适应,刚好最近有想写一篇记录一些小工具技巧的文章,顺便就把Mac中AS常用的快捷键也一并对应记录起来吧。

以下为android开发中,比较常用的小技巧,一时间想不起太多,所以先这样,以后有时间持续更新。

IntelliJ Idea常用的快捷键

key xwin mac os x 10.5 + desc
SmartType Ctrl + Shift + 空格 ? + ? + 空格 提示与补全
Show Intention Actions Alt + Enter ? + ?? 显示修改建议
Undo/Redo Ctrl + ZCtrl+Shift+Z ? + Z? + ? + Z 撤销/反撤销
Generate... Alt + Insert ? + N? + ?? 自动生成代码
Comment Ctrl + Shift + / ? + ? + / 注释与取消
Rename... Shift + F6 ? + F6 重命名相关引用
Optimize Imports Ctrl + Alt + O ? + ? + O 整理导包
Reformat Code Ctrl + Alt + L ? + ? + L 格式化代码
Duplicate Entire Lines Ctrl + D ? + D 复制当前行粘到下一行?
Delete Line Ctrl + Y ? + Back 删除当前行
Find Usages Alt + F7 ? + F7 查看调用的地方
Quick Doc Ctrl + Q F1 查看注释文档
Class... Ctrl + N ? + O 找类,再按含Non-Project
File... Ctrl + Shift + N ? + ? + O 找文件,再按含Non-Project
Find in Path... Ctrl + Shift + F ? + ? + F 全局搜索
Override Methods... Ctrl + O ? + O 在类中查看继承
Jump To Source F4 F4? + Down 跳转到源码
Select Prev/Next Tab Alt + Left|Right ? + Left|Right 历史轨迹跳转
Folding Ctrl + -|Ctrl + = ? + -|? + = 代码折叠

注:
?:Command
?:Option
?:Control
?:Shift
?:Backspace
??:Enter
Up|Right|Down|Left:方向键
关于代码折叠
AS关于折叠有三种:只折叠当前块(? + -),往下递归折叠(? + ? + -),全部折叠(? + ? + -)。其中由于默认打开了闭包折叠(Editor - General - CodeFolding:Collapase By Default 默认勾了 "Closures"),所以总有部分折叠不起来,笔者是有强迫症的,而且我觉得吧,我都要折叠了你还给我强制留一部分显示???有点不可思议的交互设计~,所以如果你跟我一样,就把这个勾去掉即可。

各种依赖方式比较

Old New Desc
compile api
implementation
其中 apicompile 一致,impl无法传递依赖
provided compileOnly 只参与编译,不参与打包
apk runtimeOnly 只参与打包,不参与编译
debugCompile debugImplementation debug包有效
releaseCompile releaseImplementation release包有效
testCompile testImplementation test包有效

常用分析 Analyze:

优化相关:
Inspect Code / Run Inspection by Name...:这个是代码分析,或者说代码扫描。
Infer Nullity:配合@Nullable/@NotNull规避空指针。
Code Cleanup:这个是代码自动优化。

分析认识:
Analyze Dependences...:这些基本都是分析依赖的,从宏观认识新项目。
Analyze Data Flow From/To Here:对某个小模块进行数据流分析,从调用层次认识项目。

定位问题:
Analyze Stack Trace:如果你有一份堆栈信息,这个可以帮你快速跳转。

可以分析模块间的依赖关系,刚接手一个新项目的时候比较用得多。

页面元素分析 Layout Inspector

Tools -> Layout Inspector
截取一个画面后,可以根据画面元素ID找到交互监听,快速定位业务线。

用adb 查看 activity

adb shell dumpsys activity | grep "mFoc"
adb shell dumpsys activity | grep -i run

用adb操作包(安装-查看-启动-停止-卸载)

# 安装
adb install <file>
# 卸载
adb uninstall <package>
# 清空
adb shell pm clear <package>
# 查看包
adb shell pm list packages [-args]
    -f: 输出包和关联的apk文件
    -i: 输出安装来源
    -e "com.google": 过滤
    -s:系统包
    -3:第三方包
    -d/e: 输出禁用和启用的包

# 根据包名启动:
adb shell monkey -p <package> -c android.intent.category.LAUNCHER 1

# 根据包名+类名启动:
adb shell am start [-a android.intent.action.MAIN -c android.intent.category.LAUNCHER] -n <package>/<package.class>

# 关闭应用
adb shell am force-stop <package>

用adb进行输入(adb shell input)

文本输入:text <string> (Default: touchscreen)
键盘按键:keyevent [--longpress] <key code number or name> ... (Default: keyboard)
触屏点击:tap <x> <y> (Default: touchscreen)
滑动:swipe <x1> <y1> <x2> <y2> [duration(ms)] (Default: touchscreen)
拖放操作:draganddrop <x1> <y1> <x2> <y2> [duration(ms)] (Default: touchscreen)
    press (Default: trackball)
    roll <dx> <dy> (Default: trackball)

关于KEYCODE可参考:https://blog.csdn.net/feizhixuan46789/article/details/16801429

使用ADB WIFI

要求两个设备必须在同一个局域网(同一IP段)。
第一次连接需要USB

# 查看adb进程相关信息
ps -e|grep "adb"

# 以 TCP Mode 重新启动ADB
adb tcpip 5555

# 查看手机IP地址
adb shell ifconfig wlan0

# 连接与断开,其中5555端口是默认端口,disconnect时可以省略
adb connect  <手机IP>:5555
adb disconnect  <手机IP>[:5555]

以上是关于Android Studio和 adb 的一些常用技巧的主要内容,如果未能解决你的问题,请参考以下文章

常用adb命令记录

常用adb命令记录

adb.exe 已停止使用 Android Studio 4.3.1 和 Android 9.+

android studio 使用adb

Android Studio ADB启动失败解决方法

ADB命令:am