# 实用的几个命令
* 从PC推送文件到安卓设备
```plain
adb push <pc文件路径> <安卓设备文件路径>
```
* 从安卓设备推送文件到PC
```plain
adb pull <安卓设备文件路径> <PC文件路径>
```
* 安装APK:
```plain
adb install <apkfile> //比如:adb install baidu.apk
```
* 查看设备cpu和内存占用情况:
```plain
adb shell top
```
* 重启 adbd 并开启网络调试模式
```plain
adb tcpip 5555 # 指定端口 5555
```
* 查看 CPU 相关信息
```plain
adb shell cat /proc/cpuinfo
```
* 查看运行内存信息
```plain
adb shell dumpsys meminfo
```
* 根据包名、类名启动应用程序
```plain
adb shell am start -n com.taobao.taobao/.MainActivity
```
* 根据包名强制关闭进程
```plain
adb shell am force-stop com.taobao.taobao
```
* 发送 BOOT_COMPLETED 广播
```plain
adb shell am broadcast -a android.intent.action.BOOT_COMPLETED
```
```plain
// 精确发送到 package
adb shell am broadcast -a android.intent.action.BOOT_COMPLETED -c android.intent.category.HOME -n package_name/class_name
```
* 模拟滑动解锁屏幕
```plain
adb shell input keyevent 82
```
* 休眠时间相关
```plain
// 获取屏幕休眠时间
adb shell settings get system screen_off_timeout
// 设置屏幕休眠时间(60 秒)
adb shell settings put system screen_off_timeout 60000
```
* 获取已安装应用包名
```plain
// 获取已安装应用包名
adb shell pm list package
// 获取包名对应的 Apk 路径
adb shell pm path com.tencent.qq
```
* Android 去除叹号
```plain
adb shell settings put global captive_portal_https_url https://www.v2ex.com/generate_204
```
# 其他命令
1、获取序列号:
```plain
adb get-serialno
```
2、查看连接计算机的设备:
```plain
adb devices
```
3、重启机器:
```plain
adb reboot
```
4、重启到bootloader,即刷机模式:
```plain
adb reboot bootloader
```
5、重启到recovery,即恢复模式:
```plain
adb reboot recovery
```
6、查看log:
```plain
adb logcat
```
7、终止adb服务进程:
```plain
adb kill-server
```
8、重启adb服务进程:
```plain
adb start-server
```
9、获取机器MAC地址:
```plain
adb shell cat /sys/class/net/wlan0/address
```
10、获取CPU序列号:
```plain
adb shell cat /proc/cpuinfo
```
11、跑monkey:
```plain
adb shell monkey -v -p your.package.name 500
```
12、保留数据和缓存文件,重新安装apk:
```plain
adb install -r <apkfile> //比如:adb install -r baidu.apk
```
13、安装apk到sd卡:
```plain
adb install -s <apkfile> // 比如:adb install -s baidu.apk
```
14、卸载APK:
```plain
adb uninstall <package> //比如:adb uninstall com.baidu.search
```
15、卸载app但保留数据和缓存文件:
```plain
adb uninstall -k <package> //比如:adb uninstall -k com.baidu.search
```
16、启动应用:
```plain
adb shell am start -n <package_name>/.<activity_class_name>
```
17、获取设备名称:
```plain
adb shell cat /system/build.prop
```
18、查看占用内存前6的app:
```plain
adb shell top -m 6
```
19、刷新一次内存信息,然后返回:
```plain
adb shell top -n 1
```
20、查看电池信息
```plain
adb shell dumpsys battery
```
21、杀死一个进程:
```plain
adb shell kill [pid]
```
22、查看进程列表:
```plain
adb shell ps
```
23、查看指定进程状态:
```plain
adb shell ps -x [PID]
```
24、查看后台services信息:
```plain
adb shell service list
```
25、查看当前内存占用:
```plain
adb shell cat /proc/meminfo
```
26、查看IO内存分区:
```plain
adb shell cat /proc/iomem
```
27、将system分区重新挂载为可读写分区:
```plain
adb remount
```
28、从本地复制文件到设备:
```plain
adb push <local> <remote>
```
29、从设备复制文件到本地:
```plain
adb pull <remote> <local>
```
30、清除log缓存:
```plain
adb logcat -c
```
31、查看bug报告:
```plain
adb bugreport
```
参考文档:
[Android ADB命令大全](http://zmywly8866.github.io/2015/01/24/all-adb-command.html) --张明云
[WiFi(网络)调试Android手机](http://blog.csdn.net/xusiwei1236/article/details/41480319)
[使用ADB更改系统设置中的参数 如背光亮度、休眠时间等](http://blog.csdn.net/jimbo_lee/article/details/52168189)
[完全使用adb,aapt 获取已安装apk的各种信息](http://blog.csdn.net/victoryckl/article/details/8951113)
- 导读
- Java知识
- Java基本程序设计结构
- 【基础知识】Java基础
- 【源码分析】Okio
- 【源码分析】深入理解i++和++i
- 【专题分析】JVM与GC
- 【面试清单】Java基本程序设计结构
- 对象与类
- 【基础知识】对象与类
- 【专题分析】Java类加载过程
- 【面试清单】对象与类
- 泛型
- 【基础知识】泛型
- 【面试清单】泛型
- 集合
- 【基础知识】集合
- 【源码分析】SparseArray
- 【面试清单】集合
- 多线程
- 【基础知识】多线程
- 【源码分析】ThreadPoolExecutor源码分析
- 【专题分析】volatile关键字
- 【面试清单】多线程
- Java新特性
- 【专题分析】Lambda表达式
- 【专题分析】注解
- 【面试清单】Java新特性
- Effective Java笔记
- Android知识
- Activity
- 【基础知识】Activity
- 【专题分析】运行时权限
- 【专题分析】使用Intent打开三方应用
- 【源码分析】Activity的工作过程
- 【面试清单】Activity
- 架构组件
- 【专题分析】MVC、MVP与MVVM
- 【专题分析】数据绑定
- 【面试清单】架构组件
- 界面
- 【专题分析】自定义View
- 【专题分析】ImageView的ScaleType属性
- 【专题分析】ConstraintLayout 使用
- 【专题分析】搞懂点九图
- 【专题分析】Adapter
- 【源码分析】LayoutInflater
- 【源码分析】ViewStub
- 【源码分析】View三大流程
- 【源码分析】触摸事件分发机制
- 【源码分析】按键事件分发机制
- 【源码分析】Android窗口机制
- 【面试清单】界面
- 动画和过渡
- 【基础知识】动画和过渡
- 【面试清单】动画和过渡
- 图片和图形
- 【专题分析】图片加载
- 【面试清单】图片和图形
- 后台任务
- 应用数据和文件
- 基于网络的内容
- 多线程与多进程
- 【基础知识】多线程与多进程
- 【源码分析】Handler
- 【源码分析】AsyncTask
- 【专题分析】Service
- 【源码分析】Parcelable
- 【专题分析】Binder
- 【源码分析】Messenger
- 【面试清单】多线程与多进程
- 应用优化
- 【专题分析】布局优化
- 【专题分析】绘制优化
- 【专题分析】内存优化
- 【专题分析】启动优化
- 【专题分析】电池优化
- 【专题分析】包大小优化
- 【面试清单】应用优化
- Android新特性
- 【专题分析】状态栏、ActionBar和导航栏
- 【专题分析】应用图标、通知栏适配
- 【专题分析】Android新版本重要变更
- 【专题分析】唯一标识符的最佳做法
- 开源库源码分析
- 【源码分析】BaseRecyclerViewAdapterHelper
- 【源码分析】ButterKnife
- 【源码分析】Dagger2
- 【源码分析】EventBus3(一)
- 【源码分析】EventBus3(二)
- 【源码分析】Glide
- 【源码分析】OkHttp
- 【源码分析】Retrofit
- 其他知识
- Flutter
- 原生开发与跨平台开发
- 整体归纳
- 状态及状态管理
- 零碎知识点
- 添加Flutter到现有应用
- Git知识
- Git命令
- .gitignore文件
- 设计模式
- 创建型模式
- 结构型模式
- 行为型模式
- RxJava
- 基础
- Linux知识
- 环境变量
- Linux命令
- ADB命令
- 算法
- 常见数据结构及实现
- 数组
- 排序算法
- 链表
- 二叉树
- 栈和队列
- 算法时间复杂度
- 常见算法思想
- 其他技术
- 正则表达式
- 编码格式
- HTTP与HTTPS
- 【面试清单】其他知识
- 开发归纳
- Android零碎问题
- 其他零碎问题
- 开发思路