senda66
行业深耕13年程序员,java高级开发工程师、系统架构师、Android开发者、ai探索者。分享编程经验、落地方案等
展开
-
Android Shadow插件化框架分析与集成(二)
基础准备工作已经做好,接下来分析代码、会说明宿主该写哪些代码、插件该写哪些代码、以及会夹带着分析其中shadow使用的技术栈及原理、并从0到尾的来分析如何加载插件的启动activity以及各个插件包及宿主的各个包的加载逻辑及原理,以及每段代码的存在的意义。本文还会穿插介绍宿主加载插件遇到的问题及解决办法,以及如何做联调测试,可以说是非常保姆级别的教程了。原创 2024-02-29 15:46:43 · 654 阅读 · 0 评论 -
Android Shadow插件化框架分析与集成(一)
到此为止,本篇文章先介绍到这里,本篇文章主要介绍了:从源码的角度去集成shadow框架,从下载源码开始,到集成到自己的项目中,其中插件项目我是新建的demo应用,宿主应用是之前搭的一个MVP框架。文章中一步一步详细的介绍了宿主该如何集成,并提供了源码;介绍了插件该如何集成,同时也提供了源码。文章中还介绍了gradle的版本与AGP版本使用不当造成的问题,以及shadow源码的gradle版本与APG版本的配置,及和宿主插件应用gradle版本与AGP版本的关系。原创 2024-02-29 15:46:12 · 458 阅读 · 0 评论 -
Android 跨进程通信aidl及binder机制详解(二)
根据场景描述,我们需要定义一个类Car,来存放车辆的信息并实现Parcelable接口,这样做的目的就是为了能够序列化与反序列化。//定义车的属性(品牌、颜色、价格)//一开始忘记写这句话,sendData后导致服务端接收的车辆信息为空@Override@Override@Overridereturn 0;// 客户端或服务端序列化时使用@Override//客户端或服务端反序列化使用@Override'}';原创 2024-02-28 10:28:52 · 205 阅读 · 0 评论 -
Android 跨进程通信aidl及binder机制详解(一)
上文中描述了,什么是绑定服务、以及创建一个绑定服务都可以通过哪些方式,同时说了通过扩展Binder类来创建一个绑定服务,并使用一个例子来说明了客户端与服务端的绑定过程,最后又总结了绑定服务的生命周期与调用过程。由于上一篇文章都是在本地应用(单进程)下进行实战的,所以本节主要讲解跨进程通信的主要方式和开发步骤。对于Android 跨进程通信,Android官方提供了两种方式,一种是通过使用 Messenger,一种是使用AIDL。下面摘自官网描述使用 Messenger如需让接口跨不同进程工作,您可以使用原创 2024-02-28 10:24:43 · 1294 阅读 · 0 评论 -
Android service(服务)中的绑定服务(binderService)详解与使用
前两篇文章中介绍了普通的后台服务及前台服务,这些服务有个共同的特点就是,启动服务的组件和服务之间没有任何关系。要想两者之间发生点关系,那就需要将两者之间绑定起来,这就用到了绑定服务。应用组件(客户端)可通过调用绑定到服务。然后,Android 系统会调用服务的onBind()方法,该方法会返回用于与服务交互的IBinder。绑定是异步操作,并且可立即返回,无需将IBinder返回给客户端。如要接收IBinder,客户端必须创建一个实例,并将其传递给。原创 2023-03-23 14:39:45 · 12395 阅读 · 0 评论 -
Android service(服务)中的前台服务
前台服务是用户主动意识到的一种服务,因此在内存不足时,系统也不会考虑将其终止。前台服务必须为状态栏提供通知,将其放在运行中的标题下方。这意味着除非将服务停止或从前台移除,否则不能清除该通知。针对上一篇文章中的案例我们可以发现,系统对后台服务进行了限制,如果想要一直保持服务的运行就需要将服务设置为前台服务。前台服务与普通服务的区别在于它会有个通知在状态栏显示,当然有时可能也不仅仅是为了防止服务被回收才使用前台服务,有些项目的需要要求必须使用前台服务。原创 2023-03-23 14:35:42 · 4650 阅读 · 0 评论 -
万字长文带你走进Android service(服务)的理解与实战
主要介绍了服务中的一些特性,比如服务的应用场景、服务的整体概述、服务的启动与销毁,并通过案例演示了服务的生命周期。下一篇文章将介绍服务的其他特性,如:前台服务、服务与其他组件的交互过程、发送通知及绑定服务等。再下一文章中介绍Android中的进程与线程,紧接着介绍binder机制与原理,逐渐深入。原创 2023-03-23 14:28:19 · 1932 阅读 · 2 评论