shell脚本
1. 当需要跳转到某个路径下执行操作就可以使用cd命令,下面表示将当前的路径跳转到C:\ZhouXi下
C:\shellShow>cd C:\ZhouXi ---------//cd就是change directory的缩写
C:\ZhouXi>
2. 当需要调试手机,但是不确定手机是否连接上的时候可以使用adb devices查看当前连接的设备
C:\ZhouXi>adb devices
List of devices attached
FRU6R20426000630 device ---------//连接的平板
emulator-5554 device ---------//android studio打开的虚拟机
3. apk调试过程中需要查看日志,可以使用adb shell logcat来输出日志
C:\ZhouXi>adb logcat -c -------//清除日志缓存,c代表clear
C:\ZhouXi>adb logcat >C:\ZhouXi\logcat.txt ------//打印日志到C:\ZhouXi\logcat.txt,如果文件不存在则新建
^C ------------------//日志打印需要使用ctrl+c来结束,否则一直输出日志
C:\ZhouXi>adb logcat -c | adb logcat >C:\ZhouXi\logcat.txt ----//日志缓存清除和日志打印可以使用|合在一起
^C -----//同上
4. 当需要将电脑上的apk安装到手机上,可以使用adb install来安装apk
C:\ZhouXi>adb install app-debug.apk ------//尝试安装app-debug.apk
Performing Streamed Install
adb: failed to install app-debug.apk: Failure [INSTALL_FAILED_TEST_ONLY: installPackageLI] --//由于是测试apk,安装失败
C:\ZhouXi>adb install -t app-debug.apk ------//加上-t表示允许test的apk安装
Performing Streamed Install
Success
5. 当想传输文件到手机上,或者从手机拉取文件到电脑,可以使用adb push和adb pull
C:\ZhouXi>adb push app-debug.apk /data/ ------//两者都需要手机root权限
C:\ZhouXi>adb pull /data/app-debug.apk
6. 查看手机上有哪些包名和apk安装位置
C:\ZhouXi>adb shell pm list packages //查找手机上所有apk的包名
//举例输出
package:com.android.vpndialogs
package:com.sina.weibo
package:com.android.phone
package:com.android.shell
...
C:\ZhouXi>adb shell pm list packages -f //查找手机上所有apk的包名和apk安装路径
//举例输出
package:/system/priv-app/HiSuggestion/HiSuggestion.apk=com.huawei.suggestion
package:/system/priv-app/FusedLocation/FusedLocation.apk=com.android.location.fused
package:/system/priv-app/SystemUI/SystemUI.apk=com.android.systemui
package:/system/priv-app/HwBlockChain/HwBlockChain.apk=com.huawei.hwblockchain
package:/system/app/HwAssetSync/HwAssetSync.apk=com.huawei.assetsync
...
C:\ZhouXi>adb shell pm list packages | adb shell grep health //精确查找带有health的包名
//举例输出
package:com.huawei.health
package:com.xiaomi.hm.health
7. 查看Activity是否有泄露
C:\ZhouXi>adb shell dumpsys meminfo com.demo.myapp --com.demo.myapp是对应apk的包名,可以通过返回键退出app,再进入,如此循环,然后查看命令行中Activities的数量来判断Activity有没有内存泄漏
//举例输出
Objects
Views: 1245 ViewRootImpl: 1
AppContexts: 9 Activities: 1
Assets: 15 AssetManagers: 0
Local Binders: 195 Proxy Binders: 67
Parcel memory: 95 Parcel count: 383
Death Recipients: 23 OpenSSL Sockets: 17
WebViews: 1
bat脚本
1. echo是批处理脚本使用最多的命令,一般第一行使用@echo off
1. XiZhou.bat
echo "hello world" //echo用来打印后面的hello world
pause //暂停批处理的执行器并给出提示信息
cmd显示结果:
D:\XiZhou>echo "hello world"
"hello world"
D:\XiZhou>pause
请按任意键继续. . .
2. XiZhou.bat
@echo off //从本行开始隐藏输入命令
echo "hello world"
pause
cmd显示结果:
"hello world"
请按任意键继续. . .
3. XiZhou.bat
echo off //不带@的echo off表示从下一行开始隐藏输入命令
echo "hello world"
pause
cmd显示结果:
D:\XiZhou>echo off
"hello world"
请按任意键继续. . .
4. XiZhou.bat
@echo off
set var=xizhou
echo //显示当前是 echo off 状态还是 echo on 状态
echo on //打开echo
echo
echo var: %var%
echo off
echo
echo. //换行
echo.
echo.
pause
cmd显示结果:
ECHO 处于关闭状态。
D:\XiZhou>echo
ECHO 处于打开状态。
D:\XiZhou>echo var: xizhou
var: xizhou
D:\XiZhou>echo off
ECHO 处于关闭状态。
请按任意键继续. . .
2. bat中如何设置变量
1. XiZhou.bat
@echo off
set var=xizhou //使用set设置变量名为var的值
echo var: %var% //打印var,通过%var%获取var的值
pause>nul //关闭显示“请按继续键继续...”
cmd显示结果:
var: xizhou
2. XiZhou.bat
@echo off
set /p var="请输入var的值: " //使用/p来提供cmd命令行输入var的值,=后面是输出在cmd的文字
echo var: %var%
pause
cmd显示结果:
请输入var的值: 我是洲汐
var: 我是洲汐
请按任意键继续. . .