- 博客(23)
- 资源 (2)
- 收藏
- 关注
原创 RTSP+RTP协议浅析
RTSP提供了一个可扩展的框架,以支持控制、按需交付实时音视频数据。该协议旨在控制多个数据传输会话,提供了一种选择传输通道的方法,比如UDP、组播UDP、TCP,并且提供了一种基于RTP的选择传输机制。
2022-04-11 17:39:51 9938 1
原创 HLS(HTTP Live Streaming)协议浅析
HLS(HTTP Live Streaming)是苹果公司基于HTTP提出来的一种自适应码率的流媒体传输协议,编号RFC8216,它的主要内容由HTTP + M3U8 + TS这三个部分共同组成。
2022-03-19 10:16:18 6882
原创 MPEG-2 TS流结构浅析
经过量化、采样后的视频数据(如YUV或RGB)、音频数据(如PCM)经过编码压缩后输出音、视频基本流ES。ES是连续码流,为了方便存储与传输,需要将基本的码流ES根据需要分割成长度不等的数据包,并加上包头就形成了打包的基本数据流PES。然后为了适应不同的网络环境和应用场景,会将一路或多路节目的PES流复用、封装打包为单一的节目流PS或传输流TS。
2022-03-03 16:26:52 3480
原创 以直播场景为例对音视频相关概念扫盲
采集端通过拍摄、特效处理、压缩编码等操作后,将直播数据实时推流到业务服务器。业务服务器对众多直播流鉴别、管理后,推送这些直播流到用户PC、移动设备等客户端可视页面。用户选择某个直播流打算观看时,客户端从业务服务器拉流,对数据流进行解封装、解码、并最终显示在屏幕上。
2022-02-22 15:23:49 1550
原创 Android9.0(Pie) system_server进程学习
在上篇文章《Zygote——Android系统中java世界的受精卵》中,我们提到了zygote的一个关键动作,那就是fork出system_server进程。这篇文章我们就来详细分析一下system_server的启动流程,以及都做了哪些事吧。
2021-11-25 02:30:00 1345 1
原创 Zygote——Android系统中java世界的受精卵
0、引言 Android的底层内核是基于Linux构建而成,是在Native世界,而Android上层的应用是隶属Java世界。那么在Android系统启动过程中,系统是如何从Native孵化出Java世界的呢?这便是这篇文章的主角Zygote的主要职责。本文所选Android系统版本是9.0 Pie,文中所有代码片段路径在代码块第一行已经标注。文章的目的是记录自己的学习历程与心得,不做商用或盈利,凡是学习过程中学习或引用过的大佬博文或著作都会尽力标注,在此感谢各位前辈...
2021-10-26 11:30:39 1865 1
原创 Android9.0(Pie)1号进程init的启动流程学习
1、引言 众嗦粥汁,无论是电脑还是手机,亦或是其他终端设备,其从上电到完全启动都有一套复杂的流程。本来是打算使用相对简单一些的android4.4版本代码来学习这一整个流程,但是由于工作生产环境从android4.4的kitkak变为了9.0的pie,所以直接用9.0的代码来学习,学习代码和熟悉9.0环境两不误,哦耶! 拿android系统的设备来说,由于其底层是linux内核,其从开机上电后,会先后经历加载boot、启动kernel等过程。(当然这个过程...
2021-10-09 19:42:36 1180
原创 《Android4.4 property机制学习》补充篇——属性树与其在内存中的存储结构
1、前言在上一篇博客《Android4.4 property机制学习》的提到的属性字典树,由于当时对其结构不太了解,所以没有细说。最近根据属性树相关的代码、注释、以及内存数据对照学习之后,有了一些自己的理解,上一篇博客感觉篇幅太长,而且这里要说的内容比较独立,所以单独写一篇来补充一下。有些内容看不太明白的话,可以先看一看上一篇文章。2、属性树的结构首先是这棵树的组织结构,源代码作者也给出了图解注释。其主要是由prop_info和prop_bt这两个结构体组成,由点(.)分割的属性名以结构体pro
2021-04-25 11:20:32 873 1
原创 Android4.4 property机制学习
本文借鉴自邓平凡著《深入理解android卷I》第三章:【深入理解init】3.2.4小节:【属性服务】,以及《深入讲解Android Property机制》,仅供学习使用。Android平台的property service(属性服务)机制,类似于windows中的注册表。通常,系统或应用会将一些属性以键值对的形式存储在注册表中,使得系统重启或者应用重启后,能够根据之前注册表中的设置进行初始化系统或应用。在Android系统中,我们可以adb的方式登录到手机或模拟器,或者使用远程控制工具以串口的方式连
2021-04-02 17:52:08 2961 6
原创 android9.0开机动画流程学习
目录1、源码获取与功能介绍2、Android系统如何启动bootanimation3、Bootanimation3.1、初始化工作3.2、android()3.3、movie()3.3、停止播放4、待补充1、源码获取与功能介绍先看android9.0的开机动画的源代码,在Android OS 在线源代码网站:https://www.androidos.net.cn/sourcecode选择自己生产环境的android版本,就可以看到这个版本的所有源代码:...
2020-12-28 17:23:38 2713
原创 加密算法学习(一、中、1)——传统加密算法(playfair密码)
本博文借鉴自书本《密码编码学与网络安全——原理与实践(第七版)》,由William Stallings著,王后珍、李莉等译。参考博客:信息安全-1:python之playfair密码算法详解[原创] - 张玉宝 - 博客园参考论文:二、代替技术3.playfair密码(1)例子:最著名的多字母密码是playfair密码,他把明文中的双字母音节作为一个单元并将其转换...
2019-06-23 18:41:50 7216
原创 加密算法学习(一、上)——传统加密算法(基础概念、Caesar密码、仿射密码)
本博文借鉴自书本《密码编码学与网络安全——原理与实践(第七版)》,由William Stallings著,王后珍、李莉等译。一、相关基础概念1.广泛使用的密码算法与协议可分为以下四个主要领域:对称加密: 加密任意大小的数据块或数据流的内容,包括消息、文件、加密秘钥和口令。 非对称加密: 加密小数据块,如加密密钥或数字签名中使用的散列函数值。 数据完整...
2019-06-18 11:16:04 4716
原创 以太坊学习路线——(五)DApp开发:简易版去中心化微博
这篇博客演示的基本操作系统环境是CentOS 7,参考书籍:以太坊开发实战——以太坊关键技术与案例分析 第十一章(吴寿鹤、冯翔、刘涛、周广益 著)。项目地址,包含该项目所需大部分文件,前端因为依赖包太多,大家自己执行命令下载一下,博文末尾有相关执行命令。我所上传的文件结构:(已通过审核)eth-weibo/├── app│ ├── dist│ ├── src│...
2019-05-28 23:33:47 1744 5
原创 以太坊学习路线——(四、上)Truffle安装、truffle项目创建、编译、部署
这篇博客演示的基本操作系统环境是CentOS 7,参考书籍:以太坊开发实战——以太坊关键技术与案例分析 第十章(吴寿鹤、冯翔、刘涛、周广益 著)。鉴于内容较多,分成两篇,下一篇博文请见:以太坊学习路线——(四、下)truffle项目合约交互、合约测试、配置文件、依赖管理文章结构:一、Truffle简介二、安装Truffle三、创建并初始化项目四、创建合约五、编译合约...
2019-04-06 18:03:50 3083
原创 以太坊学习路线——(三)Solidity常用IDE搭建、合约编译、部署、调用
这篇博客演示的基本操作系统环境是CentOS 7,参考书籍:以太坊开发实战——以太坊关键技术与案例分析 第七、九章(吴寿鹤、冯翔、刘涛、周广益 著)。一、常用IDE1.remix:是一个浏览器版的solidity开发 IDE,你可以使用在线版的https://remix.ethereum.org/,Remix使用方法,也可以下载下来 https://github.com/ethereu...
2019-04-06 18:02:53 7664 5
原创 以太坊学习路线——(二、下)以太坊编程接口:web3.js
这篇博客演示的基本操作系统环境是CentOS 7,参考书籍:以太坊开发实战——以太坊关键技术与案例分析 第六章(吴寿鹤、冯翔、刘涛、周广益 著)。要运行本博文相关程序,需要搭建以太坊私有链、安装testrpc文章结构:一.安装与启动web3.js二.账户相关API1.查看所有可用账户2.查看账户余额三、交易相关API1.账户之间转账交易2.发送一个已经签名的转账...
2019-04-06 17:37:44 1277 1
原创 以太坊学习路线——(二、上)搭建testrpc测试链
这篇博客演示的基本操作系统环境是CentOS 7,参考书籍:以太坊开发实战——以太坊关键技术与案例分析 第五章(吴寿鹤、冯翔、刘涛、周广益 著)。首先请自行搜索安装并更新nodejs到较高版本。一.搭建testrpc1.安装$ npm install -g ethereumjs-testrpc2.使用[root@localhost geth]# testrpcEthe...
2019-04-03 19:46:06 2406 1
原创 以太坊学习路线——(一)私有链搭建与基本操作
这篇博客演示的基本操作系统环境是CentOS 7,参考书籍:以太坊开发实战——以太坊关键技术与案例分析 第五章(吴寿鹤、冯翔、刘涛、周广益 著)。文章结构:一.geth客户端安装二.搭建一个私有链1.新建一个geth工作目录2.创世区块配置文件3.初始化4.启动私有链三.以太坊私有链上的基本操作1.创建用户2.查看余额3.挖矿4.解锁账户5....
2019-03-26 19:48:17 9789 2
原创 汇编代码练习之——花里胡哨五彩绚丽字符显示
练习汇编代码在命令行显示字符时写的一个显示内容显得花里胡哨的程序,感觉挺好玩!先贴代码:assume cs:code,ds:data,ss:stackdata segment db 26,0,1;data endsstack segment dw 0,0,0,0,0,0,0,0;stack endscode segment start: mov ax,0b...
2019-01-19 12:00:51 3370
原创 汇编语言贪吃蛇、俄罗斯方块双任务设计实现详解(四)——双任务调度与键盘中断(完结)
详细设计:4.双任务设计和键盘中断:更改键盘中断的中断向量表的cs、ip的值,使其指向自定义的int9程序,在int9程序中完成模拟中断时要做的准备,包括pushf,将可屏蔽中断标志位置零,push cs,push ip,然后调用dos系统的键盘中断程序,来处理中断底层操作。然后编写针对不同的扫描码,做出不同的响应。比如按下ESC键,返回到dos命令行,按下Tab键切换运行程序……如下...
2019-01-18 12:16:12 859
原创 汇编语言贪吃蛇、俄罗斯方块双任务设计实现详解(三)——俄罗斯方块详细设计
详细设计:3.俄罗斯方块详细设计:下图所示,左下角为主程序的调用情况,左边上侧和右侧为俄罗斯方块相关数据在teris段中的存储情况下图所示,左侧为俄罗斯方块具体子程序,右侧为俄罗斯方块程序运行流程图。主程序中所调用的to_play_teris较为复杂,具体代码如下:;功能:运行俄罗斯方块;参数:无;返回:无to_play_teris:push axpush...
2019-01-18 11:21:22 2543
原创 汇编语言贪吃蛇、俄罗斯方块双任务设计实现详解(二)——贪吃蛇详细设计
详细设计:2.贪吃蛇详细设计:如下图所示左下角为主程序对贪吃蛇相关子程序的调用,程序中init_left_window子程序功能为将左侧窗口非边框部分置为空。左边上侧和右侧是贪吃蛇段中,贪吃蛇程序需要的相关数据在snake段中的存储情况:如下图所示,右侧为贪吃蛇程序整体流程图,左侧为贪吃蛇具体子程序。设置贪吃蛇初始时在第13行,距离左侧边框一个空单元,因为蛇默认向右移动,故...
2019-01-17 21:01:30 2567
原创 汇编语言贪吃蛇、俄罗斯方块双任务设计实现详解(一)——整体系统设计
题目要求:1.系统划分:将显示器的屏幕划分成大小相等的左右两个显示窗口,并画出每个显示窗口的边框,窗口大小适中。若左窗口贪吃蛇游戏正在进行时,切换到右窗口执行俄罗斯方块,则贪吃蛇游戏暂停,以后每按一次Tab键切换至旁边显示窗口,从被中断前的地方继续执行。当某个显示窗口被选中时,则光标在该窗口底部闪烁,键盘输入对当前窗口有效。整个系统按ESC键退出,返回DOS操作系统界面。2.贪吃蛇:在左边...
2019-01-17 20:51:33 2047
eth-weibo.zip
2019-05-28
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人