Android服务使用
文章平均质量分 92
mayundoyouknow
喜欢运动,爱思考
展开
-
【Android】Binder连接池
本文代码:Github先说说问题吧,AIDL需要一个客户端和一个服务端,服务端往往是一个service,但是这样就会有问题,当团队多了,模块多了,每个模块自己一个service,显然这样是很坑爹的。所以,引入Binder连接池。一、实现思路Binder连接池原理.png对于每个AIDL接口,分别实现对应的Binder,统一一个service,然后每次bind service的时候,通过一个连接池来进行Binder分发,queryBinder里面通过请求的code来决定分配哪个Binder转载 2022-01-23 10:32:45 · 761 阅读 · 1 评论 -
Android之Binder和AIDL原理
前言插件化技术火热已久,为什么会有插件化,时势造英雄吧,随着移动互联网的快速发展,业务的飞速增长,如何在有限时间给用户提供高质量的APP,当线上出现各种BUG,如何快速修复并发布上线,插件化的意义也就在这里了。目前插件化解决方案分为两个方向,一是以张勇的DroidPlugin框架为代表的动态替换方案,对Android底层的各种类进行Hook,来达到加载插件的四大组件的目的;二是以任玉刚的DL框架为代表的静态代理方案,通过ProxyActivity统一加载插件中的Activity。如何学好插件化这不是一件转载 2022-01-19 20:46:57 · 493 阅读 · 0 评论 -
android跨进程通信
这篇文章涉及的知识点:Binder的应用场景及原理 AIDL的应用场景及原理 Messenger的应用场景及原理 Service官网:注:只有允许不同应用的客户端用 IPC 方式访问服务,并且想要在服务中处理多线程时,才有必要使用 AIDL。 如果您不需要执行跨越不同应用的并发 IPC,就应该通过实现一个 Binder创建接口;或者,如果您想执行 IPC,但根本不需要处理多线程,则使用 Messenger 类来实现接口。无论如何,在实现 AIDL 之前,请您务必理解绑定服务。这段话说转载 2022-01-19 20:23:50 · 872 阅读 · 0 评论 -
Service的跨进程通信实战
设想这么一个场景,我们有2个APP(或者2个进程,均可),其中一个APP需要提供一个Person相关的服务(该服务有一个名为eat的接口),我们叫它PersonServer;另一个APP需要访问PersonServer提供的服务,我们叫它Client。也就是现在有2个APP,一个作为Server端,提供服务,另一个作为Client端,使用服务。我们来看如何在Android中实现?PersonServer端实现PersonServer端是服务的提供者,我们首先需要创建一个Service来提供该服务转载 2022-01-19 14:33:58 · 776 阅读 · 0 评论 -
Android7.0以后你不知道的JobService坑
JobService是什么这里就不多介绍了; JobService是Android5.0以后出来的,随着Android版本的发布,google对系统的性能要求越来越高;从7.0以后对后台系统服务进行了限制(参阅官方的7.0行为变更后台优化);最近在项目中发现了以前写的心跳包机制在某些机型上无法心跳的问题,经过问题排查发现是系统版本的差异,在Android7.0以后JobService无法正常按照设置的执行周期执行后台任务。之前的代码:public void startHeartbeat(Context转载 2022-01-17 17:44:06 · 953 阅读 · 1 评论 -
Android前台服务讲解三关键类说明
1.如何创建通知?/** * 创建服务通知 */ private fun createForegroundNotification(): Notification { val notificationBuidler = NotificationCompat.Builder(applicationContext, notificationChannelId) //通知小图标 notificationBuidler.setSmal原创 2022-01-17 11:15:41 · 256 阅读 · 0 评论 -
Android前台服务讲解二之自定义通知视图(RemoteViews)及数据UI更新
Notification支持文字内容显示、震动、三色灯、铃声等多种提示形式,在默认情况下,Notification仅显示消息标题、消息内容、送达时间这3项内容。1.更新系统通知Notification显示数据1.1创建通知 /** * 创建服务通知 */ private fun createForegroundNotification(): Notification { val builder: NotificationCompat.Builder原创 2022-01-16 19:25:26 · 4889 阅读 · 0 评论 -
Android前台服务讲解一
1.服务是什么(Service)Service 是一种可在后台执行长时间运行操作而不提供界面的应用组件。服务可由其他应用组件启动,而且即使用户切换到其他应用,服务仍将在后台继续运行。此外,组件可通过绑定到服务与之进行交互,甚至是执行进程间通信 (IPC)。例如,服务可在后台处理网络事务、播放音乐,执行文件 I/O 或与内容提供程序进行交互。2.前台服务(ForegroundService)是什么?前台服务执行一些用户能注意到的操作。例如,音频应用会使用前台服务来播放音频曲目。前台服务必须显示通知原创 2022-01-16 13:57:45 · 13121 阅读 · 0 评论