命令汇总
adb命令
adb命令是全局的,需要下载
命令 | 作用 |
---|
adb devices | 查看设备连接 | adb root | 获取设备权限 | adb remount | 默认情况/system部分为只读模式,该命令可以将 /system部分设置为可写 |
文件管理
命令 | 作用 |
---|
adb push [文件所在主机路径] [设备中文件所在路径]adb devices | 复制主机中的文件到设备中(覆盖设备中的文件)查看设备连接 | adb push ‘/home/ts/下载/SystemUI.apk’ /system/system_ext/priv-app/SystemUI/SystemUI.apk | 范例 | adb root | 获取设备权限 | adb pull [apk所在设备路径] [主机中文件保存路径]adb remount | 从设备中复制文件保存到主机中默认情况/system部分为只读模式,该命令可以将 /system部分设置为可写 | adb pull /system/build.prop ./ | 复制文件到主机中当前目录下 |
重启设备
命令 | 作用 |
---|
adb reboot | 重启设备 | adb reboot fastboot | 重启进入fastboot模式(线刷) | adb reboot bootloader | 重启进入fastboot模式(给设备解锁的时候用) | adb reboot recovery | 重启进入recovery模式(卡刷) |
查看日志
命令 | 作用 |
---|
adb logcat | 打印main和system的log | adb logcat -c | 清空日志 | adb logcat |grep “ts” | 通过字串筛选log | adb logcat -b system -b main > /home/ts/logfiles/v.log | 打印main的log |
其他
命令 | 作用 |
---|
adb --version | 查看adb版本 | adb bugreport | 获取bugreport,在设备上操作结束后执行该命令,文件自动保存在当前目录下 |
例:刷入apk步骤(SystemUI.apk为例):
adb root
adb remount
adb push ‘/home/ts/下载/SystemUI.apk’ /system/system_ext/priv-app/SystemUI/SystemUI.apk
adb reboot recovery 恢复出厂设置(板子reboot起不来的时候使用)
wipe data/factory reset [power键确认]
factory data reset
reboot system now [power键确认]
adb pull 文件路径 ./ 其中./表示将设备中的该文件保存到主机当前目录下
adb shell命令
可以在终端中与adb shell 组合执行,也可以adb shell 命令进入shell模式之后执行,退出shell模式用exit;以下命令均使用前一种。
例:查看设备屏幕密度
adb shell wm density
或分两步:
adb shell
wm density
查看设备中应用信息
命令 | 作用 |
---|
adb shell am dumpheap com.android.systemui /data/local/tmp/sys01.hprof | 抓取hprof文件 | adb shell pm list users | 查看当前用户的UserId | adb shell pm list packages -f |grep “SystemUI.apk” | 查看SystemUI.apk在设备中的路径,(查询结果的’’="前面) | adb shell dumpsys window | grep mCurrentFocus | 查看当前页面的包 | adb shell dumpsys activity activities | grep “mResumedActivity” | 查看当前活跃的activity |
模拟按键输入
命令 | 作用 |
---|
格式:adb shell input keyevent <keycode> | | adb shell input keyevent 26 | 模拟按电源键 | adb shell input keyevent 221 | 模拟提高设备屏幕亮度 | adb shell input text hello | 焦点在文本框的时候该命令输入hello文本 |
查看设备信息
命令 | 作用 |
---|
adb shell getprop | 获取各种版本设备信息 | adb shell getprop | grep gsn | 获取设备编号 | adb shell getprop ro.build.version.release | 获取Android系统版本 | adb shell getprop ro.vendor.build.fingerprint | 获取设备的build-fingerprint | adb shell dumpsys battery | 查看电池电量状态信息 | adb shell dumpsys battery set level 100 | 让设备电量显示百分百 | adb shell wm size | 查看设备尺寸,如果更改显示大小,会增加override size项 | adb shell wm density | 查看设备dpi,如果更改显示大小,会增加override density项 | adb shell wm density 160 | 修改屏幕的dpi | adb shell wm density reset | 重置dpi | adb shell settings get system screen_brightness | 相当于 Settings.System.getInt 的命令 |
与应用交互
命令 | 作用 |
---|
格式:adb shell am <command> | | 常用command: | | start [options] <INTENT> | 启动 <INTENT>指定的 Activity | startservice [options] <INTENT> | 启动<INTENT>指定的 Service | broadcast [options] <INTENT> | 发送<INTENT>指定的广播 | force-stop <packagename> | 停止 <packagename>相关的进程 | INTENT选项: | | -a <ACTION> | 指定 action,比如android.intent.action.VIEW | -c <CATEGORY> | 指定 category,比如android.intent.category.APP_CONTACTS | -n <COMPONENT> | 指定完整 component 名,用于明确指定启动哪个 Activity,如com.example.app/.ExampleActivity | 例: | | adb shell am start com.lenovo.ue.device/.TestActivity | 调起大数据打点的界面(启动 <INTENT>指定的 Activity) | adb shell am startservice -n com.android.systemui/.SystemUIService | 调起SystemUIService | adb shell am broadcast -a android.intent.action.DISTANCE_NEAR | 发送广播,指定action为android.intent.action.DISTANCE_NEAR |
其他
命令 | 作用 |
---|
adb shell settings put system screen_brightness 60 | 设置settings中亮度条的亮度值为60 | adb shell pm clear com.android.settings | 清除指定apk包的数据,这里清除设置进程,使其刷新,不需要重启设备 | adb shell pm list users | 查看当前用户的UserId | adb shell pm install -r apk | 安装apk | adb shell ps -ef |grep systemui | 查systemui进程 | adb shell kill -9 [进程号] | 杀systemui进程 |
fastboot命令
adb reboot fastboot --进入fastboot模式
命令 | 作用 |
---|
fastboot devices | 查看fastboot模式下连接的设备 | fastboot erase system | 擦除分区,将该分区恢复到使用前的状态 | fastboot flashing unlock | 设备解锁,开始刷机 | fastboot flash system system.img路径 | 刷入system分区 | fastboot [-w] reboot | fastboot模式下重启手机 w参数表示清除用户数据,也可以不加 | fastboot flashing lock | 设备上锁,刷机完毕 | fastboot continue | 自动重启设备 |
git命令
命令 | 作用 |
---|
git status | 查看被修改的文件(仅文件路径) | git checkout . | 撤销本地仓库当前所有修改(modified) | git checkout 文件路径名 | 撤销指定文件的修改,撤销多个则可以后面加空格再加文件路径名 | git diff | 查看被修改的所有文件的详细内容信息: 显示增删的代码语句 | git diff 文件路径名 | 查看被修改的某个/某几个文件的详细信息,多个参考checkout | git diff > temp.diff | 保存临时修改生成diff文件,不保存未追踪文件 | git format-patch [commitid] | 生成patch | git format-patch HEAD^ | 生成最近一次提交的patch | git apply temp.diff | 将先前保存的diff文件还原成修改前 (如果文件空,使用rm 文件路径 删除) | git apply --reject temp.diff | 如果最新的同步和自己修改有冲突 会rebase失败,apply不成功 该命令强制还原,并显示冲突详细内容 为.rej文件,显示在冲突文件同级目录下 根据.rej文件的修改到冲突文件中逐一对照修改 | git apply temp.patch | 将patch文件还原成对应修改 | git add . | 当前目录下所有修改保存到暂存区 | git add 文件路径名 [文件路径名2] [文件路径名3] | 添加指定文件1 2 3到暂存区 | git commit | 提交暂存区文件 | git commit -m “注释内容” | 不使用vim编辑注释,直接提交,带注释 | git commit --amend | 追加提交,不增加一个新的 commit-id 将新修改的代码追加到前一次的提交
| git reset | 1. 移除暂存区的修改 2. 回退本地版本 | git reset 暂存区的文件路径名 | 移除暂存区该文件的修改至本地修改区 | git reset commit-id | 回退对应的提交 | git reset --soft HEAD^ | 会退到上一个版本,HEAD^ 上一个版本 | git log | 查看先前提交的 commit-id | git log --after=“2018-05-21 00:00:00” --before=“2018-05-25 23:59:59” . > patchList.txt | 模块目录下执行该命令,查看该模块在某段时间中的提交记录并生成文件 | git log --oneline --after=“2021-11-10” . > patchList.txt | 查看某个日期后更新的简要提交记录 | git log --author=“username” --since=2018-10-01 --until=2018-12-31 --pretty=tformat: --numstat |awk ‘{ add += $1; subs += $2; loc += $1 - $2 } END { printf “added lines: %s, removed lines: %s, total lines: %s\n”, add, subs, loc }’ - | 查看username在某段时期的代码提交修改量 | gitk | commit之后执行可弹出图形界面查看修改模块 | gitk 文件路径名 | 看这个类的所有修改记录(按时间线) | git push 库名 库的某个分支 | 将本地分支推送到库的某个分支 | git branch | 查看本地所有分支 | git blame -L 1,3 文件路径名 | 看1-3行的提交方 |
repo命令
命令 | 作用 |
---|
repo sync -c -d --no-tags -j6 | -c 只拉取当前分支代码; -d 将所有git仓库的HEAD重置为manifest文件的指定版本 (处于暂存或修改的目录变化不会被重置); -f 如果sync失败继续同步; –no-tags 不拉取tags(tag不大,但多) | repo sync . | 同步当前模块 | repo sync | 擦除分区,将该分区恢复到使用前的状态 | repo init -u … 分支名 | 下载源码(新创建的文件夹下打开终端,执行命令) |
make 命令
项目根目录下执行
命令 | 作用 |
---|
make clean | 删除所有被make创建的文件(object文件(后缀为“.o”的文件)及可执行文件) | make SystemUI -j8 | 编译SystemUI,生成SystemUI.apk文件 | make -j8 | 整编,生成System.img文件 |
例:编译apk文件(单编)
$ source build/envsetup.sh
$ lunch
选择数字编号,如输入15,回车 --编译64位的apk(具体以编号提示为准)
$ make SystemUI -j8
build/envsetup.sh 是一个脚本文件
source build/envsetup.sh source命令只是读取脚本文件的内容并执行
. build/envsetup.sh source可以替换为 . 作用一样,不要忘了 . 后面有空格
$ make SystemUI -j8 可以提高编译速度
$ make SystemUI 可以不加 -j8
$ make SystemUI -j16 可以修改j后面的数字
make -j带一个参数 可以把项目在进行并行编译,比如在一台双核的机器上整编,完全可以用make -j4,让make最多允许4个编译命令同时执行,这样可以更有效的利用CPU资源。
vi修改文件命令
按键 | 功能 |
---|
i/o | 开始编辑,从命令模式跳到编辑模式 | ESC | 退出编辑模式,回到命令模式 | :wq+enter | 保存并退出文件,回到终端 | :w | 保存文件但不退出vi 编辑 | :w! | 强制保存,不退出vi 编辑 | :w file | 将修改另存到file中,不退出vi 编辑 | :wq | 保存文件并退出vi 编辑 | :wq! | 强制保存文件并退出vi 编辑 | :q | 不保存文件并退出vi 编辑 | :q! | 不保存文件并强制退出vi 编辑 | :e! | 放弃所有修改,从上次保存文件开始在编辑 |
查看java jdk的安装路径
命令 | 描述 |
---|
which java | 无法定位到java的安装路径的,只能定位到执行路径 | echo $JAVA_HOME | 定位到java安装路径,前提是匹配了环境变量 $JAVA_HOME | ls -lrt | 定位到具体安装路径 |
ls命令
命令 | 描述 |
---|
-a | 显示所有文件即目录(ls内定将文件名或目录名称开头为“.”的视为隐藏档,不会列出)。 | -l | 除文件名称外,亦将文件形态、权限、拥有者、文件大小等资讯详细列出。 | -r | 将文件以相反次序显示(原定依英文字母次序)。 | -t | 将文件依次建立时间之先后次序列出。 | -A | 同-a,但不列出“.” (当前目录)及“…”(副文件)。 | -F | 在列出的文件名称后加一符号;例如可执行档则加“*”,目录则加“/”。 | -R | 若目录下有文件,则以下之文件亦皆依序里列出。 |
sudo命令
命令 | 描述 |
---|
sudo su | 特权命令,使有权限修改一些root才能修改的文件 | sudo chown ts -R /dev/kvm | 虚拟机无法启动使用该命令 | exit | 退出特权命令模式 |
压缩/解压缩命令
同样大小的文件压缩之后,.7z文件最小,可压缩至一半大小
命令 | 作用 |
---|
$ unzip -O cp936 filename.zip | 解压缩zip文件 | $ tar -zxvf filename.tar.gz | 对软件包进行解压缩,解压缩所得的文件在以filename为名的目录中 |
其他
命令 | 作用 |
---|
ibus-setup | 启动输入法 | rm -rf 文件路径名 | 删除文件 | 在其他地方复制之后,在终端光标位置按鼠标中键可以粘贴 | 终端粘贴文本 | ctrl+R,出现冒号之后输入命令,后面会出现历史记录,按tab选中 | 根据历史快捷输入命令 | gnome-system-monitor | 调出CPU状态查看器 | grep -rn “systemui” | 查找该目录下含该字串的文件 |
|