【Android知识笔记】应用进程(二)

这篇具有很好参考价值的文章主要介绍了【Android知识笔记】应用进程(二)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Service的启动原理

向AMS发送startService请求

startService时会首先拿到AMS的Binder代理对象,向AMS发起startService请求:

【Android知识笔记】应用进程(二),Android知识笔记,android,Service启动原理,广播收发原理,Provider启动原理

AMS处理startService请求

接下来看AMS端处理应用的startService请求:

【Android知识笔记】应用进程(二),Android知识笔记,android,Service启动原理,广播收发原理,Provider启动原理

回忆一下应用进程启动流程:

【Android知识笔记】应用进程(二),Android知识笔记,android,Service启动原理,广播收发原理,Provider启动原理

接下来看如果Service所在应用进程没有启动的情况,启动应用进程后会向 AMS 报告, AMS 在收到应用报告后 attchApplicationLocked() 方法中对Service如何处理&#x文章来源地址https://www.toymoban.com/news/detail-572385.html

到了这里,关于【Android知识笔记】应用进程(二)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Android11 init.rc添加开机自启动service

             因项目需要,在开机启动的时候需要执行can初始化命令,但是在init.rc里面又不能直接执行shell命令,所以就需要添加一个service在开机的时候执行。         在device路径下添加可执行的命令并且编译出来,添加main.cpp和Android.mk:         main.cpp          

    2024年02月15日
    浏览(45)
  • 如何判断Android的Service是否已启动或已绑定

    此内容基于CharGPT生成 要判断一个 Android Service 是否已经启动或已绑定,可以使用以下方法: 启动状态判断: 可以使用 ActivityManager 类中的 getRunningServices() 方法,该方法返回一个 ListActivityManager.RunningServiceInfo 对象,包含当前正在运行的所有服务的信息。然后可以遍历这个列表

    2024年02月07日
    浏览(48)
  • Android Binder通信原理(三):service注册

    源码基于: Android R 上一文中详细分析了 servicemanger 的启动流程 ,我们知道 servicemanager 作为 binder 机制中的一个特殊service,利用service map管理所有service,也是所有binder 通信的入口。 本文着重分析 service 的注册流程,下一文着重分析service 的获取流程。 Binder 中每个进程都会有

    2024年02月11日
    浏览(40)
  • Android Binder通信原理(五):Java 端的service 注册和获取

    源码基于: Android R 在阐述相关的知识点,先整理个框架图,后面带着框架图来分析过程: Java 端对于binder 使用大致分为: Java client Java service Java client native service Java 端service 的注册使用 ServiceManager.addService() Java 端service 的获取使用 ServiceManager.getService() 入口都是通过 Servic

    2024年02月11日
    浏览(41)
  • android服务启动失败Unable to start service Intent U=0: not found

    android启动服务失败,提示:Unable to start service Intent { cmp=xxx/.xxx} U=0: not found。检查清单文件服务配置没有错,启动服务的方法也没错。 场景:我的程序是系统应用,运行于9.0,作为launcher使用,在application onCreate中启动服务。试过延迟启动服务和配置action和Package的方式启动服

    2024年02月11日
    浏览(52)
  • Android 应用进程保活方案实战

    前台服务:将应用运行的服务设置为前台服务,让用户知道应用正在后台运行,系统会给予一定的优先级,减少被系统杀掉的概率。但是需要注意,使用前台服务保活不能大量占用用户的通知栏,否则用户可能会感到烦躁而卸载应用。 JobScheduler:Android 5.0 开始引入的一种调度

    2024年02月15日
    浏览(43)
  • Android Framework学习之Activity启动原理

    Android 13.0 Activity启动原理逻辑流程图如下:

    2024年02月05日
    浏览(53)
  • Android Binder通信原理(二):servicemanager启动

    源码基于: Android R 下图是android 8.0 之前binder 的软件框架,依赖的驱动设备是/dev/binder,binder机制的四要素分别是client、server、servicemanager和binder驱动。 对于android 8.0后的binder 和vndbinder依然同这个框架,只不过驱动的设备多加/dev/vndbinder 这篇主要分析servicemanger的流程,hwserv

    2024年02月11日
    浏览(41)
  • Android 应用启动过程优化

    应用启动流程: 1、startActivity 交给AMS判断处理(Binder通信) 2、AMS匹配到对应的应用信息后通知zygote去fork进程(socket通信) 3、反射调用ActivityThreadd的main函数之后,将匿名binder(ApplicationThread)交由AMS,建立了app的binder通信基础。 4、AMS通知App进程(binder通信)去创建启动Activity(on

    2024年02月07日
    浏览(42)
  • Android 应用启动时间统计方式

    TTID 指标用于测量应用生成第一帧所用的时间,包括进程初始化(如果是冷启动)、activity 创建(如果是冷启动/温启动)以及显示第一帧。 在 Android 4.4(API 级别 19)及更高版本中,Logcat 提供了一个 Displayed 值,用于测量从启动进程到完成在屏幕上绘制 activity 的第一帧之间经

    2023年04月25日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包