移动端相关知识点
2022-08-20 22:21:57 0 举报
AI智能生成
移动端测试知识梳理
作者其他创作
大纲/内容
ui自动化测试
appium
使用系统自带的自动化框架
iOS (xcuitest -uiautomation)
iOS端通过webagentdriver实现一个服务,支持webdriver协议
android (uiautomator2-instumentation)
appium基于WebDriver协议,利用Bootstrap.jar,最后通过调⽤用UiAutomator的命令,实现App的自动化测试
bootstrap就是appium架构中放在手机端的一个服务器
web(selenuim)
selenium是浏览器上实现webdriver的驱动,而WebDriverAgent则是iOS上实现webdriver的驱动。
webdriver
由于客户端脚本(java, python, ruby)不能直接与浏览器/手机通信,这时候可以把webdriver server当做一个翻译器,它可以把客户端代码翻译成浏览器/手机可以识别的代码(比如js),客户端通过http请求向webdriver server发送restful的请求,webdriver server翻译成浏览器/手机懂得脚本传给浏览器/手机,浏览器/手机把执行的结果返回给webdriver server,webdriver server把返回的结果做了一些封装(JSON Wire protocol),然后返回给客户端脚本,客户端根据返回值就能判断对浏览器/手机的操作是否执行成功
selenium中的webdriver就是浏览器驱动,比如ChromeDriver等,驱动实现了webdriver协议
appium中的webdriver是appium server
appium中的webdriver是appium server
appium框架图
C/S模式,让它支持多语言,client只要能跟server通信就行
qta
底层的驱动与appium相同
不同点在于对控件的封装单独拿出来了,以及对各种常规操作方法做了统一的封装,为实现跨平台的测试脚本提供了遍历;提供了测试套管理,测试任务、测试报告管理能力
后续新增了ocr 图像智能识别定位控件的能力
airtest
selenium
APP性能测试
iOS
耗电量主要集中于CPU和Display.无法避免,所以重点看CPU的耗电情况,
数据的重复创建。
第⼆部分使⽤openGL渲染。
Android
函数的高频调用会增加耗电
共性问题
软硬件解码梗耗电
尽量使用硬解码
发热原因是⽹络请求、界⾯更新以及视频播放多⽅⾯影响,连续切换60个视频也会达到发热地步,减少资源下载和接口请求评率
⼤量动画堆积,造成cpu一直解码,⻓期使⽤会造成发热
FPS
移动端编程基础
android
activity生命周期
onCreate:create表示创建,这是Activity生命周期的第一个方法,也是我们在android开发中接触的最多的生命周期方法
onStart:start表示启动,这是Activity生命周期的第二个方法。此时Activity已经可见了,但是还没出现在前台,我们还看不到,无法与Activity交互。
onResume:resume表示继续、重新开始,这名字和它的职责也相同。此时Activity经过前两个阶段的初始化已经蓄势待发。Activity在这个阶段已经出现在前台并且可见了。
onPause:pause表示暂停,当Activity要跳到另一个Activity或应用正常退出时都会执行这个方法。此时Activity在前台并可见
onStop:stop表示停止,此时Activity已经不可见了,但是Activity对象还在内存中,没有被销毁。这个阶段的主要工作也是做一些资源的回收工作。
onDestroy:destroy表示毁灭,这个阶段Activity被销毁,不可见,我们可以将还没释放的资源释放,以及进行一些回收工作。
onRestart:restart表示重新开始,Activity在这时可见,当用户按Home键切换到桌面后又切回来或者从后一个Activity切回前一个Activity就会触发这个方法。
四大组件
Activity
android应用中每一个Activity都必须要在AndroidManifest.xml配置文件中声明,否则系统将不识别也不执行该Activity。
service
service用于在后台完成用户指定的操作
content provider
android平台提供了Content Provider使一个应用程序的指定数据集提供给其他应用程序。其他应用可以通过ContentResolver类从该内容提供者中获取或存入数据。
broadcast receiver
四大组件间的 枢纽——Intent(意图),Android通信的桥梁
iOS
APP 生命周期
didFinishLanched
注册系统通知都在这里进行
didBecameActive
WillRisignActive
didEnterBackground
WillEnterForeground
WillTerminate
消息中心
delegate模式
notification
数据持久化
归档
把对象转成data存入本地文件
userDefault
通过plist文件存小量数据
sqllite
coreData
封装了sqllite,以对象为数据类型来操作
沙箱
document --需要长期保存的数据
libray
tmp
MVC模式
主流框架
Weex
技术栈JavaScript + vue
坑比较多 很多东西不支持
React Native
优点
可接受的页面性能
通过客户端进行的页面渲染,速度上比 WebView 渲染还是要快不少
高效开发
RN 只需要一套代码,就可以运行在双平台上
热更新
支持热更新
缺点
缺点是跟 Web 相比,支持的能力非常有限,特定长场景问题,需要三端团队一个一个处理;
需要 IOS 和 Android 开发帮助我们去一个一个的绘制组件
技术栈JavaScript + React
Flutter
H5 是依赖于浏览器渲染,RN 依赖于客户端渲染,而 Flutter 基于 Skia 自己绘制的图形界面
一套代码可以运行在两端;自绘 UI,脱离平台,也可以简单的把它理解为一个浏览器的子集
Flutter 构建了一整套包括底层渲染、顶层设计的全套开发套件,这样不仅可以保证视图渲染在 Android 和 IOS 上面的高度一致,也可以保证渲染和交互性能(媲美原生应用)
技术栈 前端语言Dart
0 条评论
下一页