Welcome 微信登录

首页 / 操作系统 / Linux

C语言和设计模式(之原型模式)

C语言和设计模式(之原型模式)

原型模式本质上说就是对当前数据进行复制。就像变戏法一样,一个鸽子变成了两个鸽子,两个鸽子变成了三个鸽子,就这么一直变下去。在变的过程中,我们不需要考虑具体的数据类型。为什么呢?因为不同的数据有自己的复制类型,而且每个复制函数都是虚函数。 用C++怎么编写呢,那就是先写一个基类,再编写一个子类。就是这么简单。classdata{public:data(){}virtual~data(){}virtualclassdata*copy()=0;};classd...
C语言和设计模式(之单件模式)

C语言和设计模式(之单件模式)

有过面试经验的朋友,或者对设计模式有点熟悉的朋友,都会对单件模式不陌生。对很多面试官而言,单件模式更是他们面试的保留项目。其实,我倒认为,单件模式算不上什么设计模式。最多也就是个技巧。 单件模式要是用C++写,一般这么写。#include<string.h> #include<assert.h> classobject{public:staticclassobject*pObject;staticobject*create_new...
C语言和设计模式(之开篇)

C语言和设计模式(之开篇)

关于软件设计方面的书很多,比如《重构》,比如《设计模式》。至于软件开发方式,那就更多了,什么极限编程、精益方法、敏捷方法。随着时间的推移,很多的方法又会被重新提出来。其实,就我个人看来,不管什么方法都离不开人。一个人写不出二叉树,你怎么让他写?敏捷吗?你写一行,我写一行。还是迭代?写三行,删掉两行,再写三行。项目的成功是偶然的,但是项目的失败却有很多原因,管理混乱、需求混乱、设计低劣、代码质量差、测试不到位等等。就软件企业而言,没有比优秀的文化和出色的企业...
Android数据存储---SharedPreferences

Android数据存储---SharedPreferences

SharedPreferences是Android平台上一个轻量级的存储类,主要是保存一些常用的配置比如窗口状态,一般在Activity中重载窗口状态onSaveInstanceState保存一般使用SharedPreferences完成,它提供了Android平台常规的Long整形、Int整形、String字符串型的保存。这种方式应该是用起来最简单的Android读写外部数据的方法了。以一种简单、透明的方式来保存一些用户个性化设置的字体、颜色、位置等参数...
Android数据处理---SQLite

Android数据处理---SQLite

一、SQLite数据库介绍:SQLite 是一个开源的嵌入式关系数据库,它在 2000 年由 D. Richard Hipp 发布,它可以减少应用程序管理数据的开销, SQLite 可移植性好 、 很容易使用 、 很小 、 高效而且可靠 。目前在 Android 系统中集成的是 SQLite3 版本 , SQLite 不支持静态数据类型 , 而是使用列关系 。 这意味着它的数据类型不具有表列属性 , 而具有数据本身的属性 。当某个值插入数据库时, SQLi...
第一个Android应用程序---Android应用的目录结构与运行过程分析

第一个Android应用程序---Android应用的目录结构与运行过程分析

一、Android应用的目录结构 第一个目录:src 存放java的语言文件 第一个目录:res(resource) 资源英文的缩写。存放资源文件的如应用中的图片 界面 音频 视频等 图片 图标资源放在dravable-hdpi文件中 dravable-hdpi dravable-ldpi dravable-mdpi这三个代表高中低分辨率的图片 layout(布局)文件夹 存放应用中所使用的各种界面文件 中的文件作用相当于web开发中的HTML和jsp ...
Android中binderDied()以及“Unknown binder error code” 出现的原因说明

Android中binderDied()以及“Unknown binder error code” 出现的原因说明

Binder机制是Android系统进程间通信的核心机制,它很大而且很复杂,不过对它有一定程度的理解和掌握是真正接触Android核心的必备。网上关于它的介绍很多,希望大家能耐着性子认真地学习Binder机制的实现。在此,给大家分享一个我认为要学习Binder机制基础的《Android系统中Binder机制的分析系列》 见 http://www.linuxidc.com/Linux/2011-12/49832.htm,希望对大家有用。 本来也准备自己写点关...
Android系统的Binder机制

Android系统的Binder机制

Android虽然构建在Linux上面,但是在IPC(进程间)机制方面,没有利用Linux提供IPC机制,而是自己实现了一套轻量级的IPC机制——binder机制。并且Android Binder机制之上,Android框架提供了一套封装,可以实现对象代理(在本地进程中代理远程进程的对象)。本文简单分析一下Android Binder机制。Binder情景分析 一个IPC通讯我们可以理解成客户端-服务器模式,因此我们先在这里分析一下典型的Binder应用模...
ACE中的定时器实现原理

ACE中的定时器实现原理

最近项目中遇到一个问题,用ace框架起的定时器,跑着跑着,它不跑了,然后我依赖定时器所创建的任务也一直挂在那里。查看系统软件打印的日志发现,是ace的ACE_Reactor在run_reactor_event_loop函数中返回了-1,reactor的时间循环结束,从而导致定时器函数handle_timeout函数无法再被触发。为了找出问题的具体原因,看了一把ace的源码,虽然到目前为止,为何run_reactor_event_loop函数返回-1的原因还...
Android 系统开发之背光

Android 系统开发之背光

忽略了Linux下的权限问题,让我纠结了好几个小时啊。首先说明一下,这次学习中让我学到的东西:最主要的莫过于是了解了Android中jni编程,游荡整个Android源码,可以看到很多直接操作底层驱动接口,封装成so库,供Java调用的例子哦。这次学习,也正是出于这样的想法,没想到这个设想高手们早就实现了哦,菜鸟现在也只能算是验证了。诶,菜鸟就是菜鸟,有虫子吃,就兴奋的不得了。驱动架构略,这里只讨论jni接口的实现。一、我的设想其实设想很简单,找到背光驱动...
DM6467 之视频采集(Linux)下mmap

DM6467 之视频采集(Linux)下mmap

做DM6467是在Linux下做视频采集,仅ARM端一共有三种视频采集方式: 1)使用read、write方式:直接使用 read 和 write 函数进行读写。这种方式最简单,但是这种方式会在 用户空间和内核空间不断拷贝数据 ,同时在用户空间和内核空间占用 了 大量内存,效率不高。 2)内存映射方式(mmap):把设备里的内存映射到应用程序中的内存控件,直接处理设备内存,这是一种有效的方式。上面的mmap函数就是使用这种方式。 3)用户指针模式:内...
网络驱动移植之解析Linux网络驱动的基本框架

网络驱动移植之解析Linux网络驱动的基本框架

内核源码:linux-2.6.38.8.tar.bz2 概括而言,编写Linux网络驱动其实只要完成两件事即可,一是分配并初始化网络设备,二是注册网络设备。 1、分配并初始化网络设备 动态分配网络设备(从C语言角度来看,其实就是定义了一个struct net_device结构体变量,并对这个结构体变量的某些成员进行了初始化而已)及其私有数据的大致过程如下图(以以太网设备为例): 下面将结合linux-2.6.38.8中的代码详细分析网络设备的分配和...
<< 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 >>