1.Push apk的.bat 文件命令写法:
@echo 当前时间是:%time% 即%time:~0,2%点%time:~3,2%分%time:~6,2%
秒%time:~9,2%厘秒@
adb root
adb remount
adb shell rm -f /system/app/包名+apk名称
adb push 文件路径 /system/app/包名/(要push到的目标路径)
adb reboot
@echo change completely ~ ~,
press enter to quit
@pause
2.抓日志命令写法
-
adb shell logcat -v time >D :\logcat.txt
-
adb logcat -c && adb logcat >D:\log\xxxx.log
-
adb logcat -c && adb logcat >xxxx.log
说明:adb logcat -c: 清空缓存的日志
2.linux命令
1)将目录A重命名为B
mv A B
2)ls -ll : 读取文件的详细信息
3.adb 命令
1)adb shell pm clear 包名:清空应用缓存和数据
2)adb shell pm list packages : 查看应用包名
3)adb uninstall 包名 :卸载应用
4)adb install apk路径(apk绝对路径)
-
-l 锁定该应用程序
-
-r 替换已存在的应用程序,也就是说强制安装
-
-t 允许测试包
-
-s 把应用程序安装到sd卡上
-
-d 允许进行将见状,也就是安装的比手机上带的版本低
-
-g 为应用程序授予所有运行时的权限
5)adb remount :将系统文件设置为可以写入的模式,只针对于root的手机
4.fastboot常用命令集,完美取代recovery的所有功能
1)升级文件名-->update
作用:刷入ROM 例句:fastboot update update.zip
2)刷入所有镜像-->flashall
作用:刷入boot.img、system.img、recovery.img
例句:fastboot flashall update.zip
3)刷入镜像-->flash
作用:刷入boot.img、system.img、recovery.img
例句:fastboot fash system system.img
4)擦出镜像-->erase
作用:擦除boot.img、system.img、recovery.img
例句:fastboot erase boot 或 fastboot erase system
5)刷入内核--> boot
作用:刷入kernel.img
例句:fastboot boot kernel.img ramdisk.gz
6)创建内核-->flash:raw boot
作用:询问中
例句:fastboot flash:raw boot kernel.img ramdisk.gz
7)输出设备-->devices
作用:输出所有连接的设备
例句:fastboot devices
8)重启设备-->reboot
作用:重新启动,正常开机
例句:fastboot reboot
9)重启进入HBoot-->reboot - bootloader
作用:重新启动,进入HBoot
例句:fastboot reboot - bootloader
10)选项:擦除数据--> -w
作用:Recovery 下的wipe
例句:fastboot -w
11)指定设备--> -s
作用:指定某设备
例句:fastboot -s 序列号
12)指定设备--> -p
作用:指定某设备
例句:fastboot -p 设备名
13)指定设备--> -c
作用:替代系统启动命令
例句:fastboot -c 代码
14)供应商代码 --> -i
作用:指定一个自定义USB供应商ID
例句:fastboot -i 代码
15)供应商代码 --> -i
作用:指定一个定制内核基址
例句:fastboot -i 代码
5.线程堆栈抓取方式
1)获取线程堆栈
adb pull /data/anr
2)内存抓取方式
adb shell am dumphheap com.demo.myapllication(包名)
/data/local/tmp/a.hprof
adb pull /data/local/tmp/a.hprof d:\log
6.抓取log的bat
echo===============GetLog version %ver_str%===============echo Current:%time% 即%time:~0,2%点%time:~3,2%分%time:6,2%秒%time:~9,2%厘秒@echo ####Current:%date%%time%
set date_time =”%date:~0,4% %date:~5,2%
%date:~8,2%_%time:~0,2%
%time:~3,2%”
set Folder=”Logs_%date:~0,4% %date:~5,2%
%date:~8,2%_%time:~0,2%
%time:~3,2%%time:~6,2%”
echo ####start to get log to
(%CD%\%Folder%)....
mkdir %Folder%
adb start-server
adb devices|findstr /e device
if %errorlevel%EQU 0(
echo ####find
devices.......
[device]...........
goto SRART)
adb devices|findstr /e recovery
if %errorlevel% EQU 0(
echo ####find devices............
[recovery].................
goto START
)
echo !!!!!!!!!!!!!!!!!Can’t find
device!!!!!
goto END
:START
==========get log========
echo #### get android_logs to .\android_logs...
adb pull /data/log/android_logs/%Folder%/android_logs/
set del_opt=%1
if “%del_opt:~0,4%”==”/del”(set del_log=y
echo with [/del] options)else(
set /p del_log=”Need to del all Log(y/n)??(n)”
)
if “%del_log:~0,1%”==”y”(echo warning delete logs.........
adb shell “rm -rf /data/log/android_logs/*”
)
echo =================get log end; please check folder=%Folder%=============
:END
7.名词解释
bat脚本中1>nul 2>nul 意思:
1>nul 意思是不显示命令运行的正确提示
2>nul 是不显示错误提示
一起就是 正确错误的都不显示
>是重定向符号
nul是空设备的意思,把提示输入到空设备就不显示了
8.显示当前的Activity
@echo off set PATH=%PATH%;tools;
if not defined ANDROID_ADB_SERVER_PORT
set ANDROID_ADB_SERVER_PORT=9999
adb start-server
mikdir outputs 1>nul 2>nul
adb shell dumpsys activity activities |findstr mResumedActivity >tmp.txt
for /F "tokens=4" %%i in(tmp.txt) do (echo %%i) del tmp.txt 1>nul 2>nul :fail
echo. pause
9.设置当前应用为设置模式
@echo off
set PATH=%PATH%;tools;
if not defined ANDROID_ADB_SERVER_PORT
set ANDROID_ADB_SERVER_PORT=9999
adb start-server
mikdir outputs 1>nul 2>nul
adb shell dumpsys activity activities |findstr mResumedActivity >tmp.txt
for /F "tokens=4" %%i in(tmp.txt) do (set activity=%%i)
echo %activity%
for/F "delims=/ tokens=1" %%i in("%activity%")do(set packageName=%%i)
del tmp.txt 1>nul 2>nul
adb shell am set-debug-app-w%packageName%
pause
9.截屏命令
@echo off
set PATH=%PATH%;tools;
if not defined ANDROID_ADB_SERVER_PORT
set ANDROID_ADB_SERVER_PORT=9999
adb start-server
set file=snapshot-%date:~%0,4%
%date:~5,2%%date:~8,2%
%time:~0,2%%time:~3,2%
%time:~6,2%.png
set file=%file:=0%
mkdir outputs 1>nul 2>nul
adb exec-out screencap -p>
outputs/%file%
if errorlevel 1 goto fail
modify_image.exe outputs/
%file%
echo 截图 %file% 已放到outputs 文件夹中:fail
echo.
pause
10.记录日志
@echo off
set PATH=%PATH%;tools;
if not defined ANDROID_ADB_SERVER_PORT
set ANDROID_ADB_SERVER_PORT=9999
adb start-server
set file=log-%date:~0,4%
%date:~5,2%%date:~8,2%
%time:~0,2%%time:~3,2%
%time:~6,2%.txt
set file=%file:=0%
mkdir outputs 1>nul 2>nul
echo 正在抓取日志.....(关闭后保存到outputs文件夹中)
adb logcat >outputs/%file%
echo 日志 %file% 已放到 outputs文件夹中
echo.
pause
11.查看当前应用信息
@echo off
set PATH=%PATH%;tools;
if not defined ANDROID_ADB_SERVER_PORT
set ANDROID_ADB_SERVER_PORT=9999
adb start-server
mkdir outputs 1>nul 2>nul
adb shell dumpsys
activity activities |findstr
mResumedActivity > tmp.txt
for/F "delims=/ tokens=1" %%i in("%activity%")do(set packageName=%%i)
adb shell dumpsys package %packageName%
pause
12.输入自定义命令
@echo off
set PATH=%PATH%;tools;
if not defined ANDROID_ADB_SERVER_PORT
set ANDROID_ADB_SERVER_PORT=9999
adb start-server
cmd
13.设置日志缓存buffer大小
adb shell setprop persist.log.tag
M
adb shell setprop
persist.logd.size 256M
adb shell getprop
persist.log.tag
adb shell getprop
persist.logd.size
14.应用进程命令
各列参数意义:
USER 进程当前用户;
PID: Process ID进程ID
PPID: Process Parent ID 进程的父进程ID
VSIZE: Virtual Size,进程的虚拟内存大小
RSS: Resident Set Size 实际驻留在内存中的内存大小
WCHAN 休眠进程在内核中的地址
PC:Program Counter
NAME: 进程名
15.杀进程
adb shell kill [PID]
16.查看进程列表
adb shell ps 或者 adb shell ps -ef
17.根据包名查看进程
1)adb shell "ps|grep com.ott.android.TMC(包名)"
2)adb shell
ps -ef | grep com.android.wechat(包名)
18.查看父进程为524的进程
adb shell--->ps -ef | grep 524(进程的父进程ID)
19.查看这个包下的对应的文件
adb shell-->pm list packages -f | grep com.android.wechat(包名);
20.在应用的包列表中,查找相应的包
1)adb shell-->pm list packages | grep com.android.wechat(包名);
2)adb shell-->ps -ef | grep com.android.wechat(包名)
备注:"grep"是查找的意思,"|" 是管道命令 是指ps命令与grep 同时执行
21. Dumpsys 命令
1)查看包下面的服务:adb shell dumpsys activity services
com.android.wechat(包名);
2)dumpsys activity services | grep myservice(服务名称或者包名)
3)dumpsys | grep Myservice(服务名称)
22.adb shell dumpsys activity命令查看当前与用户交互的Activity任务栈
1)adb shell dumpsys activity | grep -i run
加上过滤条件后,可以看到当前运行的任务栈,比较简明清晰:
2)adb shell dumpsys activity---------------查看ActvityManagerService 所有信息
3)adb shell dumpsys activity activities----------查看Activity组件信息
4)adb shell dumpsys activity services-----------查看Service组件信息
5)adb shell dumpsys activity providers----------产看ContentProvider组件信息
6)adb shell dumpsys activity broadcasts--------查看BraodcastReceiver信息
7)adb shell dumpsys activity intents--------------查看Intent信息
8)adb shell dumpsys activity processes---------查看进程信息
24.DOS 命令
1)del+路径 :删除文件的
2)rd+路径 :删除文件夹的
3)rd+路径:只能删除空文件夹,如果要连同内部文件一起删除的话要用rd/s
25 adb 命令连续执行可以用&& 进行拼接
example:adb logcat -c && adb logcat >221.txt