首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

移动APP测试基础培训

,断电,重启等意外情况,待环境恢复后是否可以正确卸载,卸载是否支持取消功能,单击取消后软件卸载情况是否正常 2、版本更新 更新设置 后台/ZK配置 1)强制更新 不更新无法做其他操作 2)非强制更新...; ④清空数据或强制退出后,APP能否正常运行; ⑤长时间开机且开app,看是否会出现异常情况; ===================================== 工具使用,性能及稳定性测试介绍...2、app性能测试常见指标: 1)、内存 2)、CPU 3)、流量 4)、电量 5)、启动速度 6)、滑动速度、界面切换速度 7)、与服务器交互网络速度 Android性能测试分为两类: 1、一类...rom版本(系统)性能测试 2、一类应用app性能测试 ①Androidapp性能测试包括测试项比如: a.资源消耗 b.内存泄露 c.电量功耗 d.耗时 e.网络流量消耗 f...④Android系统几种场景状态: a.空闲状态: 指打开应用后,点击home键让应用后台运行,此时应用处于状态叫做空闲; b.中等规格和满规格状态:中等规格和满规格指的是对应用操作时间间隔长短不一

1.3K20

Android 进阶4:Service 一些细节

影响这个选择关键是:这个任务是否在用户离开当前页面、应用后仍在执行?...intent ,适用于不需要参数服务 START_REDELIVER_INTENT : 和START_STICKY 类似,但会将之前接收到 intent 传递给重建服务 onStartCommand...为了节约资源,在完成任务后我们需要主动停止服务,停止服务有三个方法: stopService() Context 方法,外部组件调用,调用后系统会尽快销毁服务 stopSelf() Service...前台服务 在 1.管家抉择 (Android进程生命周期)里我们已经知道: 仅当内存过低且必须回收系统资源以供具有用户焦点 Activity 使用时,Android 系统才会强制停止服务。...除此外还可以为 Service 添加 android:exported 属性并将其设置 “false”,确保服务仅适用于你应用。这可以有效阻止其他应用启动您服务。

1.1K80
您找到你想要的搜索结果了吗?
是的
没有找到

Android 架构组件最新进展 (下篇)

根据我们曾经做调查,开发者们希望 Android 官方可以维护一些实用组件库和架构实践,以降低中大型应用开发门槛,这样开发团队就可以集中更多精力在实际业务优化和改进。...Jetpack 项目正是为了解决这些问题而诞生,Jetpack 是一系列助力您更容易打造优秀 Android 应用工具和组件,这些组件能帮助您遵循最佳实践、免除编写繁复样板代码并简化复杂任务,从而使您可以专注于最核心代码逻辑...其中 androidx.* 库与 Framework API 解耦,这能够提供向后兼容同时,也能更频繁地更新。 Android Jetpack 中架构组件可帮助您设计稳健、可测试且易维护应用。...这里我们分上下两篇介绍架构组件最新更新,如果您还没有阅读本文上篇,请点击这里查看《Android 架构组件最新进展 (上篇) 》。...比如和 OEM 沟通,确保不同设备能拥有一致应用退出操作。 测试 第一点,也是开发者们一直有提到: Robolectric 支持。

82220

手机APP测试(测试点、测试流程、功能测试)

逆向:检查用户主动退出登录后,下次启动APP,停留在登录页面。...大小要合适,控件布局合理;   b,移动窗体.快速或慢速移动窗体,背景及窗体本身刷新必须正确;   c,缩放窗体,窗体控件随窗体大小变化而变化;   d,显示分辨率.必须在不同分辨率情况下测试程序显示是否正常...如,“插入”数目默认值,点击“确定”;或,删除默认值,使内容,单击“确定”进行测试;   e,输入字符。此时系统应提示输入有误。...用户在下次启动APP时,仍出现更新提示 逆向:APP更新后新增功能和老功能是否可以正常使用 逆向:当版本强制更新升级时,用户没有做更新,退出客户端,下次启动APP时,仍出现强制升级提示(且无法关闭),...程序员通过new对象分配内存,所有对象在java堆内分配空间,然而对象释放时有垃圾回收器完成android虚拟机是给予寄存器Dalvik,它最大堆大小一般是16M,有的机器24M。

5.8K43

Android 中意料之外应用崩溃以及它们解决方案

由于此时你所有的单例对象都丢失了,因此当这个 Activity 尝试访问相同对象时,就会遇到指针异常而崩溃退出。 这是个问题。在我们继续讨论解决方案之前,让我们复现一下这种情况。...复现崩溃 在模拟器或通过 USB 电缆(译者注:Android 11 也可使用 Wi-Fi 连接设备调试)连接实际设备使用 ADB 运行指令(如 Android Studio)运行任何应用程序。...adb shell pidof com.darktheme.example 该命令语法 adb shell pidof APP_BUNDLE_ID 请记下你在终端窗口上看到 PID(这可用于验证现有的应用程序进程是否已被终止...如果没有,你可以松一口气了,因为这是你应得。 需要注意是,从后台打开应用后,请重新获取应用所属进程 PID。如果你在第 3 步中记下 PID 与新 PID 相等,则该过程并没有被终止。...结论 在 Android 平台上,由于进程被终止而导致应用崩溃是很常见。而如果我们使用较新 Android 版本,我们可以注意到,出于节省电源目的,大量后台应用程序被强制结束运行了。

1.1K10

Android 慎用static静态变量

Android中,静态变量在安卓不比其他Java环境,不管变量本身写在哪个类里,它一旦被代表组件类初始化,比如被一个Activity初始化,它就会绑定在这个Activity类中.....而Android类却可能随着组件销毁而卸载 这意味着你关闭一个Activity时候,由这个Activity初始化静态变量也会被置,因此它生命周期是不稳定。...也就是说,在Android中静态变量可能随时被系统置,变为null,其它地方在使用时候就会产生指针现象。...而Android会在资源够时候,重启被杀掉进程。 也就是说静态变量值,如果不做处理,是不可靠,可以说内存中一切都不可靠。 如果要可靠,还是得保存到文件中去,在重启时候恢复回来。...另一种情况就是不能把退出所有Activity等同于进程退出,所以在用户点击图标启动应用时候,以前存放于静态变量中值,有可能还存在,因此要视具体情况给予清空操作。

2.6K20

Android开发高级进阶——多进程间通信

START_REDELIVER_INTENT是那些在被杀死之后重启时重新获得 Intent 服务,直到用传递给 onStartCommand() 方法 startId 参数调用stopSelf(...在一般操作场景下,设备许多内存就是用在这上面的,使可以重新回到之前打开过某个 activity 。...进程:没有任何界面组件、服务组件,或触发器组件,只是出于缓存目的而被保留(为了更加有效地使用内存而不是完全释放掉),只要 Android 需要可以随时杀掉它们。 三....多进程创建 ---- Android多进程创建很简单,只需要在AndroidManifest.xml声明四大组件标签中增加”android:process”属性即可。...="com.trampcr.musicdemo.service"/> 为了节省系统内存,在退出该Activity时候可以将其杀掉(如果没有人为杀掉该进程,在程序完全退出时该进程会被系统杀掉)。

1K10

顺藤摸瓜:用单元测试读懂 vue3 watch 函数

在 Vue 3.x Composition API 中,我们可以用近似 React Hooks 方式组织代码复用;ref/reactive/computed 等好用响应式 API 函数可以摆脱组件绑定...传统在 Vue 2.x Options API 实践中,不太推荐过多使用组件定义中 watch 属性 -- 理由是除了某些新旧值比较和页面副作用以外,用 computed 值会更“合理”。...stops (effect)' 不在 Vue 实例中,而是在一个普通函数里 在 watchEffect() 调用后 nextTick 中,effect 被调用 此时,手动触发 watchEffect...(newV, oldV, onCleanup: fn => void) => void 在 watch() 调用后,立即对目标赋新值 在 nextTick 中,fn 中清理行为早于响应目标值变化行为发生...2.1 部分测试用例 因为函数用法相比 @vue/composition-api 中并无改变,Vue 3 中相关单元测试覆盖功能部分和前文版本差不多,写法似乎更偏重于对 ref/reactive

1.9K10

python 内存泄漏

2 print(sys.getrefcount(test)) # 2 # 该对象建立引用 quo = test # 添加引用后,二者引用数量 3 print...del 对象该对象在内存中也不会被删除,仅会在 python 程序退出时释放内存,也就是循环引用导致了内存泄漏 解决方案 我们需要打破循环引用导致引用数增加,在不改变代码逻辑情况下,可以将部分 引用转换为弱引用...= weakref.ref(fir) fir.ref_count() fir = [] pass --> 对象 first 当前引用数 4 对象 first 当前引用数...,由于在字典中仍保留了他们引用,因此内存不会被释放 解决方案 解决思路还是从引用数上入手,我们需求是令那些不再有人能引用到 value 被清理回收 实际,用字典缓存数据对象做法很常用,为此...,尝试在代码中加入强制垃圾回收命令 gc 模块是Python垃圾收集器模块,gc 使用标记清除算法回收垃圾 import gc # 强制进行垃圾回收 gc.collect() 弊端就是这个函数比较慢

2.6K10

Android性能优化之内存泄漏,你想要这里都有~

发生内存泄露本质原因 具体描述 1.jpg 特别注意 从机制角度来说,由于 Java存在垃圾回收机制(GC),理应不存在内存泄露;出现内存泄露原因仅仅是外部人为原因 = 无意识地持有对象引用,...Activity退出,该Activity内存也不会被回收 // 特别是一些庞大Activity,此处非常容易导致OOM public class SingleInstanceClass {...= 应用生命周期 如上述实例,传递ApplicationContext,因Application生命周期 = 整个应用生命周期 public class SingleInstanceClass...Thread.stop(); // 外部类Activity生命周期结束时,强制结束线程 } 5.3.3 消息传递机制:Handler Android 内存泄露:详解...cursor.close() // 对于 图片资源Bitmap:Android分配给图片内存只有8M,若1个Bitmap对象占内存较多,当它不再被使用时,调用recycle()回收此对象像素所占用内存

72730

Android性能优化:手把手带你全面了解 内存泄露 & 解决方案

发生内存泄露本质原因 具体描述 特别注意 从机制角度来说,由于 Java存在垃圾回收机制(GC),理应不存在内存泄露;出现内存泄露原因仅仅是外部人为原因 = 无意识地持有对象引用,使得 持有引用者生命周期...引用(直到整个应用生命周期结束),即使该Activity退出,该Activity内存也不会被回收 // 特别是一些庞大Activity,此处非常容易导致OOM public class SingleInstanceClass...= 应用生命周期 如上述实例,传递ApplicationContext,因Application生命周期 = 整个应用生命周期 public class SingleInstanceClass...Thread.stop(); // 外部类Activity生命周期结束时,强制结束线程 } 5.3.3 消息传递机制:Handler 具体请看文章:Android...cursor.close() // 对于 图片资源Bitmap:Android分配给图片内存只有8M,若1个Bitmap对象占内存较多,当它不再被使用时,调用recycle()回收此对象像素所占用内存

68330

【APP 逆向百例】Frida 初体验,root 检测与加密字符串定位

root 了,会强制退出 APP,过了 root 检测后,还需要输入一个字符串进行校验。...安装 ADB adb(Android Debug Bridge)即安卓调试桥,安装后可以在电脑与手机进行交互,Android Studio 等工具里面会自带 adb,有时候我们并不想下载这么大工具,...所以这里介绍一下 Android SDK Platform-Tools,它是 Android SDK 一个组件,它包括与 Android 平台交互工具,主要是 adb 和 fastboot,官方下载地址...,如下图所示: 图片 分析 Java 代码,有一个 if-else 判断,obj 输入字符串,a.a(obj) 判断真,就表示输入正确。...,spawn 模式会重启 APP,启动一个新进程并挂起,在启动同时注入 frida 代码,适用于在进程启动前一些 Hook,attach 模式传入是 APP 名称,spawn 模式传入是 APP

1.3K20

Android进程和线程

---- 当某个应用组件启动且该应用没有运行其他任何组件时,Android 系统会使用单个执行线程应用启动新 Linux 进程。...如果内存不足,而其他用户提供更紧急服务进程又需要内存时,Android 可能会决定在某一时刻关闭某一进程。在被终止进程中运行应用组件也会随之销毁。...当这些组件需要再次运行时,系统将为它们重启进程。 决定终止哪个进程时,Android 系统将权衡它们对用户相对重要程度。...有关保存和恢复状态信息,请参阅Activity文档。 5.进程 不含任何活动应用组件进程。保留这种进程唯一目的是用作缓存,以缩短下次在其中运行组件所需启动时间。...使总体系统资源在进程缓存和底层内核缓存之间保持平衡,系统往往会终止这些进程。 根据进程中当前活动组件重要程度,Android 会将进程评定为它可能达到最高级别。

1.2K30

移动端测试通用覆盖点

重启、断电、内存不足、断网)、安装进度条、主要功能流程;卸载关注点:卸载过程中意外情况处理(取消、死机、重启、断电、内存不足、断网)、卸载进度条; 第三方软件协助安装、卸载、高版本覆盖安装、低版本覆盖安装...、卸载后安装高版本; 在线升级:升级提示、取消更新/强制更新、后台更新(ios自动更新)、跨版本升级、升级过程中异常情况处理(取消、死机、重启、断电、内存不足、断网)、升级进度、不同网络下升级; 第三方软件支持...实时更新、定时更新、数据展示处理逻辑(服务器获取、本地缓存)、更新异常处理(弱网、断网、服务器响应异常、数据); 定位、相机、语音、蓝牙等服务:已开启、未开启根据提示开启、未开启并拒绝开启; 时间测试...卸载应该移除所有的文件 数据安全性: 输人密码将不以明文形式进行显示 密码, 信用卡明细, 或其他敏感数据将不被储存在它们预输人位置 不同应用程序密码长度必须至少在4一8 个数字长度之间...如果数据库中重要数据要被重写, 及时告知用户 能合理地处理出现错误 意外情况下应提示用户

1.1K41

如何正确地在Android手机上安装国产软件?

Android平台应用程序分为七个优先级:前台进程、可见进程、主要服务、次要服务、后台进程、内容供应节点、进程。...很多国产ROM甚至系统原生ROM都有权限控制,但首先,这些权限往往不完整;其次,AppOps能将权限设置ignore,很多国产软件会强制用户开启部分权限,设置ignore后,应用会得到数据,但数据...但需要注意是,重启后需要重新开启远程adb。 然而,想要完全将流氓软件隔离开来,我们要用到类似“沙盒”机制。...尽管是在非root环境下,它依然能够强制关闭程序(原理是通过Android辅助功能模拟点击“强制停止”程序)。...折腾安装国产应用,实际是无奈之举,也希望国内Android生态能够良性发展。

3.7K70

安卓 topic-意图 Intent

要创建显式 Intent,请 Intent 对象定义组件名称 — Intent 所有其他属性均为可选属性。...如果结果,则至少有一个应用能够处理该 Intent,且可以安全调用startActivity()。 如果结果,则不应使用该 Intent。如有可能,您停用发出该 Intent 功能。...= null) { startActivity(sendIntent); } 强制使用应用选择器 如果有多个应用响应隐式 Intent,则用户可以选择要使用应用,并将其设置该操作默认选项。...每种方法均会提取当前应用 Context、您要包装 Intent 以及一个或多个指定如何使用该 Intent 标志(例如,是否可以多次使用该 Intent)。...Intent 匹配 通过 Intent 过滤器匹配 Intent,这不仅有助于发现要激活目标组件,还有助于发现设备组件相关信息。

1.3K10

安卓APP测试知识大全【面试储备】

一、安卓系统知识概述 1.1 安卓系统架构 应用程序层 应用程序框架层 系统运行库库层 系统内核层 四大组件和API 1.2 安卓权限系统 Android操作系统其实是一个多用户linux操作系统,每个...1.3 认识adb与安卓间通信 ADB,即Android Debug Bridge,他是Android提供一个通用调试工具,借助这个工具,我们可以很好调试开发程序,adb.exe在安装Android...):一个以后台进程形式运行于模拟器或者物理手机设备守护程序 二、安卓APP测试流程图(转) ?...当版本强制升级版时,用户可以取消更新,老版本能正常使用。用户在下次启动app时,仍能出现更新提示。 当版本强制升级版时,当给出强制更新后用户没有做更新时,退出客户端。...3.7 客户端数据库测试 客户端后台数据增、删、改、查等数据更新测试 数据情况测试 检查客户端数据存在时,app数据是否能自动从客户端数据中取出,检查客户端数据存在时,app数据是否能自动从客户端数据中取

1.4K20

微信团队原创分享:iOS版微信内存监控系统技术实践

a) App没有升级; b) App没有调用exit()或abort()退出; c) App没有出现crash; d) 用户没有强退App; e) 系统没有升级/重启; f) App当时没有后台运行...3)群控类外挂: 这类外挂是可以远程控制iPhone软件,通常一台电脑可以控制多台手机,电脑画面和手机屏幕实时同步操作,如开启微信,自动加好友,发朋友圈,强制退出微信,这一过程容易产生误判。...同时我们从FOOM划分出新重启原因叫“APP前台卡死导致重启”,列入重点关注。...来龙去脉》 《QQ 18年:解密8亿月活QQ后台服务接口隔离技术》 《月活8.89亿超级IM微信是如何进行Android端兼容测试》 《以手机QQ例探讨移动端IM中“轻应用”》 《一篇文章...get微信开源移动端数据库组件WCDB一切!》

1.9K20
领券