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 | apiimplementation | 其中 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 ... 
随机推荐
- Android解决RecyclerView中的item显示不全方案
			最近的项目中实现订单确定页面.需要使用ScrollView嵌套RecyclerView,当RecyclerView中的item数量比较多时,就会出现item只显示一部分数据,并没有将用户勾选的商品数量 ... 
- Java:前程似锦的 NIO 2.0
			Java 之所以能够霸占编程语言的榜首,其强大.丰富的类库功不可没,几乎所有的编程问题都能在其中找到解决方案.但在早期的版本当中,输入输出(I/O)流并不那么令开发者感到愉快: 1)JDK 1.4 之 ... 
- 博弈论基础之sg函数与nim
			在算法竞赛中,博弈论题目往往是以icg.通俗的说就是两人交替操作,每步都各自合法,合法性与选手无关,只与游戏有关.往往我们需要求解在某一个游戏或几个游戏中的某个状态下,先手或后手谁会胜利的问题.就比如 ... 
- 手把手带你入门 Spring Security!
			Spring Security 是 Spring 家族中的一个安全管理框架,实际上,在 Spring Boot 出现之前,Spring Security 就已经发展了多年了,但是使用的并不多,安全管理 ... 
- MySql(Linux)
			百度云:链接:http://pan.baidu.com/s/1jHQtPau 密码:elr8 官方下载网址:http://dev.mysql.com/downloads/mysql/ 
- sqlserver2014创建数据库时,错误提示如下:尝试打开或创建物理‘c:\数据库\db.mdf’时,Create File遇到操作系统错误5(拒绝访问)
			CREATE DATABASE test1 ON PRIMARY ( NAME =test1, FILENAME='C:\Program Files\test1.mdf',SIZE=10240K ... 
- linux初学者-文件权限
			linux初学者-文件权限 lunix系统都是以文件的形式存在,自然而然的就会要求不同的用户拥有不同的权限,这也是系统能够运行的根本保证,下文将对文件的权限管理进行简要的介绍. 1.文件属性的查看 - ... 
- Go语言圣经习题练习_1.4. GIF动画
			练习 1.5: 修改前面的Lissajous程序里的调色板,由黑色改为绿色.我们可以用color.RGBA{0xRR, 0xGG, 0xBB, 0xff}来得到#RRGGBB这个色值,三个十六进制的字 ... 
- Centos7配置BIND开机自启动
			Centos7上面已经把/etc/init.d/服务的启动方式更改为systemctl启动. 当然编译安装仍然可以/etc/init.d/手动启动但是chkconfig –add named就用不了. ... 
- spring解析配置文件(三)
			一.从XmlBeanDefinitionReader的registerBeanDefinitions(doc,resource)开始 protected int doLoadBeanDefinitio ... 
