首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

揭秘计算机内部奥秘:从CPU到操作系统,深入探索进程与线程的工作原理

内存和硬盘区别 硬盘比较大,内存比较小(这里指的不是物理尺寸,是存储空间容量),针对存储空间–硬盘 > 内存 >> CPU 硬盘读写速度比较慢,内存读写速度比较快(几千倍甚至上万倍),针对数据访问速度–...进程是操作系统对一个正在运行的程序的一种抽象,换言之,可以把进程看做程序的一次运行过程;同时,在操作系统内部,进程又是操作系统进行资源分配的基本单位。...,多的进程就需要构造出一个新的pcb并且添加到链表上;如果某个运行中的程序退出了,就需要把对应进程的pcb从链表中删除并且销毁对应的pcb资源。...,感知不到,都是在系统内部来完成调度的。...虚拟空间地址 早期的操作系统,程序运行时分配的内存就是物理内存,后面逐渐引入了 “虚拟地址空间” 这一概念,而不是直接去分配物理内存了,通过分配虚拟的内存空间,操作系统对于内存又进行了一层抽象。

12810

Android 透明状态栏(伪沉浸式)

4.4 以上要做所谓沉浸式,其实不是真正意义上的沉浸式,只是一种透明状态栏。 而由于 Android API 的不同,需要考虑 4.4、5.0、6.0 前后的不同。...体验了 QQ 浏览器,因为网页大多都是纯白的,在 6.0 的手机上状态栏背景纯白,图标文字改成黑的了,但在 5.1 的手机上图标文字没法改,它是把背景做成灰色的了。...View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR : View.SYSTEM_UI_FLAG_LAYOUT_STABLE; decorView.setSystemUiVisibility...状态的重置 因为考虑同一个 Activity 多次改变状态栏颜色的情况,遇到的一个比较烦的问题是,许多状态需要重置,不然就会影响下一次,而且如果设置图片又改成颜色的,那么要考虑的更多,一会希望图片内容顶到状态栏下面...setPaddingTop(rootView, rootPaddingTop); } if (newMode == MODE_COLOR) { window.clearFlags

2.4K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    一个Android沉浸式状态栏上的黑科技

    其实最开始的时候,我主要是因为工作上的原因想要在Android版的Edge浏览器上实现首页图片沉浸式的功能。...其实想要解决上图中的这种由于颜色值接近,导致部分内容看不清的情况,我能想到两种解决方案。一种是从设计层面解决,一种是从技术层面解决。...从设计层面解决相对会比较容易一些,同时应该也是大部分App会采用的方案,那就是在背景图的上方再盖一层阴影。有了这层阴影之后,我们可以让状态栏上的图标始终都是浅色的。...or View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR window.decorView.systemUiVisibility = flags xor View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR...大概流程就是这个样子,我觉得原理还是非常简单的,我甚至都没有给出一个完整的实例,只是贴出了一些代码片段。

    1.5K10

    Android 蓝牙开发(扫描设备、绑定、解绑)

    前言 公司最近给我丢了一个蓝牙开发的项目,不了解怎么办呢,那当然是从最基础的开始了,所以这里相当于做笔记了。 效果图 打开蓝牙 ? 扫描蓝牙设备 ? 看了效果图,你想不想自己试一下呢?...Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { Window window = activity.getWindow(); window.clearFlags...activity.getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR...蓝牙设备适配器 List list = new ArrayList();//数据来源 其中BluetoothReceiver这个会报红,不用慌张,这是一个内部的广播接收器...所以很多东西不是只看表面,细节也是很重要的。

    4.9K20

    android 设置标题栏背景颜色_状态栏菜单栏都在哪

    getWindow().getDecorView().setSystemUiVisibility( View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN|View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR...,这当然不是我们希望的。...设置状态栏文字颜色及图标为深色 getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR...); View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN 是从API 16开始启用,实现效果: 视图延伸至状态栏区域,状态栏悬浮于视图之上 View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR...是从 API 23开始启用,实现效果: 设置状态栏图标和状态栏文字颜色为深色,为适应状态栏背景为浅色调,该Flag只有在使用了FLAG_DRWS_SYSTEM_BAR_BACKGROUNDS,并且没有使用

    2.3K10

    沉浸式管理:让你的APP更优雅

    作者博客 http://www.jianshu.com/u/e01fe6ddfa1c 前言 自从android4.4开始,android手机状态栏再也不是一成黑的时代,之前叫做变色龙...本框架在android5.0以上就是采用官方api完成的,网上关于5.0以上的实现基本都是这样,在这里就不多说了,在这里只说一点,就是设置颜色的时候不是直接填入开发者传入的颜色值,而是采用v4包下的ColorUtils.blendARGB...有些app的状态栏并不是和标题栏颜色相同,稍微有些色差,所以在这里开发者只需要通过blendARGB()设置透明度就可以形成这种色差,而且还可以指定两种颜色之间的色差值,方便大家,android4.4上亦是如此...解决方法如下代码,在这里通过注释的方法向大家说明。这里代码只是片段,不可以直接拷贝到自己的项目中 ? ? ?...activity.getWindow().getDecorView().setSystemUiVisibility( View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN|View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR

    1.8K30

    Android 天气APP(四)搭建MVP框架与使用

    MVP框架搭建 现在这样固然符合网络请求的标准,结果也得到了,但是这只是一个接口而已,我们用了这么多代码,那假如这个页面上还有好几个接口要请求访问,岂不是多出了很多的重复代码,这一点并不符合现在Android...= null) { allActivities.add(activity); } } /** * 从管理器移除Activity...Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { Window window = activity.getWindow(); window.clearFlags...activity.getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR...activity.getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR

    80630

    Android 天气APP(四)搭建MVP框架与使用

    MVP框架搭建 现在这样固然符合网络请求的标准,结果也得到了,但是这只是一个接口而已,我们用了这么多代码,那假如这个页面上还有好几个接口要请求访问,岂不是多出了很多的重复代码,这一点并不符合现在Android...= null) { allActivities.add(activity); } } /** * 从管理器移除Activity...Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { Window window = activity.getWindow(); window.clearFlags...activity.getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR...activity.getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR

    1K60

    使用 VEX 表达式

    目前,已编译的 SOP 块内部支持 VEX 操作,但无法编译使用局部变量的 HScript 表达式。...然而,对于几何操作,wrangling 和 VEX/VOPs 是前进的方向,值得学习新的工作流程。 语法 VEX snippet参数允许您输入 VEX 代码片段。请参阅 VEX 函数列表。...访问参数值 在代码片段中,您可以使用参数的内部名称作为变量名称来读取/写入节点上的参数值。要获取参数的内部 ID,请将鼠标悬停在参数编辑器中的参数名称上。工具提示将显示参数:id。...这是通过将它们声明为变量来完成的。声明必须从行首开始。一行中只能声明一个变量。默认值必须是一个常量值,像 3*5 这样的计算值将失败,因为它们不是参数列表中的有效初始值设定项。...在 VOP 中,您可以从 Globalsnode 连接诸如时间和帧之类的变量,以在 VEX 片段中使用它们。

    2.6K30

    VR中的动画就是这么玩哒

    Unity支持从外部导入和内部创建(或修改外部动画资源)两种方式导入动画资源,内部创建暂时不讲-较复杂,留待后续补充。...1)你会发现拖入的第一个动画片段显示为黄色,并且有一条线从Entry连接到这个状态,这是什么捏?...三、导入外部人物模型 现在,是不是迫不及待的想把自己从网上下载的模型放到自己场景中了,让我们慢慢来。 下面这个资源是我在网上下载的一个动画模型fbx文件 ?...五、调整动画 上面的工作做完之后,我们可能会发现我们的动画运行的并不是那么好:比如,跑动的腿怎么是一边的,好像瘸了一样;动画为什么是陷到地面以下的;按上下键控制速度时,怎么这么慢啊,等等。。。...,大家记住,上面的工作做完后,还需要进行进一步调整。

    1.5K60

    基础渲染系列(十五)——延迟光照

    它的背面被剔除,因此我们看到了金字塔的正面。而且只有当前面没有东西时才绘制它。除此之外,还添加了一个通道,该通道设置了模板缓冲区,以将图形限制为位于金字塔体内部的片段。...甚至有可能一部分近平面位于其内部,而其余部分位于其外部。在这些情况下,模板缓冲区就不能再用于限制渲染。 仍然渲染光线的技巧是绘制金字塔的内表面,而不是金字塔的外表面。...这是通过渲染其背面而不是其正面来完成的。同样,仅当这些表面最终位于已经渲染的表面之后时才渲染它们。这种方法还涵盖了聚光灯体积内的所有片段。...其余的Spotlight代码仅应在定义SPOT关键字时使用。 ? 这已经足以使点光源工作。它们的渲染与聚光灯相同,不同之处在于,它们使用icosphere而不是金字塔。 ?...这只是一个改进,因为这是一个连贯的分支。除了靠近阴影区域的边缘,所有片段都落在阴影区域的内部或外部。但这仅在GPU可以利用此优势的情况下才重要。

    3.5K10

    Vue3源码07: 故事要从createApp讲起

    事实上,代码片段2中RootComponent对象的编译render函数会在某个时机执行,具体在哪里执行,我们在本文分析createApp内部实现的时候进行解释。...而跟平台无关的动作全部在runtime-core完成,有些朋友可能会疑惑,怎么就跟平台无关了,我们不是传递了操作具体DOM节点的方法rendererOptions给了runtime-core暴露的方法了吗...return app } } 从代码片段8中可以看出,createAppAPI函数返回了一个函数createApp,而该函数的返回值是一个对象app,app其实就是我们创建的Vue应用,app上有很多属性和方法...proxy } // 此处省略若干代码... } 代码片段9中省略了很多和开发阶段相关的代码,可以概括为这样几项主要工作: 将根组件对象rootComponent(代码片段4中的传入的值RootComponent...那这里的render函数来自哪里呢?从代码片段8不难发现,是通过参数传入的,那这个参数从哪里来呢,我们再回到代码片段7发现正是函数baseCreateRenderer内部声明的render函数。

    57010

    进阶渲染系列(一)——平坦和线框着色(导数和几何体)

    这意味着导数仅在每个块中更改,每两个像素一次,而不是每个像素更改。结果,这些导数是一个近似值,当用于每个片段非线性变化的数据时,它们将显得块状化。...1.2 几何着色 除了使用导数指令之外,还有另一种方法可以确定三角形的法线。使用实际的三角形顶点来计算法线向量。这需要使用每个三角形而不是每个单独的顶点或片段来完成工作。这就是几何着色器的领域。...尽管定义形状轮廓的线看起来将比内部线的厚度粗一半,但这可以创建令人信服的线框。因为差异不是很明显,因此我们通常会接受这种不一致的情况。 ?...在函数内部定义此类型的变量,将输入数据分配给它们,然后将其附加到流中,而不是直接将输入传递给它们。 ? 现在,我们可以向InterpolatorsGeometry添加其他数据。...它是一个标准函数,可在两个值之间产生平滑的曲线过渡,而不是线性插值。定义为 其中 t从0到1。 ? ? (smoothstep VS线性 过渡) Smoothstep函数具有三个参数a,b和c。

    2.5K21

    协议森林08 不放弃 (TCP协议与流通信)

    计算机的功能就是储存和处理文本流。CPU + memory + 存储设备实现了文本流在同一台计算机内部的加工处理。通过一些IO,比如屏幕和键盘,文本流实现了人机交互。...所以,TCP协议封装到IP包的不是整个文本流,而是TCP协议所规定的片段(segment)。...与之前的一个IP或者UDP数据包类似,一个TCP片段同样分为头部(header)和数据(payload)两部分 (“片段”这个名字更多是起提醒作用:嘿,这里并不是完整的文本流)。...滑窗 上面的工作方式中,发送方保持发送->等待ACK->发送->等待ACK...的单线工作方式,这样的工作方式叫做stop-and-wait。...下面一个视频中,我尝试模拟可容纳三个片段的滑窗(固定大小)的工作过程。

    69450

    Android MediaPlayer 音乐播放器扫描 本地音乐、上一曲、下一曲切歌、播放本地音乐

    版本,我的项目中用的是AndroidX,如果你没有用过的,建议你先去了解一下: 好了,下面看布局文件,这次是做的一个完成的项目,所以新建了一个工程,里面有一些样式和图片、图标,工程目录如下图,这里就不在做解释了...Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { Window window = activity.getWindow(); window.clearFlags....setText(R.id.tv_duration_time,time)//歌曲时间 //歌曲序号,因为getAdapterPosition得到的位置是从...break; case R.id.btn_play_or_pause://播放或者暂停 // 首次点击播放按钮,默认播放第0首,下标从0...tvPlaySongInfo.setSelected(true);//跑马灯效果 playStateLay.setVisibility(View.VISIBLE); // 开始播放前的准备工作

    3K62

    俄IT巨头源代码被一锅端,公司否认黑客入侵

    我们的安全服务从公共领域的内部存储库中发现了代码片段,但内容与 Yandex 服务中使用的存储库的当前版本不同。 存储库是用于存储和使用代码的工具。大多数公司在内部以这种方式使用代码。...需要存储库来处理代码,而不是用于存储个人用户数据。我们正在对向公众发布源代码片段的原因进行内部调查,但我们没有发现任何对用户数据或平台性能的威胁。”...他对泄露的代码非常熟悉,曾在 2002 年至 2019 年期间在这家科技巨头工作。 Bakunov解释说,数据泄露的动机是政治性的,负责数据泄露的 Yandex 员工并未试图将代码出售给竞争对手。...这位前高管还评论了 Yandex 的回应,称泄露的代码可能与公司工作服务中使用的当前代码不相同,但相似度可能高达 90%。...因此,对泄露代码开展全面检查之后,恶意黑客很可能会从Yandex系统中发现可供利用的缺口。

    36910

    WordPress网站迁移到新主机的方法步骤

    在迁移之前,你需要在 httpd.conf 的最顶端附近找到 Listen 声明并修改成类似下面这样。这个地址是服务器的真实私有 IP 地址,不是公开 IP 地址。...前期工作 准备工作分为以下三步: 安装服务 配置防火墙 配置 web 服务器 安装 Apache 和 MariaDB 如果你的新服务器上还没有 Apache 和 MariaDB,那么就安装它们。...WordPress 的安装不是必要的。 dnf -y install httpd mariadb 新服务器防火墙配置 确认下新服务器上的防火墙允许访问 80 端口。...如果你使用的是内部 DNS 服务器,那么你需要把 IP 地址改成内部 DNS 数据库里的 A 记录。...如果有失败,你可以把 IPTables 的路由规则改回去到旧服务器上,直到问题解决。 之后我把 MySQL 和 HTTPD 从旧服务器上删除了,这样来确保它们不会意外地被启动。 总结 就是这么简单。

    1.4K20

    一看就懂的 OpenGL 基础概念丨音视频基础

    假设当我们想告诉 OpenGL 去画线段而不是三角形的时候,我们通过改变一些上下文变量来改变 OpenGL 状态,从而告诉 OpenGL 如何去绘图。...一旦我们改变了 OpenGL 的状态为线段绘制模式,下一个绘制命令就会画出线段而不是三角形。...,字面上是绑定的意思,如果从状态机的角度理解,其实 glBind... 就意味着进入了某个状态。...这里是 OpenGL 内部维护一个深度缓冲,保存这一帧中深度最小的片段的深度,然后对屏幕同一个位置的其他片段的深度再进行比较,深度比缓冲中大的片段则丢弃,直到找到深度最小的片段,就将其显示出来。...我们再来回顾一下这条渲染管线做了哪些事情: 首先我们传入了图形的顶点数据,然后 OpenGL 内部会按照指定的图元类型自动将顶点连成图形,然后再将图形内的区域切成一个个小片段,然后给每个小片段自由上色,

    2.5K10

    React 渲染流程可视化,有大佬实现了!

    React 内部结构图 显然,这需要大量的手动工作,而且它只是个静态图片,如果我们能自动可视化 React 的内部结构而且让它动起来,是不是更好?...RIE(React 内部结构探索器)[2] 的用户界面应该是很直观的,基本上你可以: 选择 React 版本(目前支持 18.3.1 和 19-rc) 编辑你的代码或选择内置代码片段 点击“运行”按钮来检查...React 的内部结构 交互预览,并查看内部更新。...React Internals Explorer 介绍图 例如,你可以选择“Suspense - multi throw”代码片段,看看 React@19 和 React@18 是如何处理不同的。...React 源码深度解析系列封面图 想了解更多关于 React 的内部工作原理吗?可以看看 - 深入探索 React 内部结构!

    34410
    领券