目录
七、 uni-app打包
八、 Android模拟器的使用
九、 常用的adb命令
(一) 什么是adb
(二) adb环境配置
(三) 常用的adb命令
七、 uni-app打包
IDE工具:HBuilder X
打包前需要准备签名证书,Android证书的生成是自助和免费的,不需要审批或付费,iOS证书需要向苹果官方申请。其中iOS证书分为测试证书和正式证书,测试证书用于打测试版的App(可以在绑定了UDID的苹果设备上安装),正式证书用于打最终上架的App。
App的包名:就是App的名字,包名一般用反写域名的方式来命名
一级域名:www.jd.com
二级域名:discount.jd.com ---->包名:com.jd.discount
八、 Android模拟器的使用
- 模拟器的作用
- 在实际工作中,因为某些原因,没有足够的测试机的时候,可以通过模拟器来模拟部分手机进行测试。
- 但需要注意的是,模拟器始终跟真机存在差异,如果想确保App在真机上运行没有问题,必须在真机上进行测试。
- 常用的Android模拟器有:夜神、逍遥、MUMU、雷电等
- iOS模拟器:因为iOS是闭源的,做iOS模拟器的技术难度较大,目前国内的iOS模拟有黑雷、水果等,但都是收费软件。
- 演示:夜神模拟的使用。
九、 常用的adb命令
(一) 什么是adb
adb:Android Debug Bridge,安卓调试桥,是一种命令行工具,可实现对Android设备的操作,比如安装、卸载apk,往安卓设备上传、下载文件,打印安卓设备的日志等。
(二) adb环境配置
下载地址:Android SDK - Download,下载最新版本的Android SDK,解压。
配置环境变量,把adb命令的目录配置到PATH中。记住:配置Path环境变量的时候,只能增加,不能覆盖之前的配置。
检查是否配置成功,在dos命令中输入adb version回车,出现版本信息表示配置成功
C:\Users\lenovo>adb version Android Debug Bridge version 1.0.41 Version 29.0.2-5738569 Installed as C:\android-sdk-windows\android-sdk-windows\tools\adb.exe
通过adb连接Android设备,有两种方法:
方法1:通过数据线连接,注意是数据线不是充电线,在手机上先开启开发者模式,然后再开启USB调试模式,然后在dos窗口敲adb devices命令查看是否连接成功,如果显示如下就表示连接成功
C:\Users\lenovo>adb devices List of devices attached D5F0219815004432 device
步骤:1、打开开发者模式;2、开启USB调试。
方法2:通过Wi-Fi连接,首先将电脑和手机连接到同一个Wi-Fi,然后将手机通过数据线连接到电脑,执行adb tcpip 5555在手机上开启adb无线模式服务
C:\Users\lenovo>adb tcpip 5555 restarting in TCP mode port: 5555
最后在dos窗口执行adb connect 手机IP连接手机,如下就表示连接成功了
C:\Users\lenovo>adb connect 192.168.2.101:5555 connected to 192.168.2.101:5555 #断开Wi-Fi连接 C:\Users\lenovo>adb disconnect 192.168.2.101:5555
扩展:IP地址、掩码地址、网关地址的关系
192.168.7.82 11000000.10101000.00000111.01010010
255.255.255.0 11111111.11111111.11111111.00000000 ----24个1,所以也叫24位掩码 192.168.7.82/24
192.168.7.0 11000000.10101000.00000111.00000000 -----网络地址 192.168.7.0/24
对IP地址192.168.7.82的解释是:网络地址是192.168.7.0,主机地址是82,主机地址的范围是0~255,其中0表示网络地址,255表示广播地址,1通常用来作为网关地址,所以在这个网络中可用的主机地址有2-254,总共253个。
1&1=1
1&0=0
0&1=0
0&0=0
(三) 常用的adb命令
- 查看adb 的版本号:adb version
C:\Users\lenovo>adb version Android Debug Bridge version 1.0.41 Version 29.0.2-5738569 Installed as C:\android-sdk-windows\android-sdk-windows\tools\adb.exe
查看连接设备及状态:adb devices,查出来的设备状态有3种
- offline 表示离线
- device 表示连接正常
- unauthorized 表示未授权(如果手机上没有允许USB调试,就会显示未授权)
开启Android设备的adb无线模式服务:adb tcpip 端口,比如adb tcpip 5555
通过Wi-Fi的方式连接设备:adb connect 设备IP:端口
断开设备:adb disconnect 设备IP:端口
安装app:
C:\Users\lenovo>adb install C:\项目\占数家营销助手\安装包\PromotionAssist-debug.apk Performing Streamed Install Success
adb install apk的路径,如果是在真机上安装,需要在手机上点击弹出的允许安装才能成功
adb install -r apk的路径
卸载app:
C:\Users\lenovo>adb uninstall com.summer.evs Success
adb uninstall 包名:卸载apk并删除数据
adb uninstall -k 包名:卸载apk,保留数据
查看所有包名:adb shell pm list package
包名是app的唯一标识,一般采用反写域名的方式命名,比如com.taobao.taobao
www.baidu.com 一级域名
查看系统包名:adb shell pm list package -s
查看第三方包名:adb shell pm list package -3
查看包的安装位置:adb shell pm list package -f
查找指定app的包名:adb shell dumpsys activity activities | findstr mResumedActivity (执行命令之前打开应用在前台运行)
C:\Users\lenovo>adb shell dumpsys activity activities | findstr mResumedActivity mResumedActivity: ActivityRecord{84a6383 u0 com.ifeng.news2/.activity.IfengTabMainActivity t185}
查看app的版本号:adb shell pm dump 包名 | findstr "version"
举例:adb shell pm dump com.test.hm | findstr "version"
注:命令中的参数:com.test.hm是app的包名。
C:\Users\lenovo>adb shell pm dump com.sidoumi.his | findstr "version" versionCode=100 minSdk=19 targetSdk=28 versionName=1.0.0 signatures=PackageSignatures{a14bc9f version:2, signatures:[637809ff], past signatures:[]}
打开APP:adb shell am start 包名/活动窗口名
C:\Users\lenovo>adb shell am start com.ifeng.news2/.activity.IfengTabMainActivity t185 Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.ifeng.news2/.activity.IfengTabMainActivity }
关闭打开的APP(放到后台):adb shell am force-stop 包名
C:\Users\lenovo>adb shell am force-stop com.ifeng.news2
进入shell:adb shell,进入shell后可以执行linux命令
如果电脑连接了多个设备,使用adb -s 设备名 shell来指定进入某个设备
把Android设备上的文件下载到本地:adb pull Android设备上文件路径 本地目的路径
用途:从测试设备上取文件、日志等到本地,给开发分析。
把本地文件上传到Android设备中:adb push 本地文件所在路径 Android设备的目的路径
adb push: 把本地文件推到Android设备上,相当于上传文件,比如adbpush C:\Users\Administrator\Desktop\123\app.log /data/anr 表示把windows上的C:\Users\Administrator\Desktop\123\app.log上传到Android设备上的/data/anr目录(如果没有写入权限:adb remount)
用途:当开发修改完一个问题的时候,如果要快速验证,一般开发会提供一个补丁文件,需要把这个文件推到Android设备的某个目录下替换原有的文件,替换后重启App再次验证;
删除文件:adb shell rm 文件,也可以先执行adb shell进入到安卓设备上,然后通过rm命令删除
打印日志:
adb logcat 和 adb shell logcat 他们打印的内容是一模一样的,区别在于adb logcat中的logcat是以参数的形式存在,而adb shell logcat中的logcat是以shell 命令的形式存在
adb logcat:打印日志到屏幕
adb logcat *:W 日志筛选
adb logcat -v time *:w> c:\2111.txt 加时间 I < d< w<e
adb logcat -c:清除缓存的日志,在打印日志前可以先清理缓存的日志再打,这样会更有针对性
adb logcat>C:\Users\Administrator\Desktop3\app.log:表示重定向日志到电脑的C盘下的某个文件,相当于保存日志文件到本地,方便查看
adb logcat -c && adb logcat>C:\Users\Administrator\Desktop3\app.log:先清空再输出
日志分析:
测试结果分析:ANR,Exception , Null , Error, Crash
- 1,ANR(程序无响应问题):在日志中搜索“ANR”(applicationno response)
- 2,闪退问题:在日志中搜索“crash”
- 3,异常问题:在日志中搜“Exception”基类
- 4,强制退出:在日志中搜“forceclosed”
- 程序无响应问题:在Android上,如果你的应用程序有一段时间响应不够灵敏(5秒内没有输入响应事件),系统会向用户显示一个对话框,这个对话框称作应用程序无响应(ANR:ApplicationNot Responding)对话框。
- 崩溃问题:在日志中搜索“Exception”
- Null指针异常:空指针异常主要是有 NullPointerException 异常提示
- debug异常:出现的是 IllegalStateException 异常
- 低内存异常:出现的是OutOfMemoryError 异常
- 操作无响应异常:TimerOut(KeyDispatchingTimedOut提示)
- RuntimeException异常(操作无响应或应用的服务无法启动或连接)
- StaleDataException/readException异常(android 数据库出现异常)
- IllegalArgumentException异常(向函数传递了一个不正确或不合法的参数)
ANR:Application Not Responding,应用无响应,当一个app出现一次ANR问题时,Android系统会自动生成一个日志文件放到/data/anr目录下,这时需要把这个文件取下来分析。