Android跨进程通信基础——Binder, BinderProxy, parcel, parcelable, Stub, Stub.Proxy      百度、google 过很多文章,都没能找到能够从 API 使用者角度简单描述 Binder,BinderProxy,Parcel,Parcelable,Stub,Stub.Proxy 之间关系的文章,要么高深
# Android 线程通信实现 ## 简介 在 Android 开发中,线程通信是一项非常重要的技术。由于 Android UI 线程是单线程模型,所有和 UI 相关的操作都必须在 UI 线程中执行,否则会导致应用崩溃。而在实际开发中,我们经常需要在后台线程执行一些耗时操作,然后将结果传递给 UI 线程进行展示。本文将详细介绍如何实现 Android 线程通信。 ## 流程 | 步
原创 2023-08-18 14:03:52
147阅读
android进程内通信eventbusEventBus是github上的一个第三方开源库,主要功能是替代Intent,Handler,BroadCast在Fragment,Activity,Service,线程之间传递消息.优点是开销小,代码更简洁。其在github上的项目地址为https://github.com/greenrobot/EventBus它的官方提供的关系图如上,是一个Publish/Subscribe模式,由消息的发布者post消息,订阅者去接收消息Eve...
转载 2021-08-12 14:45:04
589阅读
1. 使用管道流Pipes “管道”是java.io包的一部分。它是Java的特性,而不是Android特有的。一条“管道”为两个线程建立一个单向的通道。生产者负责写数据,消费者负责读取数据。 下面是一个使用管道流进行通信的例子。   01. public class PipeExampleActivity extends Activity {
转载 2023-07-31 16:26:44
60阅读
一般而言,如果没有干预的话,线程在启动之后会一直运行到结束,但有时候我们又需要很多线程来共同完成一个任务,这就牵扯到线程间的通讯。如何让两个线程先后执行?Thread.join方法private static void demo2() { Thread A = new Thread(new Runnable() { @Override public void
转载 2023-06-26 23:37:16
79阅读
线程间的相互作用:线程之间需要一些协调通信,来共同完成一件任务。Object类中相关的方法有两个notify方法和三个wait方法:因为wait和notify方法定义在Object类中,因此会被所有的类所继承。这些方法都是final的,即它们都是不能被重写的,不能通过子类覆写去改变它们的行为。wait()和notify()方法要求在调用时线程已经获得了对象的锁,因此对这两个方法的调用需要放在syn
使用原因以太网中使用VLAN技术隔离二层广播域,其导致不同VLAN之间不能直接通信。在现实中,通常会有VLAN通信的情况,单臂路由技术就是解决VLAN间通信的一种方法。缺点:容易成为网络单点故障,配置稍有复杂,现实意义不大。单臂路由原理单臂路由的原理是通过一台路由器,使VLAN间通过路由器的三层转发能够互通数据,在路由器的一个物理接口通过配置子接口(即逻辑接口)的方式来实现以一当多的功能、路由器
什么是VLANVLAN(Virtual LAN),翻译成中文是“虚拟局域网”。可以看做是在一个物理局域网络上搭建出几个逻辑上分离的几个局域网。举个例子来说,如果一个交换机划分为两个VLAN,则相当于这台交换机逻辑上划分为两个交换机。VLAN的一个简单直观说明:物理上一个交换机,分为逻辑上两个分离的交换机上面这个简单例子是对一台交换机上的VLAN划分,实际上VLAN也可以越多台交换机,本质上VLA
转载 2024-04-14 16:59:36
34阅读
Java线程间的通信方式这篇文章来总结下我对JAVA多线程线程之间的通信方式的理解,主要以代码结合文字的方式来讨论线程间的通信,故摘抄了书中的一些示例代码。Java线程间的通信方式1、同步这里讲的同步是指多个线程通过synchronized关键字这种方式来实现线程间的通信。public class MyObject { synchronized public void methodA(
Android跨进程通信(一):AIDL使用教程1Android跨进程通信(二):AIDL使用教程2Android跨进程通信(三):Messenger使用教程Android跨进程通信(四):AIDL源码解析Android跨进程通信(五):Messenger源码解析介绍本篇文章将讲述Android AIDL的基本使用。AIDL叫Android接口定义语言,是用于辅助开发者完成Android跨进程编程
## Docker 主机通信原理 overlay 在Docker 中,overlay 网络是一种用于实现主机通信的网络驱动程序。它通过将多个 Docker 主机上的容器连接到一个虚拟网络中,实现了主机之间的通信。 ### overlay 网络原理 在 overlay 网络中,每个 Docker 主机上都有一个代理程序,用于管理主机与 overlay 网络之间的通信。这些代理程序会在主机
原创 2024-03-31 04:31:13
141阅读
IPC初探(一)进程间通信(IPC,InterProcess Communication)是指在不同进程之间传播或交换信息。 IPC的方式通常有管道(包括无名管道和命名管道)、消息队列、信号量、共享存储、Socket、Streams等。 Android中特有的IPC机制主要是Binder,当然也支持Socket。1. Android中的多进程模式开启多进程模式在native层fork一个新的进
前言:我们都知道Android线程通信是用Handler、Looper机制实现的,面试也经常问道,网上也有很多文章介绍源码但是可能很多小白只是机械是的记忆,回答不清楚原理究竟是怎么回事。下边我将一步一步仿写一个Handler、Looper模拟Android线程通信,很简单一看就懂。第一节 线程通信原理       所谓的通信无非就是把“你”和“我”的
# Android应用通信Android应用程序中,应用通信是一种常见的需求。这种通信方式允许一个应用程序与另一个应用程序进行交互,实现数据共享或功能调用等操作。本文将介绍Android中实现应用通信的几种常用方式,并给出相应的代码示例。 ## 1. Intent Intent是Android中用于在应用组件之间传递消息的基本机制。通过发送带有特定操作或数据的Intent,可以实现
原创 2024-06-14 06:31:44
288阅读
  Android WebView存在域访问漏洞(CNVD-2017-36682)。攻击者利用该漏洞,可远程获取用户隐私数据(包括手机应用数据、照片、文档等敏感信息),还可窃取用户登录凭证,在受害者毫无察觉的情况下实现对APP用户账户的完全控制。由于该组件广泛应用于Android平台,导致大量APP受影响,构成较为严重的攻击威胁。一、漏洞情况分析  WebView是Android用于显示网页的控
# iOS线程通讯原理 在iOS开发中,线程的使用越来越普遍。为了确保应用程序的流畅和响应,通常会将耗时的操作(如网络请求、文件读写等)放在子线程中执行,而UI更新则必需在主线程中完成。因此,线程通讯(Thread Communication)就成为了一个重要的课题。本篇文章将探讨iOS中线程通讯的原理以及实现方式,并提供代码示例。 ## 为什么需要线程通讯? 在iOS中,UIKit
原创 9月前
33阅读
Handler相关代码分析:Handler 持有 Looper 和 MessaegeQueue可以在子线程创建handler吗可以,需要调用Looper.prepare和Lo
原创 2022-08-19 12:52:19
196阅读
线程的信号槽机制需要开启线程的事件循环机制,即调用QThread::exec()函数开启线程的事件循环。Qt信号-槽连接函数原型如下:bool QObject::connect ( const QObject * sender, const char * signal, const QObject * receiver, const char *method, Qt::ConnectionType
Android开发中,`LiveData`是一个观察者模式的实现,它可以让我们在不同的组件之间进行通信。通过`LiveData`,我们能够轻松地实现组件的状态共享,而不必依赖复杂的接口或回调机制。本文详细记录了使用`LiveData`解决组件通信的过程,包括环境预检、部署架构、安装过程、依赖管理、服务验证以及版本管理。 ## 环境预检 在构建Android LiveData 组件通信
原创 6月前
55阅读
Android 通过 APT 解耦模块依赖一、APT 是什么?APT(Annotation Process Tool)是注解处理工具,它可以在编译期间扫描和处理注解,并生成相应的 Java 代码。APT 是 Java 的一个特性,但在 Android 开发中也有广泛的应用 APT 的优点是:可以在编译期间检查代码的正确性,避免运行时出现错误可以减少手写代码的数量,提高开发效率和可读性可以实现模块间
转载 11月前
101阅读
  • 1
  • 2
  • 3
  • 4
  • 5