【腾讯Bugly干货分享】Android进程保活招式大全

本文来自于腾讯bugly开发者社区,非经作者同意,请勿转载,原文地址:http://dev.qq.com/topic/57ac4a0ea374c75371c08ce8

作者:腾讯——张兴华

目前市面上的应用,貌似除了微信和手Q都会比较担心被用户或者系统(厂商)杀死问题。本文对 Android 进程拉活进行一个总结。

Android 进程拉活包括两个层面:

A. 提供进程优先级,降低进程被杀死的概率

B. 在进程被杀死后,进行拉活

本文下面就从这两个方面做一下总结。

1. 进程的优先级

Android 系统将尽量长时间地保持应用进程,但为了新建进程或运行更重要的进程,最终需要清除旧进程来回收内存。 为了确定保留或终止哪些进程,系统会根据进程中正在运行的组件以及这些组件的状态,将每个进程放入“重要性层次结构”中。 必要时,系统会首先消除重要性最低的进程,然后是清除重要性稍低一级的进程,依此类推,以回收系统资源。

进程的重要性,划分5级:

  1. 前台进程(Foreground process)

  2. 可见进程(Visible process)

  3. 服务进程(Service process)

  4. 后台进程(Background process)

  5. 空进程(Empty process)

前台进程的重要性最高,依次递减,空进程的重要性最低,下面分别来阐述每种级别的进程

1.1. 前台进程 —— Foreground process

用户当前操作所必需的进程。通常在任意给定时间前台进程都为数不多。只有在内存不足以支持它们同时继续运行这一万不得已的情况下,系统才会终止它们。

A. 拥有用户正在交互的 Activity(已调用 onResume()

B. 拥有某个 Service,后者绑定到用户正在交互的 Activity

C. 拥有正在“前台”运行的 Service(服务已调用 startForeground()

D. 拥有正执行一个生命周期回调的 Service(onCreate()onStart()onDestroy()

E. 拥有正执行其 onReceive() 方法的 BroadcastReceiver

1.2. 可见进程 —— Visible process

没有任何前台组件、但仍会影响用户在屏幕上所见内容的进程。可见进程被视为是极其重要的进程,除非为了维持所有前台进程同时运行而必须终止,否则系统不会终止这些进程。

A. 拥有不在前台、但仍对用户可见的 Activity(已调用 onPause())。

B. 拥有绑定到可见(或前台)Activity 的 Service

1.3. 服务进程 —— Service process

尽管服务进程与用户所见内容没有直接关联,但是它们通常在执行一些用户关心的操作(例如,在后台播放音乐或从网络下载数据)。因此,除非内存不足以维持所有前台进程和可见进程同时运行,否则系统会让服务进程保持运行状态。

A. 正在运行 startService() 方法启动的服务,且不属于上述两个更高类别进程的进程。

1.4. 后台进程 —— Background process

后台进程对用户体验没有直接影响,系统可能随时终止它们,以回收内存供前台进

  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
### 回答1: 腾讯云 MQTT Android腾讯云提供的一种基于MQTT协议的Android开发工具包,用于实现设备与云端之间的消息传递和通信。 首先,腾讯云是一个功能强大的云服务提供商,它提供了一系列云上解决方案和工具,包括但不限于计算、存储、数据库、人工智能等。而腾讯云MQTT是其中的一项服务,它基于物联网的需求,使用MQTT协议来进行设备与云端的通信,实现设备之间的连接和消息传递。 而在Android开发中,腾讯云提供了针对设备接入的MQTT Android开发工具包,可以帮助开发者快速实现设备与腾讯云MQTT的连接和通信。通过这个工具包,开发者可以在自己的Android应用中轻松地实现设备与云端的通信,实现数据的上传、下发以及消息的订阅和推送等功能。 使用腾讯云MQTT Android,开发者可以方便地接入腾讯云的物联网平台,使用腾讯云提供的各种功能和服务,实现设备与云端的高效通讯和数据交换。通过这个工具包,开发者可以灵活控制自己的设备,上传和接收数据,实时监控设备状态,实现设备管控、消息推送、数据分析等功能。 总之,腾讯云MQTT Android是一种强大的Android开发工具包,用于实现设备与云端的通信,为物联网应用开发提供了便捷的解决方案。它能够帮助开发者快速构建稳定的设备连接,并实现设备与云端的数据交换和通信。 ### 回答2: 腾讯云 MQTT Android 是一种在 Android 平台上使用 MQTT 协议与腾讯云进行通信的解决方案。MQTT(Message Queuing Telemetry Transport)是一种基于发布/订阅模式的轻量级通信协议,可以实现低功耗、低带宽消耗的物联网设备间通信。 腾讯云提供了 MQTT Android SDK,供开发者使用。使用该SDK,我们可以轻松地在 Android 应用程序中实现与腾讯云的通信,比如设备注册、数据上传、命令下发等操作。 首先,我们需要在腾讯云控制台创建一个 MQTT 实例,获取到 Access ID、Access Key 和 Secret Key 等信息,并设置相应的设备和 Topic。 然后,我们需要在 Android 应用程序中集成 MQTT Android SDK,可以通过 Gradle 引入相关依赖。在应用程序初始化的时候,我们需要调用 SDK 提供的初始化方法,并传入 Access ID 和 Secret Key 等信息进行身份验证。 接下来,我们可以实现设备注册的逻辑,使用 SDK 提供的方法进行设备的注册,注册成功后,腾讯云会返回一个 Device ID。 然后,我们可以通过 MQTT Android SDK 提供的方法连接到腾讯云的 MQTT 服务。一旦连接成功,我们就可以订阅相关的 Topic,接收来自其他设备的消息,也可以发布消息给其他设备。 在需要上传数据时,可以使用 SDK 提供的方法进行数据的发布,将数据发送给其他设备或者腾讯云服务器。 在需要接收指令时,我们可以通过监听 MQTT 的消息回调,实现对来自腾讯云或其他设备的指令进行处理。 总之,腾讯云 MQTT Android 提供了一种方便、高效的方式,使我们能够在 Android 平台上与腾讯云进行物联网设备的通信。无论是设备注册、数据上传、指令下发等功能,都可以通过 MQTT Android SDK 快速实现。 ### 回答3: 腾讯云MQTT Android是一种基于腾讯云MQTT协议的Android移动互联网通信解决方案。MQTT(Message Queuing Telemetry Transport)是一种轻量级的消息传输协议,其特点是开销小、传输速度快、使用简单。腾讯云MQTT Android提供了一套完整的开发工具库,使开发者可以在Android应用中集成腾讯云的MQTT通信服务。 腾讯云MQTT Android可以实现Android设备和腾讯云IoT平台之间的相互通信。它可以用于各种场景,如智能家居系统、智能穿戴设备、车联网等,通过云端服务器与Android设备之间实现设备之间的消息交互,以及与用户手机的远程控制。 腾讯云MQTT Android提供了可靠的消息订阅和发布功能,可以实现设备之间的双向通信。它还具有数据加密和认证机制,保证通信的安全性。同时,腾讯云MQTT Android支持可自定义的QoS(服务质量),保证消息的准确传输。 使用腾讯云MQTT Android开发应用程序可以简化开发流程,提高开发效率。它提供了丰富的API接口和示例代码,开发者可以根据自己的需求定制和扩展。腾讯云提供了完善的文档和技术支持,帮助开发者快速上手和解决问题。 总之,腾讯云MQTT Android是一种强大且易于使用的通信解决方案,为Android应用开发者提供了一种快速、安全和可靠的手段,实现设备间的互联互通。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值