关于Android Studio和adb的使用记录
- 一些常用的Android Studio(IntelliJ Idea)快捷键
- 各种依赖方式比较
- 常用分析 Analyze:
- 页面元素分析 Layout Inspector
- 用adb 查看 activity
- 用adb操作包(安装-查看-启动-停止-卸载)
- 用adb进行输入(adb shell input)
- 使用ADB WIFI
工欲善其事,必先利其器。
最近因为换了Mac,很多地方有些不太适应,刚好最近有想写一篇记录一些小工具技巧的文章,顺便就把Mac中AS常用的快捷键也一并对应记录起来吧。
以下为Android开发中,比较常用的小技巧,一时间想不起太多,所以先这样,以后有时间持续更新。
一些常用的Android Studio(IntelliJ Idea)快捷键
key | xwin | mac os x 10.5 + | desc |
SmartType |
|
| 提示与补全 |
Show Intention Actions |
|
| 显示修改建议 |
Undo/Redo |
|
| 撤销/反撤销 |
Generate… |
|
| 自动生成代码 |
Comment |
|
| 注释与取消 |
Rename… |
|
| 重命名相关引用 |
Optimize Imports |
|
| 整理导包 |
Reformat Code |
|
| 格式化代码 |
Duplicate Entire Lines |
|
| 复制当前行粘到下一行 |
Delete Line |
|
| 删除当前行 |
Find Usages |
|
| 查看调用的地方 |
Quick Doc |
|
| 查看注释文档 |
Class… |
|
| 找类,再按含Non-Project |
File… |
|
| 找文件,再按含Non-Project |
Find in Path… |
|
| 全局搜索 |
Override Methods… |
|
| 在类中查看继承 |
Jump To Source |
|
| 跳转到源码 |
Select Prev/Next Tab |
|
| 历史轨迹跳转 |
Folding |
|
| 代码折叠 |
注:
⌘:Command
⌥:Option
⌃:Control
⇧:Shift
⌫:Backspace
↩︎:Enter
Up|Right|Down|Left:方向键
关于代码折叠
AS关于折叠有三种:只折叠当前块(⌘ + -
),往下递归折叠(⌘ + ⌥ + -
),全部折叠(⌘ + ⇧ + -
)。其中由于默认打开了闭包折叠(Editor - General - CodeFolding:Collapase By Default 默认勾了 “Closures”),所以总有部分折叠不起来,笔者是有强迫症的,而且我觉得吧,我都要折叠了你还给我强制留一部分显示???有点不可思议的交互设计~,所以如果你跟我一样,就把这个勾去掉即可。
各种依赖方式比较
Old | New | Desc |
|
| 其中 |
|
| 只参与编译,不参与打包 |
|
| 只参与打包,不参与编译 |
|
| debug包有效 |
|
| release包有效 |
|
| 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可参考:
使用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]