gagapencil学习小站

gagapencil学习小站

日日行,不怕千万里;常常做,不怕千万事。

深入理解linux中内存管理
[TOC] 前言c程序运行在linux进程中,要想弄清楚c程序运行时内存需要搞清楚进程空间,而要搞清楚进程空间 虚拟内存是必须要了解的。毋庸置疑,虚拟内存绝对是操作系统中最重要的概念之一。我想主要是由于内存的重要”战略地位”。CPU太快,但容量小且功能单一,其他 I/O 硬件支持各种花式功能,可是相对于 CPU,它们又太慢。于是它们之间就需要一种润滑剂来作为缓冲,这就是内存大显身手的地方。而在现代操作系统中,多任务已是标配。多任务并行,大大提升了 CPU 利用率,但却引出了多个进程对内存操作的冲突问题,虚拟内存概念的提出就是为了解决这个问题。 由来:回顾一下历史,在早期的计算机中,程序是...
FFmpeg命令详解
滤镜解析FFmpeg中filter分为: audio filter video filter Multimedia filter source filter(仅输出) sink filter(仅输入) 详细的滤镜说明参看:https://ffmpeg.org/ffmpeg-filters.html 视频滤镜crop按照特定分辨率裁剪输入视频 截取右下角1/4的区块:crop=in_w/2:in_h/2:in_w/2:in_h/2 scale使用libswscale库完成视频缩放的filter 宽高缩小一半 scale=in_w/2:in_h/2 宽高固定拉伸比例:scale=1400...
apk签名过程及多渠道
apk签名过程及多渠道公司业务渠道较多共有70多个渠道,打包时间较长,所以抽时间研究一下美团的多渠道打包。本文介绍常见的多渠道打包方式:productFlavors方式,apktool,美团1.0,美团2.0,腾讯 这些方式技术从旧到新,试图说起多渠道打包的脉络。 productFlavorsproductFlavors不用切换项目分支就可以编译调试不同项目版本的APK,并且可以快速打包所有项目版本的APK。例如是开发第三方Android OS的时候,由于要给不同的厂商做定制,并且适配不同的硬件平台,所以发版本的时候,经常要切换项目分支,然后逐个编译APK。关于更多productFlav...
android编舞者ChoreoGrapher
Choreographer的作用结合上篇Android 绘制原理可知道,屏幕每16ms 显示frame buffer上的帧信息,然后frame buffer和back buffer进行互换,并发送vsync信号,此时CPU会中断其它操作,来通过ChoreGrapher去确定显示的帧信息(控件应该怎么画,画在哪个位置,画多大),当这些信息确定后,GPU再根据这些信息刷新back buffer的信息,刷新完成后 back buffer 和 frame buffer互换位置。 Choreographer的具体运行过程Choreographer主要做如下工作,下面我们逐一分析 注册监听,当收到...
屏幕适配
1.基本概念1.1 px简单说,像素就是表示一个点的RGB颜色;这个点,是数学上的概念,是没有大小的;但是屏幕显示一个像素是需要大小的,具体大小是屏幕尺寸除以屏幕分辨率 1.2 屏幕分辨率屏幕分辨率就是屏幕最多能显示多少个像素,如果屏幕最多能显示1080 * 1920个像素,屏幕大小是3 * 5英寸的,那么每个像素占用(3/1080) * (5/1920)的大小。一般情况下屏幕宽高比和像素宽高比是相等的, 1.2 ppi, dpi屏幕上每英寸上点的数量,我们叫做DPI(dots per inch),因为屏幕上面每个点对应一个像素,所以也有叫PPI;两者大部分情况可以混用,有时候又不一样。...
增量更新
增量更新增量更新 一种不需要重新下载apk,利用新的apk在原有的基础生成patch包进行更新的一种技术。本文重增量更新的作用,原理和使用进行阐述。 原理及作用增量更新就是比较两个apk之间的二进制差异,生成patch包然后打入旧的apk里面从而达到生成新的apk。例如说:第一个版本是3M的apk ,第二个是8M的apk ,生成的patch包可能就在4M左右,甚至更小,但也不是单纯的两个apk相减的差值,有可能两个大小差不多的apk,生成patch包可能在1M左右,这个也是看包里的改动大小。生成的 patch下载到Android设备上跟较低版本的apk合成一个新版本的apk文件,如果不出...
android绘制原理
硬件分工在计算机硬件中, 通常 CPU 用来处理数据, GPU 用来渲染数据. Android 系统也不例外, 绘制过程首先是 CPU 准备数据, 通过 Driver 层把数据交给 GPU 渲染. 其中 CPU 主要负责 Measure 、Layout 、Record 、Execute 的数据计算工作, GPU 负责 Rasterization(栅格化)、渲染. 由于图形 API 不允许 CPU 直接与 GPU 通信, 而是通过中间的一个图形驱动层(Graphics Driver)来连接这两部分. 图形驱动维护了一个队列, CPU 把 display list 添加到队列中, GPU 从...
avatar
gagapencil
日日行者
FRIENDS
friendA friendB