Android操作系统

  • 什么是操作系统
  • 操作系统的作用
  • 操作系统的共性

面向下层:管理硬件包含CPU,内存,Flash各种I/O等等。
面向上层:为用户提供人机交互界面。还为第三方程序研发提供便捷可靠的高效的API。上层应用的设计实现不用直接面向硬。

总结:操作系统是负责管理硬件,并为上层提供稳定变成接口和人机交互界面的软件集合。

操作系统的难点包括了:进程和内存的管理,硬件驱动的支持等。Linux的强项是这方面


进程间通信的经典实现

  • 为什么进程之间需要通信
  • 操作系统中进程间通信的方式有哪些
  • 为什么进程之间相互独立

Android程序运行在不同的进程中,每个程序都处于自己的沙盒中。广义上讲进程间通信是指运行在不同的进程(不论是否是同一台机器)中的若干线程间的数据交换。

共享内存

是常用的进程间通信机制,由于两个进程可以直接共享访问同一块内存区域,减少了数据的复制操作,因而速度上回有优势。步骤如下

  • 创建内存共享区域,生成特定的key
  • 映射内存共享区域(映射到进程1的空间中)
  • 访问内存共享区域 进程2通过进程1提供的key 把这块内存映射到它的空间中
  • 进程间通信 共享内存的各个进程实现了内存映射之后,变可以利用这个区域进行信息交换。由于内存共享本身没有同步机制,所以参与通信的诸进程需要自己协商处理。
  • 撤销内存营社区 完成通信后,每个进程都需要撤销之前的映射操作。
  • 删除内存共享区域。 以便回收内存

管道

管道是单向的如果同时需要读写则需要两个管道。一个管道同时具有写入端和读取端。管道是由容量限制的。如果管道满时,写操作阻塞。反之,读操作会阻塞。
进程1想传递数据到进程2中,需要创建管道,然后关闭读取端,打开写入端,写入数据,然后关闭写入端。进程2在可以读的时候关闭关闭写入端,打开读取端,读取数据,然后关闭读取端。

UNIX Domain Socket

Socket不仅可以胜任网络领域,进程间通信业可以,但是效率比较低。
UNIX Domain Socket 是专门针对单机内的进程间通信剔除来的,也叫IPC socket 。
Network Socket里面以TCP/IP为基础而UDS是本机内的安全可靠操作,不依赖于这些协议
Android中使用最多的IPC机制是binder其次就是UDS
UDS的基本流程与传统的socket一直,只是参数上有区别

RPC

RPC涉及的通信双方通常运行在两台不同的机器中。开发人员不需要特别关心具体的中间传输过程是如何实现的,这种透明较大程度的降低研发难度。
步骤:
- 客户端进程调用stub接口
- stub根据操作系统的要求进行打包,并执行相应的系统调用
- 由内核来完成与服务器端的具体交互,它负责将客户端的数据包发给服务端内核
- 服务端stub解包并调用与数据包匹配的进程。
- 进程执行操作
- 服务器以上述步骤的逆向过程返给数据给客户端。


同步机制

Android 操作系统基础相关推荐

  1. AndroidApplication Fundamentals(Android应用基础)

    AndroidApplication Fundamentals(Android应用基础) Android应用采用Java编程语言来编写,AndroidSDK工具编译我们的代码,连同任何数据和资源文件一 ...

  2. Android零基础入门第7节:搞定Android模拟器,开启甜蜜之旅

    原文:Android零基础入门第7节:搞定Android模拟器,开启甜蜜之旅 在前几期中总结分享了Android的前世今生.Android 系统架构和应用组件那些事.带你一起来聊一聊Android开发 ...

  3. Android面试基础一

    Android面试基础二-原理及常见问题 目录 1.四大组件 1)Activity 2)Service 3)ContentProvider 4)Broadcast Receiver 2.四大组件的生命 ...

  4. Android 应用基础知识和应用组件

    应用基础知识 安装到设备后,每个 Android 应用都运行在自己的安全沙箱内: Android 操作系统是一种多用户 Linux 系统,其中的每个应用都是一个不同的用户: 默认情况下,系统会为每个应 ...

  5. Android* 操作系统上的应用程序远程调试

    作者:robert-mueller Android* 操作系统应用程序远程调试 Android* Debug Bridge Android Debug Bridge (ADB) 是一种命令行工具,可处 ...

  6. Android操作系统版本

    Android操作系统版本 Android1.1(发布于2009年2月) 主要特性: 闹钟 API示例 浏览器 计算器 摄像头 联系人 开发工具包 拨号应用 电子邮件 地图(包含街景) 信息服务 音乐 ...

  7. Android零基础入门第1节:Android的前世今生

    原文:Android零基础入门第1节:Android的前世今生 现在网上有很多各色Android资料了,但相对来说还是比较零散,Android覆盖的范围极广,最近刚好有机会全部拉通整理一遍,也保存起来 ...

  8. 服务器开发系列(三)——Linux与Windows操作系统基础功能对比

    系列文章目录 服务器开发系列(一)--计算机硬件 服务器开发系列(二)--Jetson Xavier NX 文章目录 系列文章目录 前言 一.操作系统概述 二.Linux和Windows的应用场景 三 ...

  9. linux操作系统基础复习

    目录 前言 一.操作系统简介(Operation System OS) 1.1 操作系统的作用 1.2  操作系统分类 二.linux 安装 2.1 虚拟机 2.2 镜像 三.linux 简介 3.1 ...

最新文章

  1. Navicat for SQLite 15中文版
  2. uni app 调用网络打印机_前端工程师 | 原生小程序坑点:uni-app到底好用在哪里?...
  3. mysql 5.1.73路径_centos7.2 环境下 mysql-5.1.73 安装配置
  4. java8的rmi_Java中的RMI
  5. 同步和异步有何异同,什么场景使用
  6. javaone_JavaOne 2015 –提交技巧和建议
  7. java拦截器项目应用_使用拦截器分析Java EE应用程序的性能下降/提高
  8. Leetcode:0002(两数之和)
  9. 如何将docker 镜像上传到docker hub仓库
  10. 周三晚八点直播丨如何通过APEX 实现自动化运维
  11. 推荐一款eclipse快速打开项目文件夹所在路径插件
  12. Ubuntu 离线安装软件包
  13. 没有大厂经验的前端可以这么写简历
  14. 少儿学计算机编程的十大好处,孩子学少儿编程的十大好处
  15. 算法:记忆化搜索算法
  16. 1药网母公司路演PPT曝光:发行区间14到16美元 中旬上市
  17. 图扑软件数字孪生海上风电 | 向海图强,奋楫争先
  18. 入手Blackberry9000
  19. 计算机毕业设计springboot的学校智能排课信息系统(源码+系统+mysql数据库+Lw文档)
  20. 一往无前!全球边缘计算大会·上海站成功召开!

热门文章

  1. 论文中稿 IEEE ACCESS 期刊
  2. MySQL数据库基础操作(一)
  3. c语言xdoj上机题 字符输入输出
  4. 何为全屋智能?华为用实力告诉你们:全屋智能是如此好用
  5. eclipse的入门
  6. CSS 行内元素设置高度
  7. windows 打开PyCharm报错failed to load JVM DLL pycharm\jbr\\bin\server\jvm.dll
  8. 河南科技大学计算机信息安全技术考试,河南科技大学军事理论试题4
  9. 体育短视频纷纷起义,体育直播走向沉沦?
  10. [论文翻译]Sparse R-CNN: End-to-End Object Detection with Learnable Proposals