
第一个问题比较复杂,和安卓的进程管理策略有关,和软件的权限设置有关,和消息推送机制有关。
第二个问题,主要和手机内存大小以及手机厂商的系统设定有关。
下面开始详细分析:
首先回答第一个问题:
原因一 ,安卓的进程管理策略和windows不一样,关闭应用并非立刻结束进程,而是将进程保留在内存中。这样做的目的是为了再次打开该应用时,能够提升启动速度。同时,保留在内存中的进程一般不太占资源,基本不影响整体的运行速度。
当然,内存大小是有限的,进程保留不可能无限,系统会设定一个阈值,当内存占用达到一定程度后,系统就会开始关闭用户后台进程(判断规则由不同厂商的系统决定)。
这也是安卓手机内存越大,系统越流畅的原因,因为能保留的进程越多,软件启动速度就越快。
原因二 ,中国的安卓应用良莠不齐,APP乱象丛生,喜欢调用各种敏感权限,方便收集用户数据等等。所以,很多APP都设置了自动启动,哪怕你关闭了应用,也会重新启动。
原因三 ,安卓的消息推送机制和IOS不一样,IOS有苹果专门搭建的消息服务器。所有APP的消息都是先发给苹果的消息服务器,再由服务器发送到IOS设备,这样,APP无需常驻后台。
而安卓系统不行,手机厂商各自为战,APP也只能各走各的通道,所以,像是微信、QQ这种应用,就必须常驻后台。
接下来是第二个问题:
原因一 ,上文谈到,手机内存大小有限,当保留的进程超过阈值后,系统就会开始关闭后台进程(切换走的应用就会变成后台进程)。如果你的应用恰好被系统判定为优先关闭,那么肯定会迅速关闭。
解决这个问题的方法,就是换一台大内存的手机。
原因二 ,跟手机厂商的系统设定有关。保留在内存中的进程一般不太占资源,但是积少成多,总会影响系统整体的运行速度,同时也会加重cpu负荷,导致费电。
现在电池技术迟迟无法突破,所以,手机厂商为了保障手机续航,也为了提高系统流畅度,会将阈值设置的比较小,很容易开始关闭后台进程,也就是俗称的杀后台严重。
当然,我上面列举的原因并不全面,但希望对你有所帮助。
希望我的回答对你有所帮助
安卓系统会缓存程序,供后续再次打开程序时使用。
一种是手机系统白名单应用,退出了会一直在后台运行,不会被系统结束掉,就算用户手动结束了,他也会自启动,另外一种是通过其它运行的应用启动他可使用android自带的>不是做不到而是他们两个根本就不是一回事。
苹果根本就不允许后台运行全部是由苹果的服务器来通知消息。
而安卓本身就允许后台运行,这些都是次要的,最主要的是国内的安卓没有一个是原版安卓都是经过各自厂家改版的安卓系统。而且没有统一的应用商店导致流氓软件更加泛滥。
如果用纯正的谷歌手机这种现象是没有的。
你可以下载一个安全软件进行管理。
android客户端和服务器端是基于IntentService的,具体如下:
后台使用简单的servlet,支持GET或POST。这个servlet最终返回给前台一个字符串flag,值是true或false,表示登录是否成功。
然后在安卓的ADT上创建一个安卓项目,建立两个Activity,分别作为登录界面和登录成功界面。
>
IntentService服务,用于在后台以队列方式处理耗时 *** 作。
在AndroidManifestxml中注册IntentService。注意uses-permission节点,为程序开启访问网络的权限。
登陆界面处理,注意按钮监听事件中,使用Intent将要传递的值传给service。接收广播类中,同样使用Intent将要传递的值传给下一个Activity。在onCreate()中,动态注册接收广播类的实例receiver。在接收广播类中,不要使用完毕后忘记注销接收器,否则会报一个Are you missing a call to unregisterReceiver() 的异常。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)