Android Studio和 adb 的一些常用技巧
AS和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 + Z 或 Ctrl+Shift+Z |
⌘ + Z 或 ⌘ + ⇧ + Z |
撤销/反撤销 |
Generate... | Alt + Insert |
⌘ + N 或 ⌃ + ↩︎ |
自动生成代码 |
Override Methods... | Ctrl + O |
⌃ + O |
自动复写方法 |
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 |
查看注释文档 |
File Structure | Ctrl + F12 |
⌘ + F12 |
查看文件代码结构 |
Class... | Ctrl + N |
⌘ + O |
找类,再按含Non-Project |
File... | Ctrl + Shift + N |
⌘ + ⇧ + O |
找文件,再按含Non-Project |
Find in Path... | Ctrl + Shift + F |
⌘ + ⇧ + F |
全局搜索 |
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 |
其中 api 和 compile 一致,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]
附ADB手册:
http://adbshell.com/commands
Android Studio和 adb 的一些常用技巧的更多相关文章
- Android Studio 解决ADB检测不到手机导致无法连接的问题
ADB的全称是Android Debug Bridge,是用来管理模拟器和真机的通用调试工具. 开USB调试 方法:手机设置 - 开发人员选项 - USB调试 - 勾选(开发者调试被隐藏了,在关于手机 ...
- Android Studio经常使用配置及使用技巧(二)
在<Android Studio经常使用配置及使用技巧(一)>中具体描写叙述了Android Studio的project结构和打开开源project的一些配置方法.本篇将从我个人的使用情 ...
- android studio 使用adb命令传递文件到android设备
一:文件传输 在android开发中,有时候需要将文件从pc端传递至android,或者将软件运行的日志,从android设备传递到pc进行分析,我们可以使用windows的cmd窗口,或者andro ...
- 填坑实录 Android Studio 利用 ADB WIFI 插件实现真机无线调试
总是用模拟器,小破本的渣内存无法承受,同时模拟器的版本大多停在4.4,无法体现Android 5.0.6.0 的版本特性,因此决定利用 Android Studio 的插件实现真机无线调试. 步骤如下 ...
- 端口被占用:android studio 虚拟机adb.exe已停止工作的处理
浏览:2190 | 更新:2017-09-16 05:00 1 2 3 4 5 6 分步阅读 在搭建android studio开发环境后,开始编程调试程序时,不管运行虚拟机还是真机,都不停出现&qu ...
- android studio 虚拟机adb.exe已停止工作的处理
在搭建完android studio 后使用虚拟机或真机调试程序,出现如下错误. 在运行里输入cmd,打开命令行工具,使用netstat -aon|findstr 5037查看adb.exe的50 ...
- Android Studio中 ADB WIFI插件进行无线调试实践
首先要确保电脑和手机在同一个局域网中.具体步骤如下 1.Android Studio中安装ADB WIFI插件.安装成功后重启Android Studio.(没有安装过插件的同仁,请自己搜索) 2.手 ...
- Android Studio、adb
Android Studio:一个超级全的教程,mark~ https://www.cnblogs.com/laughingQing/p/5848425.html adb命令: https://blo ...
- Android Studio使用adb命令连接平板
有需要使用adb命令连接调试平板的同学可以参考下(下面是android官方文档,有点老). http://donandroid.com/how-to-install-adb-interface-dri ...
随机推荐
- random,time,sys,os
import random print(random.random()) #(0,1)大于0且小于1之间的小数 print(random.randint(1,3)) #大于等于1且小于等于3之间的整数 ...
- Rust生命周期bound用于泛型的引用
在实际编程中,可能会出现泛型引用这种情况,我们会编写如下的代码: struct Inner<'a, T> { data: &'a T, } 会产生编译错误: error[E0309 ...
- Codeforces Round #219(Div. 2)373 B. Making Sequences is Fun(二分+找规律)
题目意思大概是给你w,m,k三个数,让你从m开始找 m m+1 m+2 m+3...........m+m', 使得他们的权值之和不超过w,计算权值的方法如下S(n)·k . S(n)表示n有多少位数 ...
- powermockito单元测试之深入实践
概述 由于最近工作需要, 在项目中要做单元测试, 以达到指定的测试用例覆盖率指标.项目中我们引入的powermockito来编写测试用例, JaCoCo来监控单元测试覆盖率.关于框架的选择, 网上讨论 ...
- 最小化docker镜像
kubernetes离线安装包,仅需三步 如何让镜像尽可能小 很容器想到from scratch, 就是没任何基础镜像 FROM scratch COPY p / ENTRYPOINT [" ...
- 关于asp.net调用gemalto超级狗api的具体实现
鉴于网上关于超级狗的具体操作并不详细,我把我所知道的写下来,希望能给有需求的网友做个参考.软件外壳保护我就不说了,没有什么难度,供应商也会提供文档,一步一步操作即可.我要说的是用于保护发给客户的程序, ...
- 信息收集框架——recon-ng
背景:在渗透测试前期做攻击面发现(信息收集)时候往往需要用到很多工具,最后再将搜集到的信息汇总到一块. 现在有这样一个现成的框架,里面集成了许多信息收集模块.信息存储数据库.以及报告 ...
- android ——多线程编程
1.定义一个线程只需要新建一个类继承自Thread.然后重写run()方法,并在里面编写耗时逻辑即可: class MyThread extends Thread{ public void run() ...
- mui的app页面使用layui填充数据
在mui的开发中有个坑,mui.plusReady在web上使用时是不会起作用的,只能在app上才行,所以推荐自己测试时使用mui.ready去写加载时的方法. 前端请求的返回格式为json,所以在后 ...
- 【Vue的路由,SPA概念】
前言 本章是为了以后实现前端页面的搭建而写的, 重点在于如何实现 单页Web应用 因为相对于以前的传统多页面web,有很大的缺陷. 那么就必须了解一下Vue的路由设置. SPA的概念 总的而言,我们知 ...