Android专用驱动构成了Android运行时的基石。
从技术上来讲,Android专用驱动也是整个Android系统的亮点,特别是Binder驱动。
Binder是一种进程间通信机制(IPC),它与传统的IPC机制对比,最大的特点是高效,因为通信数据在两个进程之间只需要执行一次拷贝即可。
Binder在Android系统里面使用得非常广泛以及频繁。
在涉及到比较大的通信数据时,Binder通常还结合另外一个驱动Ashmem来使用。
Ashmem是一个共享内存驱动,它与传统的共享内存相比,最大的特点是它是通过文件描述符来描述的,并且可以动态地进行分块管理。
动态分块管理的目的是可以将部分不再使用了的内存交回给系统,非常适合内存较小的移动设备使用。
另外一个专用驱动Logger是一个日志驱动,它与传统的日志系统对比,特点是日志是记录在内核空间而非文件中,这样就可以提高日志的读写速度。
这个PPT讲Logger、Binder和Ashmem三个Android专用驱动的实现原理。
由于这三个驱动在Android源代码里面用得非常广泛和频繁,因此理解它们的实现原理,就可以掌握Android的精华。
这对以后阅读Android系统的其它代码,也是非常有帮助的。
2023/12/26 3:56:01 1.29MB Android Binder Logger Ashmem
1
当程序运行时,父进程fork出4个子进程。
父进程负责产生消息(每1s产生一个消息),4个子进程负责处理消息。
父子进程之间通过消息队列来传递消息。
父进程需要维护一个本地数据库(格式与共享数据库相同),当生成一个消息时,父进程要同步更新本地数据库。
子进程在处理消息时,根据消息的内容来对共享数据库进行更新
1
两卷本的《UNIX网络编程》是已故著名技术作家W.RichardStevens的传世之作。
卷2着重讨论如何让应用程序与在其他机器上的应用程序进行对话。
良好的进程间通信(IPC)机制是提高UNIX程序性能的关键。
本书全面深入地讲解了各种进程间通信形式,包括消息传递、同步、共享内存及远程调用(RPC)。
书中包含了大量经过优化的源代码,帮助读者加深理解。
这些源代码可以从图灵网站本书网页免费注册下载。
本书是网络研究和开发人员公认的权威参考书,深入理解本书内容,方能设计出良好的UNIX软件。
2023/11/5 14:41:53 15.73MB UNIX C 网络编程 进程通信
1
四次实验,进程控制,线程同步与通信,共享内存与进程同步,linux文件目录
2023/10/30 9:20:54 4KB 操作系统 os
1
Qt线程间共享数据主要有两种方式:1)使用共享内存。
即使用一个两个线程都能够共享的变量(如全局变量),这样两个线程都能够访问和修改该变量,从而达到共享数据的目的。
2)使用singal/slot机制,把数据从一个线程传递到另外一个线程。
代码中是针对信号和槽机制,进行描述和演示。
环境是qt5.91、传递int参数(主线程与子线程)2、传递自定义参数(主线程与子线程)3、传递自定义参数(子线程与子线程)4、传递自定义结构体参数(子线程与子线程)
2023/10/10 1:17:11 22KB qt 源码 多线程通讯
1
RTX和UI程序直接,如何通过共享内存来沟通,这里简单给出一个示例代码。
2023/10/8 10:18:29 194KB RTX Shared Memory 共享内存
1
该项目基于arm开发板。
运用了linux的多线程,多进程,arm的LCD屏幕的图片显示和触摸屏控制功能,使用了madplay进行音频播放。
该系统运行时会生成一条进程读取触摸屏的x,y和压力值数据,存储到共享内存里面。
进入系统时会显示一个主界面,通过读取共享内存的x,y数据检测到用户点击了钢琴图标后进入钢琴界面,点击钢琴琴键时,会播放该琴键对应的琴音,由于开发板限制无法一次播放多个音频文件,所以在点击下一个琴键时,会使用命令终止其他音频文件的播放。
该程序还可以通过点击钢琴界面的按钮调整钢琴声音的大小。
并支持滑动弹奏。
2023/10/2 10:20:30 377KB 电子钢琴 linux arm
1
boost库中文帮助文档.1.Boost.AccumulatorsPreface序言User'sGuide用户指南Acknowledgements鸣谢Reference参考手册2.Boost.AnyIntroduction简介Examples例子Reference参考手册Acknowledgements鸣谢3.Boost.ArrayIntroduction简介Reference参考手册DesignRationale设计原理Formoreinformation...更多信息...Acknowledgements鸣谢4.Boost.Concept_CheckConceptreference概念参考5.Boost.Date_TimeConceptual概念说明GeneralUsageExamples常见用例Gregorian格里历PosixTimePosix时间LocalTime本地时间DateTimeInput/Output日期时间的输入/输出Serialization序列化Details细节Examples例子LibraryReference库参考手册6.Boost.ForeachIntroduction简介Extensibility可扩展性Portability可移植性Pitfalls缺陷HistoryandAcknowledgements历史与鸣谢7.Boost.FunctionIntroduction简介History&CompatibilityNotes历史与兼容性说明Tutorial教程Reference参考手册FrequentlyAskedQuestions常见问题MiscellaneousNotes杂项说明Testsuite测试套件8.Boost.Functional/HashIntroduction简介Tutorial教程Extendingboost::hashforacustomdatatype为定制的数据类型扩展boost::hashCombininghashvalues组合散列值Portability可移植性DisablingTheExtensions禁止扩展ChangeLog变更历史Reference参考手册Links链接Acknowledgements鸣谢9.Boost.InterprocessIntroduction简介QuickGuidefortheImpatient快速入门Somebasicexplanations基本说明Sharingmemorybetweenprocesses进程间的共享内存MappingAddressIndependentPointer:offset_ptr映射地址无关的指针:offset_ptrSynchronizationmechanisms同步机制ManagedMemorySegments管理内存段Allocators,containersandmemoryallocationalgorithms分配器、容器和内存分配算法Directiostreamformatting:vectorstreamandbufferstream直接iostream格式化:vectorstream和bufferstreamOwnershipsmartpointers智能指针的所有权Architectureandinternals体系结构与内部细节CustomizingBoost.Interprocess定制Boost.InterprocessAcknowledgements,notesandlinks鸣谢、说明与链接Boost.InterprocessReference参考手册10.Boost.IntrusiveIntroduction简介Intrusiveandnon-intrusivecontainers介入式与非介入式容器HowtouseBoost.Intrusive如何使用Boost.IntrusiveWhentouse?何时使用?Conceptsummary概念摘要Pre
2023/9/4 22:14:58 20.96MB boost api
1
C#一个操作共享内存的类。
实际应用时,注意调用Read函数时是否会读取上一次的数据。
2023/9/4 8:13:24 7KB C# 共享内存
1
本文介绍了三个系统调用函数,分别是fork()、lockf()和IPC中的共享内存机制。
其中fork()函数用于创建一个新进程,返回值表示进程的状态;
lockf()函数用于锁定文件的某些段或整个文件,需要传入文件描述符、锁定方式和锁定大小等参数;
IPC中的共享内存机制可以实现进程间的数据共享。
2023/8/24 15:45:15 45KB 进程间通信
1
共 49 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡