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

Android 8.0 -工作意向服务在启动时不运行应用程序

Android 8.0引入了一项名为"工作意向服务"的新功能,该功能允许应用程序在启动时不立即运行,而是在特定条件下才会被激活。这种方式可以减少应用程序对系统资源的占用,提高设备的性能和电池寿命。

工作意向服务适用于那些需要在特定条件下执行任务的应用程序,例如社交媒体应用程序在接收到新消息时才需要运行。通过使用工作意向服务,应用程序可以在后台等待,直到满足特定条件后才会被系统激活。

工作意向服务的优势包括:

  1. 节省系统资源:应用程序不会在启动时立即运行,而是在需要时才会被激活,从而减少了对系统资源的占用。
  2. 提高电池寿命:由于应用程序不会持续运行,因此可以减少电池的消耗,延长设备的电池寿命。
  3. 提升性能:通过减少后台运行的应用程序数量,可以提高设备的整体性能和响应速度。

工作意向服务的应用场景包括:

  1. 社交媒体应用程序:可以在接收到新消息或通知时激活应用程序,以便及时更新内容。
  2. 邮件应用程序:可以在接收到新邮件时激活应用程序,以便及时通知用户。
  3. 新闻应用程序:可以在有新闻更新时激活应用程序,以便及时推送最新的新闻内容。

腾讯云提供了一系列与移动应用程序开发相关的产品和服务,其中包括:

  1. 腾讯移动分析(https://cloud.tencent.com/product/mta):提供移动应用程序的用户行为分析和统计功能,帮助开发者了解用户使用情况。
  2. 腾讯移动推送(https://cloud.tencent.com/product/tpns):提供移动应用程序的消息推送服务,可以实现消息的即时推送和定时推送。
  3. 腾讯移动短信(https://cloud.tencent.com/product/sms):提供移动应用程序的短信验证码发送服务,用于用户身份验证和安全验证等场景。

以上是关于Android 8.0工作意向服务的概念、优势、应用场景以及腾讯云相关产品的介绍。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

.NET 8 中 Android 资源生成的改进和变化

因此应用程序Resource类是唯一具有正确 Id的类。 旧系统使用了名为 UpdateIdValues 的方法,该方法启动时调用。...这将改善应用程序的大小和启动时间。 这个新系统是如何运作的?...新系统依赖于解析 aapt2 构建过程中生成的 R.txt 文件。在运行 C# 编译器之前,将解析 R.txt 文件并生成新的程序集。...这是为了保持与旧的Resource.designer.cs文件应用程序项目中的工作方式的向后兼容性 。 测试表明我们可以将启动时间缩短约 8%。整体封装尺寸大约减少 2%-4%。...如果包含.aar,在运行时将会出现资源丢失错误,例如: System.MissingMethodException: 'Method not found: int .Style.get_MyTheme

20010

Android系统启动过程

引导程序BootLoader   引导程序BootLoader是Android操作系统开始运行前的一个小程序,它的主要作用是把系统OS拉起来并运行 三。...,但是系统进程表中还为它保留了一定的信息(比如进程号、退出状态、运行时间等),这个子进程就被称作僵尸进程 6.Android8.0中对init.rc文件进行了拆分,每个服务对应一个rc文件,Zygote...即使系统或者软件重启,其还是能够根据之前注册表中的记录,进行相应的初始化工作。...Android也提供了一个类似的机制,叫做属性服务 8.DVM和ART、应用程序进程以及运行系统的关键服务的SystemServer进程都是由Zygote进程来创建的,我们也称它为孵化器 9.SystemServer...12.通俗讲Launcher就是系统的桌面,它的作用主要有以下两点   1)作为Android系统的启动器,用于启动应用程序   2)作为Android系统的桌面,用于显示和管理应用程序的快捷图标或者其他桌面组件

91520

Android Studio 3.2新功能特性

重要提示:在当前的Android Studio 3.2 Canary版本中,存在一个已知问题,导致android.useAndroidX使用“ 创建新项目”向导时设置标志。...布局编辑器中的示例数据 许多Android布局具有运行时数据,这使得应用程序开发的设计阶段难以可视化布局的外观和感觉。您现在可以布局编辑器中轻松查看您的视图预览,其中包含示例数据。...当您在运行Android 8.0(API 26)或更高版本的连接设备或Android模拟器上运行应用程序时,Energy Profiler会显示为Profiler窗口底部的新行。...在所需运行配置的“Profiling”选项卡下,选中启动时记录方法跟踪旁边的复选框。 从下拉菜单中选择要使用的CPU记录配置。...通过选择Run > Profile将应用程序部署到运行Android 8.0(API级别26)或更高版本的设备。

5.4K10

android:persistent和android:priority的区别,对进程优先级有什么影响?

进程优先级是由Android系统动态管理的,根据当前运行应用程序的活动程度和资源需求来进行调整。系统会根据一些因素(例如用户当前正在与之交互的应用、前台服务等)来确定进程的优先级。...JobScheduler(Android 5.0后引入,8.0后失效):使用JobScheduler调度任务来定期唤醒Service。...像素Activity保活方案(推荐):创建一个透明的1像素Activity,并设置为悬浮窗口,以维持应用的运行。...第三方推送SDK唤醒:使用第三方推送SDK的唤醒机制来保活,但需要接入第三方服务。 Native层fork子进程:native层创建一个子进程并与主进程进行通信,实现互相拉活。...实现这种持久性的原理是,AMS(ActivityManagerService)系统启动时加载所有persistent为true的应用。

57410

咦,Oreo怎么收不到广播了?

意图明确,指定了要激活的组件是哪个组件,一般是相同的应用程序内部实现的。...Android系统会根据隐式意图中设置的动作(action)、类别(category)、数据(URI和数据类型)找到最合适的组件来处理这个意图。一般是用于不同应用程序之间。...Android8.0的后台执行限制 注意是针对targetSDK >= 26的应用,也就是说,targetSDK小于26的话,暂不受影响 Oreo中,为了进一步提升用户体验,进一步节省功耗,对应用在后台运行时可以执行的操作又进一步施加了限制...只不过,Android8.0上,又进一步的增强了限制,除了以下隐式广播外,其他所有隐式广播均无法通过AndroidManifest.xml中注册监听 // Android 8.0 上不限制的隐式广播.../** 开机广播 Intent.ACTION_LOCKED_BOOT_COMPLETED Intent.ACTION_BOOT_COMPLETED */ "保留原因:这些广播只首次启动时发送一次

1.9K40

如何优化您的 Android 应用(Go 版)

尽管 Google 已经完成了大量工作来优化我们的应用,例如搜索,助理,地图和 YouTube,但应用和游戏开发人员确保他们的产品能够在这些设备上顺利运行也很重要,以便用户入门级价位上享受优质体验。...要低于 50 MB,游戏要低于 150 MB 将您的应用或游戏的冷启动时间保持 5 秒以下 现在我们来看一下这些性能指标,以现有 Android 开发人员为例。...按照以下说明测试内存分配: 安装应用程序并将设备连接到工作站/笔记本电脑后,启动应用程序并等待到达欢迎屏幕(我们建议等待 5 秒钟以确保所有内容都已加载) 终端中,运行命令 adb shell...保持冷启动时 5 秒以下 感知是关键。在用户测试和研究中,等待应用程序或游戏加载5秒后,人们会感到沮丧,这会导致放弃和卸载。...我们总是测量冷启动时间,因为这段时间是您的应用程序与用户充分交互。完成重新启动测试设备后,最好在冷启动时间内运行测试。

1.8K20

Android 如何获取有效的DeviceId

不要使用 MAC 地址 MAC 地址具有全局唯一性,无法由用户重置,恢复出厂设置后也不会变化。因此,一般建议使用 MAC 地址进行任何形式的用户标识。...SSAID,即ANDROID_ID(Settings.Secure.ANDROID_ID),8.0系统迎来改变,具体如下: 对于 OTA 之前安装到某个版本 Android 8.0(API 级别 26...要在 OTA 后卸载期间保留值,开发者可以使用密钥/值备份关联旧值和新值。 对于安装在运行 Android 8.0 的设备上的应用,ANDROID_ID 的值现在将根据应用签署密钥和用户确定作用域。...而8.0之前,ANDROID_ID是与设备关联的,当设备首次启动时,系统会随机生成一个64位的数字,并以16进制字符串的形式保存到手机系统中,当手机恢复出厂设置后,Android ID会被重置,这是Android...ANDROID_ID Android 8.0之后,就可以考虑用ANDROID_ID来代替DeviceId了。

6.5K30

Android SELinux权限概念和配置说明

Android 8.0及更高版本中,对这些文件所做的更改只会影响供应商目录中的政策。 无论是哪个Android版本,都仍需要修改以下文件: 2.1.1....服务上下文service_contexts Android8.0中,service_contexts拆分成了以下文件: plat_service_contexts servicemanager的Android...Android 8.0及更高版本SElinux存放位置变更 Android 7.0及更低版本中,设备制造商可以将政策添加到BOARD_SEPOLICY_DIRS,包括用来不同设备类型之间增强AOSP...政策的政策 Android 8.0及更高版本中,将政策添加到BOARD_SEPOLICY_DIRS会将该政策仅存放在供应商映像中 Android 8.0及更高版本中,政策位于AOSP中的以下位置:...新服务模块添加权限 通过init启动的服务需要在各自的SELinux域中运行。以下示例会将服务“foo”放入它自己的SELinux网域中并为其授予权限。

8.9K53

谷歌最新发布:2017年度Android安全回顾报告

这是Google第四次发布安全年度回顾报告,旨在告知用户Android移动操作系统的多种安全保护层级和该系统的安全特点。...我们前面多次讲过Android8.0的重大变化就是体现在在安全框架上,如下图所示,Android8.0及其后续版本有了明确了安全边界!这样对于漏洞修补、版本升级具有十分重要的意义!...另外一个报告中强调的是60.3%的潜在恶意应用(Potentially Harmful Apps,PHAs)都是由机器学习技术检测,通过Google Play Protect的服务来完成的,该服务已经预装在了超过...20亿台运行Android 4.3及以上系统版本的Android设备上,并将持续扫描并发现有恶意行为的应用程序。...值得注意的是报告中数据依旧包含国内情况。 获取完整报告请从Google官网下载,或者联系安智客!

836130

Android 一直怎样速度上追赶 iOS

这样,系统被唤醒的次数大幅减少,CPU也不用频繁的工作,手机也就不会这么卡顿和耗电了。 ?...Android Runtime(缩写为 ART),是一种Android操作系统上的运行环境,由Google公司研发。...ART能够把应用程序的字节码转换为机器码,是Android所使用的一种新的虚拟机。...嗜睡模式,Doze模式中,系统尝试去通过减少应用的网络访问和CPU敏感的服务来保护电池。...简而言之,就是一个内置系统的机器学习工具。 ? 同时,8.0版本还针对应用启动的进程进行优化,包括并发进程、压缩收集的垃圾信息和代码区域等。此外还有针对后台服务的限制,防止应用程序在后台运行太久。

99620

Android 8.0 功能和 API(翻译自Google官网)

使用要求执行此类重复性任务的应用时,用户很容易遭受挫折。 Android 8.0 通过引入自动填充框架,简化了登录和信用卡表单之类表单的填写工作。...视图默认焦点 Android 8.0 中,您可以指定在(重新)创建的操作组件继续运行并且用户按下键盘导航键(例如 Tab 键)之后应接收焦点的 View。...要将一个工作项添加到作业的队列中,请调用 JobScheduler.enqueue()。当作业运行时,它可以将待定工作从队列中剥离并进行处理。...它们可以加快启动时间,并为 OS 和应用带来更好的性能。...8.0 58.2 30.0.3 9.0 Android 企业版 已为运行 Android 8.0 的设备引入新的企业功能和 API。

2.9K30

图解 | Android系统的启动

Android源码基于8.0。 init进程是Linux内核启动完成后在用户空间启动的第一个进程,主要负责初始化工作、启动属性服务、解析init.rc文件并启动Zygote进程。...Zygote进程是一个进程孵化器,负责创建虚拟机实例、应用程序进程、系统服务进程SystemServer。...由于Zygote进程启动时会创建虚拟机实例,由Zygote fork出的应用程序进程和SystemServer进程则可以在内部获取到一个虚拟机实例副本。...进程启动各项服务(PMS、AMS等) AMS服务启动Launcher桌面 image.png Zygote进程启动好服务端socket后,便会等待AMS的socket请求,来创建应用程序进程。...PMS、AMS等系统服务启动后会调用ServiceManager.addService()注册,然后运行在自己的工作线程。

76930

Android 开发艺术探索笔记二

Android 8.0源码 WMS创建涉及三个线程,分别是system_server、android:display、android:ui之间关系 首先system_server线程中执行了systemServer...的init方法,PWM的init方法会在android:ui线程中运行,它的优先级要高于android:display线程,因此android:display要等待init方法执行完毕后,android...一个应用处于停止有两种情形: 应用安装后未运行 应用被手动或其他应用强停了 从android3.1开始,处于停止的应用无法接收到开机广播 broadcastIntentLocked内部,根据intent-filter...ContentProvider工作过程 当contentProvider所在的进程启动时,contentProvider会同时启动并发布AMS中,**注意:这个时候ContentProvider的onCreate...当一个应用启动时,入口方法为activityThread的main方法,main方法是一个静态方法,main方法中创建activityThread实例并创建主线程的消息队列,然后activityThread

1.8K10

升级到 MySQL 8.0,付出了惨痛的代价!

对于每个应用程序工作负载,我们 8.0 上创建了测试实例,并向它们回放影子流量的查询。我们捕获并记录了从 8.0 服务器返回的错误,并发现了一些有趣的问题。... 5.6 和 8.0 之间还发现了有些 REGEXP 兼容。...这一努力使 8.0 的内存使用率降到了可以接受的水平。 6、接下来的工作 到目前为止,8.0 的移植已经花了几年时间。我们已将许多 InnoDB 副本集转换为完全 8.0运行。...其次,检测 API 更改要困难得多,因为 5.7 可能会向我们的应用程序客户端发出推荐警告,以提示修复潜在的问题。而我们需要在迁移生产工作负载之前,运行额外的影子测试来查找失败。...尽管我们迁移过程中遇到了种种障碍,但我们已经看到了运行 8.0 带来的好处。一些应用程序选择了提早迁移到 8.0,以利用诸如文档存储和改进的日期时间支持等功能。

1.4K20

Android内存管理(六)Android对Linux系统的内存管理机制进行的优化

所以,Android现在推荐显式的“退出”应用。...从Android 8.0开始,出于节省系统资源、优化用户体验、提高电池续航能力的考量,系统进行了前台/后台应用的区分,对于后台service进行了一些限制。...由于运行服务的进程其级别高于托管后台 Activity 的进程,因此, Activity 中启动一个长时间运行的操作时,最好为该操作启动服务,而不是简单地创建工作线程,当操作有可能比 Activity...从理论上来讲,无论是哪种情况,没有任何后台工作线程(即便应用处于后台,工作线程仍然可以执行)的前提下,被置于后台的进程都只是保留他们的运行状态,并不会占用CPU资源,所以也耗电。...所以说没有带后台服务的应用是耗电也不占用CPU时间的,没必要关闭,这种设计本身就是Android的优势之一,可以让应用下次启动时更快。

1.6K10

Android 逆向之 xposed

Xposed 网上关于Xposed的介绍很多,但都是点到为止,比如: Android系统中,应用程序进程以及系统服务进程SystemServer都是由Zygote进程孵化出来的,而Zygote进程是由...Init进程启动的,Zygote进程启动时会创建一个Dalvik虚拟机实例,每当它孵化一个新的应用程序进程时,都会将这个Dalvik虚拟机实例复制到新的应用程序进程里面去,从而使得每一个应用程序进程都有一个独立的...Zygote进程启动的过程中,除了会创建一个Dalvik虚拟机实例之外,还会注册一些Android核心类的JNI方法到Dalvik虚拟机实例中去,以及将Java运行时库加载到进程中来。...包加载到每一个Android应用程序中的原因, 我当然不会满足于这么一点浅薄的介绍,既然用这个框架了,那就得把这个框架搞清楚对?...Zygote进程也例外,它是系统启动的过程,由init进程创建的。

2.4K20

升级到 MySQL 8.0,Facebook 付出的代价。。

对于每个应用程序工作负载,我们 8.0 上创建了测试实例,并向它们回放影子流量的查询。我们捕获并记录了从 8.0 服务器返回的错误,并发现了一些有趣的问题。... 5.6 和 8.0 之间还发现了有些 REGEXP 兼容。...这一努力使 8.0 的内存使用率降到了可以接受的水平。 6、接下来的工作 到目前为止,8.0 的移植已经花了几年时间。我们已将许多 InnoDB 副本集转换为完全 8.0运行。...其次,检测 API 更改要困难得多,因为 5.7 可能会向我们的应用程序客户端发出推荐警告,以提示修复潜在的问题。而我们需要在迁移生产工作负载之前,运行额外的影子测试来查找失败。...尽管我们迁移过程中遇到了种种障碍,但我们已经看到了运行 8.0 带来的好处。一些应用程序选择了提早迁移到 8.0,以利用诸如文档存储和改进的日期时间支持等功能。

72130

第132期:flutter的导航和路由

没有复杂深度链接的小型应用程序可以使用Navigator,而具有特定深度链接和导航要求的应用程序也应该使用Router来正确处理Android和iOS应用上的深度链接,并在应用程序web上运行时与地址栏保持同步...基于这些原因,官方其实是建议大多数应用中使用命名路由。 当然,实际开发过程中,我们需要根据实际情况进行调整。...同时使用Router和Navigator Router和Navigator设计时就可以协同工作。...如果我们web浏览器中运行应用程序,则无需额外设置。路由路径的处理方式与iOS或Android深度链接相同。... Android 上启用 深度链接 Deep linking 只需要在AndroidManifest.xml配置文件中的标签中添加一个元数据标签和意向过滤器标签即可: <!

2K30

笔记之Android架构组件-WorkManager

) 开始,如果一个应用的目标版本为Android 8.0,当它在某些不被允许创建后台服务的场景下,调用了Service的startService()方法,该方法会抛出IllegalStateException...并且出台了一些新政策: 1、2018年8月: 所有新开发应用的target API level必须是26(Android 8.0)甚至更高。...所以,不久的将来,service的使用范围会越来越小,取而代之的,是谷歌推出的新的技术:WorkManager。 WorkManager工作的触发器 满足时, 运行可推迟的后台工作。...如果我们需要逐步建立一个长期的任务链,那么唯一的工作序列也会很有用,例如,照片编辑应用可能会让用户撤消一长串的操作,每个撤销操作可能需要一段时间,但必须按正确的顺序执行,在这种情况下,应用程序可以创建一个...如果进程被杀死,或者不满足约束条件时,那么WorkManager是不会运行的。当约束继续得到满足时,或者程序重新启动时,系统将重新尝试执行该任务。

87410
领券