自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

andyhuabing的专栏

记录生活点滴,开发心得,与朋友们一起分享

  • 博客(212)
  • 资源 (3)
  • 收藏
  • 关注

原创 nginx log打印输出精度问题

1、问题:nginix log默认输出时间打印是到秒级,有时为了查某一个请求花费的时间,一般都在10-20ms毫秒级别,因此就没法更细致的分析哪个步骤耗时时间。2、问题的分析:一般服务器对于时间的精度要求不高,内部对时间进行cache,用来减少对gettimeofday()的调用,对于打印时需要毫秒级就成为一个问题了。在ngx_times.c中提供了ngx_time_update()函数来更新时间缓

2017-04-25 09:34:57 3444

转载 Android4.4深入浅出之SurfaceFlinger总体结构

转发自: http://blog.csdn.net/w401229755/article/details/38420191Android4.4 GUI系统框架之SurfaceFlinger一.             Android GUI框架:SurfaceFlinger:每当用户程序刷新UI的时候,会中介BufferQueue申请一个buffer(deq

2016-11-16 14:26:55 1940

原创 Redis 主从复制--replication 代码分析

源码版本:redis-3.2.31、redis的主从复制实现简单却功能强大,其具有以下特点:1. 一个master支持多个slave连接,slave可以接受其他slave的连接2. 主从同步时,master和slave都是非阻塞的2、redis主从复制可以用来:1. data redundancy 2. slave作为master的扩展,提供一些read-only的

2016-11-14 15:35:14 3725

原创 Redis 之BIO与RIO

一、BIO 之后台IO操作BIO : Background I/O service for Redis. 负责我们需要在后台执行的操作。现在redis的版本中只有两类的操作,后台的close及fsync 系统调用。为了避免一个文件最后的owner在执行close操作带来的unlink使得阻塞server,将这类操作用单独的后台线程来执行将数据从内存写入磁盘这点非常重要,即f

2016-09-19 13:49:27 2834

原创 Redis AE 异步事件模块

首先想一个问题,为何Redis比Memcached快呢?一般想法:Memcached完全基于内存,而Redis具有持久化保存特性,即使是异步的,Redis也不可能比Memcached快。可实际测试情况基本上是:Redis占绝对优势。可能原因有二:1、Libevent: Memcached使用、而Redis没有选用。Libevent为了迎合通用性造成代码庞大及牺牲了在特定平台

2016-09-18 14:50:36 3201

原创 Redis的主要脉络梳理

Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。由于工作需要,需要深入研究此开源代码用于选型及设计代码,先从main函数开始吧。参考版本:Redis-3.2.3首先从main函数开始@server.cint main(int argc, char **argv) { //

2016-09-18 09:49:09 1907

原创 Memcached特性及优缺点

需求来源:为了加快文件访问速度且提供多个使用者、需要在内存中建立内存缓存数据的管理减小读写磁盘的次数及保证数据的更新、因为需要使用cache缓存。1、Memcached 主要特性a、数据仅存在于内存中,宕机或重启数据将全部失效b、内容数据达到启动时设定内存指定值后、基于LRU算法删除缓存,LAZY模式、可指定最大内存用量。c、实际瓶颈在于网络连接、占应较少的

2016-09-08 14:38:30 7991 3

原创 Memcached 源码分析--命令流程分析

一、执行命令首先是启动memcached 自带参数如下:-p 设置TCP端口号(默认设置为: 11211)-U UDP监听端口(默认: 11211, 0 时关闭) -l 绑定地址(默认:所有都允许,无论内外网或者本机更换IP,有安全隐患,若设置为127.0.0.1就只能本机访问)-c max simultaneous connections

2016-09-07 18:03:40 2443

原创 Memcached 源码分析--网络模型流程分析

一、功能介绍Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态、数据库驱动网站的速度。Memcached基于一个存储键/值对的hashmap。其守护进程(daemon)是用C写的,但是客户端可以用任何语言来编写,并通过memcached协议与守护进程通信。memc

2016-09-07 12:16:16 1966

原创 Siege web 压测工具代码分析

一、功能简介“Siege”意为围攻、包围。是一款使用纯C语言编写的开源WEB压测工具,适合在GNU/Linux上运行,具有较强的可移植性。Siege使用多线程实现,支持随机访问多个URL,可以通过控制并发数、总请求数(or压测时间)来实现对web服务的压测。Siege支持http,https,ftp三种请求方式,支持GET和POST方法,压测方式为同步压测。因为编写http cli

2016-09-06 14:10:55 2155 2

原创 FastDFS 分布式系统需求分析

FastDFS是一款开源的轻量级分布式文件系统、纯C实现,支持Linux, FreeBSD等UNIX系统类google FS, 不是通用的文件系统,只能够通过专有API访问,目前提供了C,Java和PHP API为互联网应用量身定做,解决大容量文件存储问题,追求高性能和高扩展性。FastDFS可以看做是基于文件的key-value存储系统,称为分布式文件存储服务更为合适。FastD

2016-03-03 18:01:28 2491 2

原创 Redis 高性能内存存储

Redis是一个开源,先进的key-value存储,并用于构建高性能,可扩展的Web应用程序的完美解决方案。Redis从它的许多竞争继承来的三个主要特点:Redis数据库完全在内存中,使用磁盘仅用于持久性。相比许多键值数据存储,Redis拥有一套较为丰富的数据类型。Redis可以将数据复制到任意数量的从服务器。Redis 优势

2016-03-03 17:41:50 6314 1

原创 告别2015年迎来2016

1、工作: 继续为未来打拼,有时候会感觉看不到尽头。但要相信,渡过了这一段努力得自己都能感动自己的日子之后,自已想要的,岁月统统都会还给你。任何值得去的地方,都没有捷径。 2、生活: 人生会经历三次成长:第一次是发现自己不是世界的中心;第二次是发现即使再怎么努力,终究还是有些事令人无能为力;第三次是在明知道有些事可能会无能为力,但还是会竭尽全力。 3、理财: 你不理财、财不理你,2015年

2015-12-31 14:15:27 1889 2

原创 读 《周爱民--大道之简》 笔记

1、编程语言只有喜欢与不喜欢的问题,没有会不会的问题。任何的一门语言,你都可以在两周内掌握并开始熟练编程。因为任何的一门语言,他们的底层函数库都是那么的相似,而他们API 都是那样的依赖于操作系统。通常而言,语言的差别主要表现在适用范围上。一些语言适合做数值处理,小数点后可以精确到原子级,而小数点前则可以表达到宇宙之无穷;另一些语言则适合做图形处理,它的底层函数库比其它语言可以快上十倍或数十倍;还有

2015-11-30 17:05:43 2195

原创 读 <<富爸爸财务自由之路>> 之感

《富爸爸回顾之一》(1) 富人、穷人和中产阶级最基本的差别,就是他们在业余时间干的事。(2) 穷人为钱工作,富人则建立资产。(3) 富人创立公司,购买不动产。(4) 储蓄者总是损失方。(5) 在学校看成绩好坏,在生活中看财务报表状况。(6) “怎样才能”,而不是“我不能”。《富爸爸回顾之二》(1) 没有财务自由,你就无法真正获

2015-11-26 10:31:38 2549 1

原创 sp&wp 的三板斧

根据《深入理解Android 卷I》改编而来、加入自已的理解而来。对于sp&wp的理解一直知道不够深入、真好有时间、彻底深究一下、典型的程序员风格。透过代码看本质。这里对于最核心的sp&wp的构造及析构讲解。参数代码下载地址:http://download.csdn.net/detail/andyhuabing/9251737  通过eclipse打开c工程、即可单步调试。

2015-11-09 12:02:38 2051 1

原创 Android 无法接收开机广播的问题

Android手机开机后,会发送android.intent.action.BOOT_COMPLETED广播,监听这个广播就能监听开机。一般的步骤如下:注册广播123456<receiver android:name="com.netmoon.broadcast.Boot

2015-11-06 10:52:50 22768 7

原创 Android 待机功能流程分析

Android智能手机或机顶盒子为了进入省电模式、所以就需要有待机功能。PowerManager.java 类提供了如下的电源管理功能:public void goToSleep(long time) 强迫设备进入睡眠状态public void reboot(String reason)  重启设备提供了内部类: public final class WakeLock

2015-11-04 16:38:55 12290 1

原创 字符编码问题

用比较简单的话来说就是,Unicode定义了所有可以用来表示字符的数值集合(称之为Code Point)。UTF-8和UTF-16等UTF标准定义了这些数值和字符的映射关系。ASCII字符集:英文字母再加一些其他标点字符之类的也不会超过256个.一个字节表示者足够了ISO 定义任何一个字符只对应一个确定的数字即 UCS(Universal Charact

2015-11-04 14:56:52 2326

原创 lua学习--系列1

学习原因:Lua 是一个小巧的脚本语言其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。Lua由标准C编写而成,几乎在所有操作系统和平台上都可以编译,运行。Lua并没有提供强大的库,这是由它的定位决定的。所以Lua不适合作为开发独立应用程序的语言。Lua 有一个同时进行的JIT项目,提供在特定平台上的即时编译功能。不仅仅作为扩展脚本,也可以作为

2015-04-21 18:18:41 1960

转载 高级系统架构师培训笔记

转载自:http://blog.csdn.net/fengbingchun/article/details/39270755前几天参加了中科院计算所培训中心谢老师的高级系统架构师培训课程,将其中的一些点做了下记录:系统架构师的工作是复杂设计总体解决方案以及领域对象的逻辑和物理布局,这是一项在复杂环境中高风险、高影响力的活动。1、软件架构的定义:软件架构(

2015-03-11 16:35:22 1848

原创 用C实现面向对象

很多开发工程师都是从学习C语言的"Hello world!"开始的,都知道C语言中的指针是一把利剑,一不留意就伤了自个。但其C语言绝对是一个宗师级语言,这是不可否认的。    由于我们开发的需要在多个平台上运行且需要面向对象的一些特性、所以特写此文章。权当抛砖引玉。    一、概述     C语言是一种面向过程的程序设计语言、而C++在语言级别上添加了很多新机制(继承,多态等)

2015-03-05 15:48:32 2314

转载 软件设计本质论(Essential Design)—白话面向对象

转载时请注明出处:http://blog.csdn.net/absurd/不同的人在谈面向对象编程(OOP)时所指的含义并不相同。有人认为任何采用图形界面的应用程序都是面向对象的。有人把它作为术语来描述一种特别的进程间通信机制。还有人使用这个词汇是另有深义的,他们其实是想说:“来啊,买我的产品吧!”我一般不提OOP,但只要提到,我的意思是指使用继承和动态绑定的编程方式。

2015-02-04 11:54:38 1616

原创 GCC 对C语言的扩展

Linux内核必须使用GNU的GCC编译器来编译,而GCC提供了很多的C语言扩展,这些扩展对优化、目标代码布局、更安全的检查等提供了很强的支持。因此,内核代码所使用的C语法并不完全符合ANSI C标准,实际上,只要有可能,内核开发者总是要用到GCC提供的C语言扩展部分。所以特意找了几个常用的特性总结下。1、语句内嵌表达式(statement-embedded expressio

2015-01-12 12:04:53 5984

原创 文件映射IO(mmap-mprotect-msync-munmap)函数

本文介绍在POSIX环境使用文件映射IO操作的方法,文件映射IO又被称为存储映射IO,对于普通文件而言,很多时候它是高效的,它实际减少了数据的复制;同时它也可以用于特殊的地方,用于进程之间的通信,共享内存的一种方式。我们能够把一个文件想象成一块连续的数据,从纯粹的数据角度来看,任何普通文件都可以这么理解。文件映射实际上是把文件的这块数据与我们程序里的一块内存对应上了,使用我们操

2015-01-04 16:05:56 3820

原创 AAC ADTS格式分析

1.ADTS是个啥ADTS全称是(Audio Data Transport Stream),是AAC的一种十分常见的传输格式。记得第一次做demux的时候,把AAC音频的ES流从FLV封装格式中抽出来送给硬件解码器时,不能播;保存到本地用pc的播放器播时,我靠也不能播。当时崩溃了,后来通过查找资料才知道。一般的AAC解码器都需要把AAC的ES流打包成ADTS的格式,一般是在AAC

2014-11-10 17:16:42 8431

原创 Android MediaPlayer 及 NativePlayer 之播放格式对比

对于原生MediaPlayer 的支持格式测试:MediaPlayer播放器在九联,联发科,原道等Android设备上视频文件编码格式支持汇总序号文件夹文件名视频编码音频编码是否正常播放:是(√),否(×)备注:正常播放是指音频,视频均正常九联联发科原道N12

2014-11-06 09:45:09 9583 1

原创 bootchart 使用说明及代码分析

bootchart是一个对linux启动流程进行分析得开源软件工具。android中有集成bootchart源码,路径为system/core/init/bootchart.c 先从具体使用流程如下:1、编译android中的bootchart(缺省时不被编译)  在android源码system/core/init/目录执行: mm INIT_BOOTCHART=true

2014-04-14 12:02:31 17754 6

转载 如何分析解决Android ANR

[java] view plaincopyprint?来自:  http://blog.csdn.net/tjy1985/article/details/6777346  http://blog.csdn.net/tjy1985/article/details/6777355  http://blog.csdn.net/tjy1985/article/d

2014-03-27 16:57:46 6372 3

转载 Android线程分类

前一段时间在协同开发一个应用,打开最终提交的项目文件发现里面Activity,service这种组件类在所有类文件所占比例不过40%,其余的都是辅助组件的类,其中很大一部分是线程。Android应用启动时会自动打开主线程也就是UI线程,activity和service这种组件都运行在主线程中。但是主线程对反应时间有严格的限制,停滞超过5秒就会报ANR异常,因此复杂的耗时的逻辑不能写在主线程中,这也

2014-03-18 17:19:38 2023

转载 sp和wp的实现过程~~

(转)sp和wp的实现过程~~        sp和wp实际上就是android 为其c++实现的自动垃圾 回收机制 ,具体到内部实现,sp和wp实际上只是一个实现垃圾回收功能的接口 而已,比如说对*,->的重载,是为了其看起来跟真正的指针一样,而真正实现垃圾回收的是refbase这个基类。这部分代码的目录 在:/frameworks/base/include/utils/RefBase.

2014-02-28 12:09:37 2291

转载 java的锁机制

转载一段synchronized的代码被一个线程执行之前,他要先拿到执行这段代码的权限,在java里边就是拿到某个同步对象的锁(一个对象只有一把锁); 如果这个时候同步对象的锁被其他线程拿走了,他(这个线程)就只能等了(线程阻塞在锁池等待队列中)。 取到锁后,他就开始执行同步代码(被synchronized修饰的代码);线程执行完同步代码后马上就把锁还给同步对象,其他在锁池中等

2014-01-06 17:32:31 1621

原创 android - home键及launcher启动流程分析

android - home键及launcher启动流程分析launcher,也就是android的桌面应用程序,开机启动的第一个应用程序及按home键进入的都是这个程序。如果需要修改启动流程或者制作一个新的launcher,都有必要了解一下这个流程。第一部分:系统默认Home应用程序(launcher)启动流程1、frameworks/base/ser

2013-11-01 10:59:01 25029 2

原创 android SystemUI 流程分析

android4.0 -- SystemUI 流程分析什么是SystemUI?对于Phone来说SystemUI指的是:StatusBar(状态栏)、NavigationBar(导航栏)。而对于Tablet或者是TV来说SystemUI指的是:CombinedBar(包括了StatusBar和NavigationBar)。启动后Phone界面上的信号,蓝牙标志,Wi

2013-10-18 14:00:23 36650 5

原创 Android 获取最近应用的缩略图

最近有项需求是获取应用的缩略,用于在动画时显示。因此就对此块知识简要了解了一下。在android中获取视频文件的缩略图有三种方法:1.从媒体库中查询新视频增加后需要SDCard重新扫描才能给新增加的文件添加缩略图,灵活性差,而且不是很稳定,适合简单应用2. android 2.2以后使用ThumbnailUtils类获取实现简单,但2.2以前的版本不支持3.调用jn

2013-10-12 17:08:30 10035 12

原创 Android 画图类View与SurfaceView之学习

在开发游戏开发中,android相应的提供了几个重要的模块:1、显示界面的视图:  Android 提供 View 和 SurfaceView 2、控制游戏整体结构: android 提供 Activity 3、逻辑控制类:专门用于处理游戏的逻辑计算4、处理游戏界面与用户交互事件 : 利用 View 类提供的 onKeyDown onKeyUp onTounchEvent等方法

2013-10-12 16:40:32 8406

原创 学习webView控件使用

WebView 对象用于网页显示使用,简单的学习并使用了一下。1、首先在 layout 中摆一个全屏的 webview 控件 (main.xml )      android:orientation="vertical"      android:layout_width="fill_parent"      android:layout_height="f

2013-10-10 17:38:04 4224 2

原创 android 4.2 系统编译小结

android 4.2 系统编译小结1、InputManager.java 类问题由于 InputManager 类路径及函数都发生了变化,所以用法有所不同long now = SystemClock.uptimeMillis();KeyEvent down = new KeyEvent(now, now, KeyEvent.ACTION_DOWN, eve

2013-10-10 14:31:11 8060

原创 Android 中 AsyncTask 的使用

项目中存在复杂的后台操作且不能影响ui线程显示效果,因些就有很多事情需要后台处理。因此android中提出单线程模型开发。在开发Android应用时必须遵守单线程模型的原则: Android UI 操作并不是线程安全的并且这些操作必须在UI线程中执行。在单线程模型中始终要记住两条法则:1、不要阻塞UI线程 2、确保只在UI线程中访问Android UI工具包

2013-09-23 10:37:05 5828 1

原创 android recovery 主系统代码分析

阅读完上一篇文章: http://blog.csdn.net/andyhuabing/article/details/9226569 我们已经清楚了如何进入正常模式和Recovery模式已有深刻理解了,假设进入了Recovery模式,那么其核心代码是怎么做的呢?代码路径在 android 源码的根路径: bootable\recovery 其入口文件就是 recovery.c 中

2013-07-05 14:05:09 30804

Android sp&wp 测试代码

利用Eclipse C工程,将 Android sp&wp 在上面进行实现的代码、可以单步调用或运行。深入理解sp&wp的实现原理。抛开Andorid的大坨代码而不明其本质。

2015-11-09

OO面向对象测试代码

OO面向对象测试代码。方便大家学习一下OO如何在C中实践。

2015-03-05

中文Soap协议规范

中文Soap协议规范 权限规范,相当不错

2009-08-04

空空如也

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

TA关注的人

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