mac配adb
-
打开 终端 ,观察上方的标题,可能是 bash 或 zsh
-
如果是 bash 则,找用户目录下的 .bash_profile
-
如果是 zsh 则,找用户目录下的 .zshrc
-
要找的文件是.开头的,也就是隐藏文件
-
需要在命令行输入命令来显示隐藏文件
-
defaults write com.apple.finder AppleShowAllFiles -boolean true ; killall Finder
-
-
-
如果 .bash_profile 或 .zshrc 不存在,则使用 touch 命令创建即可
-
编写文件内容
# Android SDK export ANDROID_HOME=/Users/yoson/Library/Android/sdk export PATH=$PATH:$ANDROID_HOME/tools export PATH=$PATH:$ANDROID_HOME/platform-tools
-
在命令行输入命令
-
source ~/.bash_profile 或 source ~/.zshrc
-
让 环境变量文件 立刻生效
-
adb 概述
-
adb的全称是什么?
-
安卓调试桥
-
android debug bridge
-
-
adb在iOS是不是可能用?
-
不可以!!!
-
-
adb的组成部分和原理
-
adb分成三个部分。分别是client daemon server。
-
client是运行在电脑上的,负责发送命令
-
daemon是运行在手机上的,负责接收和执行命令
-
server是运行在电脑上的,是负责client和daemon之间的通信的
-
adb 常用命令
-
获取包名和界面名
-
包名:决定着程序的唯一性,反向域名+项目名,每一个程序都有自己的一个包名
-
界面名:目前可以理解为每一个页面都有一个自己的名字
-
命令:
-
mac
-
adb shell dumpsys window windows | grep mFocusedApp
-
-
windows:
-
adb shell dumpsys window windows | findstr mFocusedApp
-
-
-
-
文件传输
-
从电脑到手机
-
adb push 电脑的文件路径 手机的文件夹路径
-
-
从手机到电脑
-
adb pull 手机的文件路径 电脑的文件夹路径
-
-
-
查看日志
-
adb logcat
-
过滤E级别:adb logcat *:E
日志怎么找:
找一堆at,往左找E,上下所有的E的部分,就是需要给开发的日志。
-
-
查看内存
-
adb shell dumpsys meminfo
-
查看所有的程序的内存占用情况
-
-
adb shell dumpsys meminfo <pid>
-
查看某个pid相关的内存信息
-
-
-
查看电池
-
adb shell dumpsys battery
-
-
查看cpu
-
adb shell top
-
-m 10 表示 查看10条
-
-s cpu 表示 按cpu占用率排序
-
-
-
安装和卸载程序
-
安装:adb install <apk路径>
-
覆盖安装:adb install -r <apk路径>
-
卸载:adb uninstall <包名>
-
-
检查手机是否正常连接并获取设备号
-
adb devices
-
在使用有些adb命令的时候,如果同时开启了多台设备,可能需要执行设备才能继续运行
-
比如:安装:adb -s <设备号> install <apk路径>
-
-
进入到 android 底层的 linux 系统中
-
adb shell
-
-
关闭或开启server
-
关闭:adb kill-server
-
开启:adb start-server
-
-
查看帮助
-
adb --help
-
-
另外一种查看包名界面名的方式
-
adb logcat | 过滤 START
先开logcat,再点程序
-
-
截图
-
adb shell screencap -p 手机要保存的路径
-
-
录屏
-
adb shell screenrecord 手机要保存的路径
-
移动端如何测性能
我们会使用一个腾讯出的叫做性能狗的工具(prefdog),这个工具可以实时去监控软件的 内存 ,cpu 以及 fps。
比如我们对fps的要求一般是45以上,比如我们这个xx商场项目有商品的展示,我们会滑动这个商品展示的页面同时去检测fps是否在45以上。
cpu和内存的话,我们一般看会不会有突然飙升的情况。比如就内存而言,我们打开了一个新的页面此时内存有上涨属于正常情况,如果我关闭了这个页面,发现内存并没有下降,此时我们就会考虑是不是出现了问题。具体的标准一般我们会参考同类的软件。
内存溢出(oom)和内存泄漏有什么区别
oom:out of memery,内存溢出
内存泄漏:变量不在使用之后,没有被释放,一直在内存中。
内存溢出:内存已经满了,还要占用内存。
如果内存一直泄漏,最终会导致内存溢出
所以内存溢出是内存泄漏的结果,内存泄漏是内存溢出的原因。