自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(149)
  • 资源 (3)
  • 收藏
  • 关注

转载 终于弄懂「报文、数据包、数据报和帧」的区别了!

报文由应用层产生,被称作报文(Message)/数据(Data),经过传输层的封装形成报文段(Segment)/数据报(Datagram),再经过网络层的封装形成分组/数据包(Packet),然后经过数据链路层的封装形成帧(Frame),最后在物理层以二进制比特流的方式完成数据传输。二是UDP(User Datagram Protocol)协议,即用户数据包协议,它是无连接的,数据传输的单位是用户数据报,不保证提供可靠的交付,只能提供“尽最大努力交付”。将上层传输的数据添加一个头部和尾部,组成了帧。

2024-07-01 11:29:06 116

转载 Docker生命周期

2024-06-13 10:09:14 20 1

转载 OSI模型

数据报是面向无连接的数据传输,采用数据报方式传输时,被传输的分组称为数据报。如传输层TCP的分组叫做数据段,UDP的叫做数据报。还有一种说法是数据报是网络层的传输基本单位,数据包是IP协议中完整的数据单元,由一个或多个数据报组成(待确认)数据包是网络层传输的数据单元。帧是数据链路层的传输单元。它将上层传入的数据添加一个头部和尾部,组成了帧,帧根据MAC地址寻址。还有一种说法是数据报是数据包的分组,一个完整的数据包由一个或多个数据报组成(待确认)报文包含了应用层的完整的数据信息。数据段是传输层的信息单元。

2024-05-30 10:08:59 37

原创 ServiceManager,SystemServer,SystemService,SystemServiceManager

SystemServer是Zygote调用forkSystemServer启动的第一个进程,system_server进程承载着整个framework的核心服务,例如: ActivityManagerService,PowerManagerService,DisplayManagerService,PackageManagerService,WindowManagerService,LauncherAppsService等80多个核心系统服务。除此之外,它还支持系统服务启动状态的通知及处理。

2024-05-15 09:45:45 329

原创 Android Audio相关

Android Audio相关

2024-03-21 10:34:55 399

转载 《道德经》全文和译文

第一章道可道(可以语言交流的道),非常道(非真正意义上的道);名可名(可以明确定义的名),非常名(非真正意义上的名)。无名天地之始(天地在开始时并无名称),有名万物之母(名只是为了万物的归属)。故常无欲以观其妙(因此常用无意识以发现其奥妙),常有欲以观其徼(常用有意识以归属其范围)。两者同出异名(两种思维模式同出自一个地方但概念却不相同),同谓玄之又玄(这就是玄之又玄的玄关窍)。众妙之门(它是打开一切奥妙的不二法门)。第二章天下皆知美之为美(天下皆知美...

2021-12-08 14:32:45 1420

原创 NLP的12个信条

没有两个人是一样的:每一个人都有自己的性格、能力、特点,你们在不同的环境里长大,经历了不同的人生,形成了不同的价值观和信念系统,因此对待同一个问题,你们会有不同的看法,你要学会接受和欣赏。你只有尊重别人的不同之处,别人才会尊重你独特的地方。 一个人不能控制另外一个人:每个人的信念、价值观、行为习惯等,只对自己有效,不应该强加给另外一个人。己所不欲勿施于人,己所欲也不能施于人。一个人不能改变另外一个人,一个人只能改变自己,影响别人。我们能推动的,只能是我们自己。当你想要改变另一个人的时候,你的悲惨命运就此开

2021-10-12 14:11:28 545

转载 无线电工作原理

看不见的无线电波通常跨越数百万公里的距离在空中传送音乐、谈话、图片和数据——这种无线电波每天都以成千上万种不同的方式进行! 虽然无线电波对人而言是看不见且完全不被察觉的,但它们却完全改变了整个社会。 无论是我们谈论的手机、婴儿监护器、无绳电话,还是成千上万种其他无线技术中的任何一种,它们都是通过无线电波进行通信的。下面是基于无线电波的一些常见技术:AM和FM无线电广播 无绳电话 车库门遥控器 无线网络 遥控玩具 电视广播 手机 GPS接收器 业余无线电 卫星通信...

2021-08-04 09:44:05 3054

原创 记事本_2021

Android 操作系统架构开篇http://gityuan.com/android/

2021-07-07 09:24:05 604

转载 Linux 源码编译详解

前言源码要运行,必须先转成二进制的机器码。这是编译器的任务。比如,下面这段源码(假定文件名叫做test.c)。#include<stdio.h>intmain(void){ fputs("Hello,world!\n",stdout); return0;}要先用编译器处理一下,才能运行。$gcctest.c$./a.outHello,world!对于复杂的项目,编译过程还必须分成三步。$./configure$make...

2021-02-05 14:35:51 3020

转载 Android Framework,HAL,Kernel调用关系

1 . JNI技术:1)JNI技术简单的说就是在本地Java语言声明本地方法和加载动态链接库(.so文件)2)动态链接库(.so文件)是由NDK编译C/C++文件而成的。2 . HAL层开发:1)HAL是Hardware Abstraction Layer的简称。也称为硬件抽象层。2)硬件访问服务是在Framework层实现的。3)硬件访问服务是用Java语言实现的,硬件抽象层是用C++语言编写的。因此硬件访问服务必须通过JNI技术调用硬件抽象层的接口。4)硬件抽象层调用Linux Ker.

2021-01-22 11:44:03 2424

原创 Linux 学习(作者:Vamei 向大佬致敬)

走进Linux01.Linux的架构02.Linux文件管理03.Linux文件管理相关命令04.Linux文本流05.Linux进程基础06.Linux信号基础07.Linux进程关系08.Linux用户09.快速学习Bash深入Linux01.Linux开机启动02.Linux从程序到进程03.Linux进程间通信04.Linux并发与同步05.Linux的调度器06.Linux的内存管理07.Li...

2021-01-21 08:38:24 152

转载 半导体元件,芯片,处理器,CPU,MCU的区别

1、半导体元件与芯片的区别按照国际标准分类方式,在国际半导体的统计中,半导体产业只分成四种类型:集成电路,分立器件,传感器和光电子。所有的国际半导体贸易中都是分成这四类。上面说的这四类可以统称为半导体元件。其中集成电路(Integrated Circuit, 简称IC),又叫做芯片(chip),所以说集成电路,IC,芯片,chip这四个名字都是指一个东西。但是,在我们通常的新闻中,没有分的这么清楚,他们会把半导体元件统统叫做集成电路(比如也会把分立器件也叫做IC,芯片),所以大家要根据前后文的意

2021-01-13 13:25:27 12174

转载 CPU,GPU,TPU,NPU都是什么?

什么是CPU?中央处理器(CPU),是电子计算机的主要设备之一,电脑中的核心配件。其功能主要是解释计算机指令以及处理计算机软件中的数据。CPU是计算机中负责读取指令,对指令译码并执行指令的核心部件。中央处理器主要包括两个部分,即控制器、运算器,其中还包括高速及实现它们缓冲处理器之间联系的数据、控制的总线。电子计算机三大核心部件就是CPU、内部存储器、输入/输出设备。中央处理器的功效主要为处理指令、执行操作、控制时间、处理数据。在计算机体系结构中,CPU 是对计算机的所有硬件资源(如存储器、输入输出单

2021-01-13 13:14:20 1107

转载 Shell中的内建命令,函数,外部命令

Shell识别三种基本命令:内建命令、Shell函数以及外部命令:1)内建命令就是由Shell本身所执行的命令。一种是由于其必要性才内建的,例如cd用来改变目录。另一种内建命令的存在则是为了效率,其中最典型的就是test命令,编写脚本时经常会用到它。另外还有I/O命令,例如echo于printf.2)Shell函数是功能健全的一系列程序代码,以Shell语言写成,它们可以像命令那样引用。3)外部命令就是由Shell副本(新的进程)所执行的命令,基本的过程如下: a. 建立一个新的进程。此进程即为..

2021-01-08 09:30:21 211

转载 Linux交换空间(swap space)

每次安装Linux的时候,都会要求配置交换分区,那么这个分区是干嘛的呢?不设置这个分区有什么后果?如果一定要设置,设置多大比较合适?本篇将试图回答这些问题并尽量覆盖所有swap相关的知识。下面的所有例子都在ubuntu-server-x86_64 16.04下执行通过什么是swap?swap space是磁盘上的一块区域,可以是一个分区,也可以是一个文件,或者是他们的组合。简单点说,当系统物理内存吃紧时,Linux会将内存中不常访问的数据保存到swap上,这样系统就有更多的物理内存为各个进.

2021-01-08 08:50:03 1707

转载 C语言 函数后面加const作用

void function() const{}通常我们会看到一些函数声明后面会跟着一个const,这个const是做什么的呢?看一下下面的例子,就知道了。直接在编译前,就会提示下面的两个错误// test1107.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include <iostream>using namespace std;class a{ int num;public: a(){ in

2020-12-30 10:26:22 1276

转载 前端框架库汇总

VueVue2.0:Vue2.0 文档 Vue3.0:Vue3.0 文档 Vue-Router:Vue.js 官方的路由管理器。 Vuex:Vue.js 应用程序开发的状态管理模式。 Element-UI:饿了么UI组件库 View UI:一套基于 Vue.js 的开源 UI 组件库,主要服务于 PC 界面的中后台产品。 Vuetify:用于构建功能丰富、快速的应用程序。 Buefy-UI: 简单且轻量的UI库。 Quasar: 编写代码一次并同时将其部署为网站、移动应用和/或Elect

2020-12-09 08:54:34 957

原创 C语言 ‘\0‘的含义

'\0' 是字符串的结束符,任何字符串之后都会自动加上'\0'。如果字符串末尾少了'\0'转义字符,则其在输出时可能会出现乱码问题。'\0'转义字符在ASCII表中并不表示阿拉伯数字0,阿拉伯数字0的ASCII码为48,'\0'转义字符的ASCII码值为0,它表示的是ASCII控制字符中空字符的含义。'\0'是C++中字符串的结尾标志,存储在字符串的结尾。比如char cha[5]表示可以放4个字符的数组,由于c/c++中规定字符串的结尾标志为'\0',它虽然不计入串长,但要占内存空间,而一个汉字一

2020-12-04 10:00:32 16719

转载 C语言 结构体四种初始化方法

定义struct InitMember{ int first; double second; char* third; float four;};方法一:定义时赋值struct InitMember test = {-10,3.141590,"method one",0.25};需要注意对应的顺序,不能错位。方法二:定义后逐个赋值struct InitMember test;test.first = -10;test.sec..

2020-12-04 09:42:44 815

转载 Linux 内核空间与用户空间

本文以 32 位系统为例介绍内核空间(kernel space)和用户空间(user space)1 . 内核空间和用户空间对 32 位操作系统而言,它的寻址空间(虚拟地址空间,或叫线性地址空间)为 4G(2的32次方)。也就是说一个进程的最大地址空间为 4G。操作系统的核心是内核(kernel),它独立于普通的应用程序,可以访问受保护的内存空间,也有访问底层硬件设备的所有权限。为了保证内核的安全,现在的操作系统一般都强制用户进程不能直接操作内核。具体的实现方式基本都是由操作系统将虚拟地址空间.

2020-12-03 13:57:47 188

转载 多CPU,多核,多进程,多线程

当面临这些问题的时候,有两个关键词无法绕开,那就是并行和并发。首先,要先了解几个概念:进程是程序的一次执行。 进程是资源分配的基本单位(调度单位)。 一个进程可以包括多个线程。 在单CPU计算机中,有一个资源是无法被多个程序并行使用的:CPU。 操作系统调度器:拆分CPU为一段段时间的运行片,轮流分配给不同的程序。 操作系统内存管理模块:管理物理内存、虚拟内存相关的事务。由于CPU同时刻只能执行一个进程,如果我们不加以控制的话,一个进程可能使用CPU直到运行结束,于是出现了操作系统调度

2020-12-02 10:12:50 577

转载 寄存器用途和英文全称

寄存器类别和用途基本程序执行寄存器(basic program execution registers)。8 个通用寄存器,6 个段寄存器,一个处理器状态标志寄存器(EFLAGS),和一 个指令指针寄存器(EIP)。EAX、AX、AH和AL一些寄存器的组成部分可以处理 8 位的值。例如,AX 寄存器的高 8 位被称为 AH,而低 8 位被称为 AL。同样的重叠关系也存在于 EAX、EBX、ECX 和 EDX 寄存器中:32 位 16 位 8 位(高) 8 位(低)

2020-12-01 13:12:57 3613 1

转载 计算机是如何执行程序的

转载自一位大神的文章:http://blog.chinaunix.net/uid-28032128-id-3953048.html我最近在写一本关于操作系统的书,下面的章节原本是放在本书的开始,后我感觉不好就扔了,今天把它帖到这里吧。你或许已经卷起了衣袖,或许在摩拳擦掌,正准备大干一场,打一场硬仗。年轻人嘛,行事总是风风火火的。但不是笔者扫你的兴,泼你冷水,在我们写代码之前还有很长一段路要走,要静下心来。如果写操作系统是一次旅行的话,那么千万不要错过沿途的风景……我们先来看看本章节都有些什么,.

2020-11-30 14:57:57 1905

转载 CPU如何执行代码

CPU的内部结构 我们都知道CPU是一台电脑的核心部件,所有的程序都是通过它运行的,那么CPU是如何让一个程序跑起来的呢?我们今天就来一起简单的做个了解,首先看下CPU的基本结构程序流程假如现在我们有个两个数相加的程序,当你点击运行这个程序时,系统会将这个程序复制到内存中。程序中的这些数据和指令会被存储在一个一个小的“内存空间”,并给每个空间一个“门牌号”,也就是内存中的地址。系统将程序复制到内存中后,会将程序计数器设定到程序运行的开始位置(假设这个程序的开始位...

2020-11-30 10:30:38 1897

转载 汇编语言各“标志位”含义

一、运算结果标志位1、进位标志CF(Carry Flag)进位标志CF主要用来反映运算是否产生进位或借位。如果运算结果的最高位产生了一个进位或借位,那么,其值为1,否则其值为0。使用该标志位的情况有:多字(字节)数的加减运算,无符号数的大小比较运算,移位操作,字(字节)之间移位,专门改变CF值的指令等。2、奇偶标志PF(Parity Flag)奇偶标志PF用于反映运算结果中“1”的个数的奇偶性。如果“1”的个数为偶数,则PF的值为1,否则其值为0。利用PF可进行奇偶校验检查,或产生奇

2020-11-27 15:33:55 4678

转载 嵌入式与单片机区别

如果可以按照面向对象的思想理解的话:可以说嵌入式是父类,嵌入式系统是抽象继承类,银行自助取款机是具体子类,郑州轻院正门口旁工行自助1号取款机是对象。如果这样,这个概念还不清楚的话!就来个生活中的比方:大猩猩吃香蕉,一个大猩猩要吃一棵大树上的香蕉,自己使劲跳就是够不着,于是找来了几个箱子,垫下脚就能够在树上摘下可口的香蕉了。为了做到吃香蕉这件事,大猩猩做了这么一件事,找来几个箱子,摞起来,然后摘到了香蕉,那么大猩猩和箱子是否就构成了摘香蕉的这么一个系统。如果大猩猩找来的是梯子的话,那是不是能够摘到更多好吃

2020-11-27 15:27:49 373

转载 /system/app 和 /system/priv-app 有什么区别?

关于目录/system/priv-app中包括 Launcher,SystemUI,SettingsProvider 等,均是系统的核心应用,这些应用能使用系统级的权限,4.4 之前的所有/system/app下的软件都能使用系统级的权限,Google 这样做是把内置到系统的应用也做个级别的区别。放到/system/priv-app下的应用比放到/system/app下的应用可以声明获得更多的权限。在Android中每个应用都有自己的权限声明,比如要使用系统限制的权限(例如andro...

2020-11-18 15:04:38 14143 2

原创 SystemUI中全局弹窗SystemUIDialog

/* * Copyright (C) 2014 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http:/.

2020-11-16 11:26:34 1322

转载 Android Build系统要点总结

在之前的公司参与项目开发的时候,虽然不负责系统固件编译脚本的维护,但为了工作的过程中更加的顺利,便学习了一下Android的Build系统。本文就是对之前的学习做个总结。系统版本:AOSP 5.1.11. Android Build 系统核心Android Build系统的核心位于源码目录的build/core,该目录下有几十个mk文件以及若干个shell脚本。通常是使用下面的命令来编译Android系统:$ . build/envsetup.sh$ lunch$ makeen

2020-11-12 09:36:24 824

原创 Android Dialog去边距透明

AlertDialog dialog = new AlertDialog.Builder(this).create();dialog.show();WindowManager.LayoutParams params = dialog.getWindow().getAttributes();params.width = 180;params.height = 180;Window dialogWindow = dialog.getWindow();// 必须使用这个方法,不能使用dialog.s.

2020-11-11 10:36:13 596

转载 Android Build系统介绍

概述Android build系统主要的逻辑都包含在Make文件,另外还包括各种shell和 python脚本,Build树可以理解为给Android源码的编译构建了一整套规则。框架1.结构1.1 Build核心模块图1中Build源码文件定义了整个Build系统的框架,其他所有的Make文件都是基于这个构建环境编写出来并成功编译。Build的核心文件都在/build/core/下。1.2 针对产品的Build模块图2中是针对某个产品类型的Make文件,一般都在de.

2020-11-10 15:38:26 844

转载 服务架构图

2020-11-02 10:58:21 806

转载 Android系统整体架构

Android 系统架构google经典的四层架构从下往上分别为:Linux内核层、系统库和Android运行时环境、framework层和应用层这四层架构。按照Gityuan大神的视角,我们也从系统启动过程为主线,以进程的视角来剖析Android系统的架构Android 启动架构这里先上一张Android 系统启动的架构图:可以看到:Android系统启动是从下往上的一个过程:Loader->Kernel->Native->Framework->App。..

2020-11-02 10:03:34 789

转载 Android framework修改系统默认设置

https://my.oschina.net/u/1176566/blog/190984

2020-10-29 10:34:55 254

转载 C++ STL容器

STL(标准模板库),是目前C++内置支持的library。它的底层利用了C++类模板和函数模板的机制,由三大部分组成:容器、算法和迭代器。目前STL有六大组件容器 container 算法 algorthm 迭代器 iterator 仿函数 function object 适配器 adaptor 空间配置器 allocator下面,我们会一一进行介绍。STL初探容器是STL中很重要的一种数据结构。常见的容器包括vector容器 deque双端数组 stack栈模型 q

2020-09-27 09:40:54 229

转载 Android APP启动到View显示流程

Q:从这篇文章你能学到什么?A:这篇文章从桌面上点开一个APP图标开始分析,一直到里面各个view也就是控件显示到我们眼睛的整个过程。让你了解整个APP启动流程和View绘制流程。开始思考:当我们点击手机桌面上的一个软件时,从点击到完整显示这个APP整个过程中发生了什么???先忍受一下枯燥,理论知识还是得先在脑海中留下印象的一、从Activity启动流程中理论知识入门1.Launcher  Launcher其实就是一个app,从功能上说,是对手机上其他app的一个管理和启动,从代

2020-09-24 09:02:31 1557

转载 Android USB系统(二)

1.1Vold的主要作用:Android系统中为了统一管理磁盘而引入Vold 负责磁盘的挂载等。vold是一个中间层,负责来连接上层以及驱动层。其实vold主要抓住两点:一是在CommandListener.cpp中处理上层发下来的命令,二是在NetlinkHandler.cpp中处理底层发送上来的各种信息。vold与上层之间是通过DomainSocket来通讯的,与下层之间是通过NetLinkSocket和sysfs来实现通讯的,即通过NetLinkSocket来截取usb驱动和mmc发送上.

2020-09-22 14:08:11 661

转载 Android USB系统(一)

1.1PAD作为USB Device设备USB Device的功能很丰富,其支持的协议越来越多包括:MTP、ADB、rndis、mass storage、accessory、audio_source、CDROOM等。1.1.1代码简单分析在代码中涉及到的目录主要有:1.frameworks/base/services/java/com/android/server/usb/ -----usbService.java用来管理usb协议,其通过property系统与init.xxx.usb.r.

2020-09-22 13:52:22 2161

转载 HIDL实例编写

想了解HIDL介绍的可以参考《HIDL概述》,本篇文章主要介绍HIDL的详细编译流程及简单的客户端应用(C++跟Android客户端的应用)一、准备工作1、整一套源码,Android O或者Android P的2、保证全套代码已经全编译,原生代码全编译命令source build/envset.sh lunch make3、hidl-gen工具已经安装,安装命令make hidl-gen二、hidl-gen工具介绍系统定义的所有的.hal接口,都是通过hidl-gen工具转.

2020-09-02 15:59:06 2749 4

Linux系统教程详解

Linux系统教程详解

2024-03-03

Android Framework解析

Android Framework解析

2024-03-03

flutter_3d_pageview-master.zip

3d画廊

2021-08-04

launcher-master.zip

仿桌面应用拖拽排序

2021-08-04

pingtools.apk

PingTools 是一款集成多款网络工具的 Android 应用,拥有包括 Ping, Traceroute, Whois, Network Scanner, Wi-Fi scanner 在内的多项网络工具

2020-03-11

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除