移动端测试面试题汇总
安卓和ios平台特性
平台特性
沙盒机制
苹果公司推出的系统安全机制,ios上每个已用都有自己对应的沙盒,在没有越狱的情况下,每个应用程序之间不能相互访问,沙盒的作用的存储数据,相当于每个应用的系统目录
伪后台
后台驻留的是最近使用过的程序,而不是执行中的程序,一般按下home键后,若程序有额外的背景执行作业,超过10分钟会被ios中止。
ios只会给部分进程留有后台运行的权限,比如音乐播放。
苹果一直只能有一个程序在工作,其他的都会停掉,所以非常流畅
程序被停了,但是没有释放内存,继续放在内存中,好处是再次打开程序会回到之前关闭程序的界面,程序快速的继续运行。内存不够的时候,会按照程序的优先级和使用次数来决定哪些程序首先清出后台,挂起。
所以home键qq后,会自动下线,因此引入推送来解决这个问题
安卓后台
程序后台活动和前台没有区别,系统有一个规则来回收内存,进行内存调度有个阈值,只有低于这个值系统才会按一个列表来关闭用户不需要的东西。这个值默认设置得很小,实际不影响速度,相反加快了下次启动应用的速度,这也是安卓的优势之一
内存剩余不多的时候打开大型程序,会触发系统自身的进程调度策略,这是十分消耗系统自愿的的操作,这种情况下选择性关闭进程。
安卓应用切换到后台的时候,onStop()状态,已经被暂停了,并不会消耗cpu,只保留了运行状态,所以有些程序切出去重进会进入到主界面。
但是若一个程序想在后台处理些东西,比如音乐播放,就会开启一个服务,服务可在后台持续运行,所以在后台耗电的也只有带服务的应用了。标签service
安卓每打开一个应用就会打开一个独立的虚拟机,避免虚拟机崩了导致整个系统崩溃,代价是内存消耗
activity生命周期流程图
Android系统的底层是建立在Linux系统上的,本质是在标准的Linux系统上增加了Java虚拟机Dalvik,并在Dalvik虚拟机上搭建了一个Javaapplication framework,所有的应用程序都是基于Java的application framework之上。
- onCreat:创建activity时调用
- onStart:窗口显示activity,对用户可见时调用
- onResume:activity和用户开始交互时调用
- onPause:activity被暂停或回收cpu和其他资源时调整,该方法用于保存活动状态
- onStop:activity被停止或转为不可见阶段及后续的生命周期事件时调用
- onRestart:重启activity时被调用,该活动仍在栈中,而不是启动新的活动
- onDestroy:activity被完全从系统内存中移除时调用
安卓的四大组件
activity、service、content provider、broadcast receiver
activity
- 一个activity通常是一个单独的屏幕
- ac