当前位置: 首页 > article >正文

Android SurfaceFlinger——共享内存读写流程(五十五)

        通过上一篇文章的介绍,我们知道了应用进程与 SurfaceFlinger 进程之间的跨进程通信最终选择匿名共享内存的方式实现。并了解了共享内存基本使用方法,这里我们继续了解一下共享内存的粗写操作。

一、写入数据

1、MemoryFile

源码位置:/frameworks/base/core/java/android/os/MemoryFile.java

        写入操作能看到就是获取 MemoryFile 的 OutputStream 对象进行操作。

private class MemoryOutputStream extends OutputStream {
    private int mOffset = 0;
    private byte[] mSingleByte;

    @Override
    public void write(byte buffer[], int offset, int count) throws IOException {
        writeBytes(buffer, offset, mOffset, count);
        mOffset += count;
    }

    @Override
    public void write(int oneByte) throws IOException {
        if (mSingleByte == null) {
            mSingleByte = ne

http://www.kler.cn/a/281790.html

相关文章:

  • 某校园网登录界面前端加密绕过
  • Cesium 相机系统
  • 14. 乘法口诀挑战赛
  • 小鹏汽车大数据面试题及参考答案
  • 本地文件如何推送到git仓库
  • Java通过calcite实时读取kafka中的数据
  • 私有云仓库Harbor,docker-compose容器编排
  • Oracle迁移至openGauss的工具:ora2op的安装配置
  • redis | 认识非关系型数据库Redis的列表类型及python如何操作redis
  • P10641 BZOJ3252 攻略
  • android开发中使用WebView性能优化攻略
  • python从入门到精通:文件操作
  • 企业对个人信息数据的保护 | CCRC-PIPP​ 个人信息保护专业人员
  • uniapp+vue3+setup返回上一页传参
  • cthub-ssrf通关攻略
  • 【有来开源组织】开发规范手册
  • 【系统架构设计师-2016年】综合知识-答案及详解
  • Runtime:源码解析Golang 的map实现原理
  • 《软件工程导论》(第6版)第1章 软件工程学概述 复习笔记
  • 【Qt】QLCDNumber | QProgressBar | QCalendarWidget
  • GPT-4、Claude 3 Opus 和 Gemini 1.0 Ultra 挑战控制工程的新领域
  • docker——compose容器编排!!!
  • RPC(Remote Procedure Call,远程过程调用)实现跨进程级别调用的原理
  • 数分基础(03-3)客户特征分析--Tableau
  • Java nio Pipe 结合 Select
  • 爆改YOLOv8|利用全新的聚焦式线性注意力模块Focused Linear Attention 改进yolov8(v1)