文章目录
命令汇总
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 shell dumpsys activity activities | grep mResumedActivity | 查看当前页面activity |
adb shell setprop debug.layout true | 显示布局边界修改UI |
查看日志
命令 | 作用 |
---|---|
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 | 进入shell模式 |
查看设备中应用信息
命令 | 作用 |
---|---|
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” | 查找该目录下含该字串的文件 |