- 博客(75)
- 资源 (71)
- 收藏
- 关注
原创 系统设计概论
1.分层系统软件体系结构 1)简介 层次系统风格将对软件结构组织成一个层次结构,一个分层系统组织的,每层对上层提供服务,同时对下层来讲也是一个服务的对象。在一些分层系统中,内部的层只对相邻的层可见。除了相邻的外层或经过挑选用于输出的特定函数外,内层都被隐藏起来,这种风格支持基于可增加抽象层的设计。由于每一层最多只影响两层,同时只要给相邻层提供相同
2017-03-13 17:17:27 711
原创 Java基础教程
一.Java语法 1.java主要特性 Java语言是简单的:Java语言的语法与C语言和C++语言很接近,使得大多数程序员很容易学习和使用。另一方面,Java丢弃了C++中很少使用的、很难理解的、令人迷惑的那些特性,如操作符重载、多继承、自动的强制类型转换。特别地,Java语言不使用指针,而是引用。并提供了自动的废料收集,使得程序员不必为内存管
2017-03-01 11:06:33 849
原创 C#高级编程之C#语言
1 .NET体系结构 1.1 C#与.NET的关系 C#是一种相当新的编程语言,C#的重要性体现在以下两个方面: 它是专门为与Microsoft的.NET Framework一起使用而设计的(.NET Framework是一个功能非常丰富的平台,可开发、部署和执行分布式应用程序)。 它是一种基于现代面向对象设计方法的语
2016-08-02 19:15:01 3172
原创 Linux设备驱动实例
13 Linux块设备驱动 块设备是字符设备并列的概念,这两类设备在Linux中驱动的结构有较大差异,总体而言,块设备驱动比字符设备驱动要复杂得多,在I/O操作上表现出极大的不同,缓冲、I/O调度、请求队列等都是与块设备驱动相关的概念。 13.1 块设备的I/O操作特点 字符设备与块设备I/O操作的不同如下:
2015-09-14 14:21:19 2060
原创 Linux设备驱动核心理论(三)
10.中断与时钟 10.1 中断与定时器 所谓中断是指CPU在执行程序的过程中,出现了某些突发事件急待处理,CPU必须暂停执行当前程序,转去处理突发事件,处理完毕后CPU又返回原程序被中断的位置并继续执行。 根据中断的来源,中断可分为内部中断和外部中断,内部中断的中断来源来自CPU内部(软件中断、溢出、除法错误等
2015-08-13 15:40:32 1973
原创 Linux设备驱动核心理论(二)
7.Linux设备驱动中的并发控制 7.1 并发与竞态 并发(concurrency)指的是多个执行单元同时、并行被执行,而并发的执行单元对共享资源(硬件资源和软件上的全局变量、静态变量等)的访问则很容易导致竞态(race conditions)。 1.对称多处理器(SMP)的多个CPU
2015-08-05 15:24:14 987
原创 Linux设备驱动核心理论(一)
4.Linux内核模块 4.1 Linux内核模块简介 如果把所有需要的功能都编译到Linux内核。这回导致两个问题,一是生成的内核会很大,二是如果我们要在现有的内核中新增或删除功能,将不得不重新编译内核。 现在我们需要的是一种机制使得编译出的内核本身并不需要包含所有功能,而在这些功能需要被使用的时候,其对应的代
2015-08-04 10:41:56 1963
原创 Linux设备驱动开发基础
1.驱动概述和开发环境搭建 1.1驱动设备的作用 对设备驱动最通俗的解释就是“驱动硬件设备行动”。驱动与底层硬件直接打交道,按照硬件设备的具体工作方式,读写设备的寄存器,完成设备的轮训、中断处理、DMA通信,进行物理内存向虚拟内存的映射等,最终让通信设备能收发数据,让显示设备能显示文字和画面,让存储设备能记录文件和数据。
2015-07-21 19:15:21 2503
原创 Android管理篇
下面主要从系统层面阐述一些重要问题,如内存管理、应用管理、电源管理、系统还原、系统升级、系统配置、系统备份等,从一个更高的视角帮组开发者理解Android的运行。1.内存管理 在Android终端中,虽然内存的配置已经与功能手机有了明显的不同,不再局限于满足基本的需要,但是有效的内存管理将有助于提升程序运行的效率。 在创建进程时,Dalvik虚拟机会为每个进
2015-07-21 14:31:56 2191
原创 Android编译篇
Android的编译系统涉及面极广,包括编译工具、印像文件编译、SDK编译、NDK编译、目标系统配置等多个方面,虽然这些方面的内容烦琐而晦涩,可以参考的资料不多,但是系统设计尤其是系统架构人员必须熟悉它们。1.源代码编译 基于源代码的方式进行开发,通常会根据目标环境的不同,对系统配置进行调整,如采用不同的引导器、特定的驱动、不同的文件系统、特定的属性配置等,这就要求开发者必须
2015-07-13 10:57:53 3974
原创 Android跨语言篇
在Android中,设计的开发语言包括汇编、C、C++、java、Parcel、Bash、XML、IDL、Flash等。在原生的C/C++代码层,也涉及多线程的处理。1.C语言与汇编语言的相互调用 C语言与汇编语言的相互调用,在应用层开发中并不常用,但在驱动开发层进程用到,另外,在一些对性能特别敏感的场景中,也时有引用。 (1)C语言对汇编语言的调用
2015-07-07 10:39:05 1057
原创 Android启动篇
Android启动过程相当复杂,从引导器加载系统映像、通过init.rc脚本进行初始化配置到系统完全启动均属于启动过程的范畴。在系统启动过程中,根据系统内存的情况,还涉及垃圾回收、进程终止等内容;就单个应用的启动而言,涉及APK包解析、证书校验、权限检查等内容。1.系统的启动过程 在Android中,在BootLoader加载系统映像后,会通过system\core\root
2015-07-03 18:48:19 2609 1
原创 Android调试优化篇
为了开发出商业级的应用程序,大规模的测试是不可避免的,同时为了提高应用程序的运行速度,需要进行必要的优化。在Android中,提供了丰富的调试与优化工具供开发
2015-07-03 17:35:49 2069
原创 Android安全篇
从广义上讲,智能终端的安全主要涉及硬件、通信、软件、信息等4个层面,其中硬件的安全包括设备的跟踪/定位、防摔、防尘、防水、防震、Flash的防磨损、电磁兼容、触摸屏防划等;通信的安全主要指通信链路的安全,涉及蜂窝、WiFi、BT、互联网等的通信,相关的技术包括防窃听、防拦截、防病毒、防入侵等;软件的安全包括防破解、防反编译、防抄袭等;信息的安全包括隐私保护、敏感数据的保护、数据加密等。随着移动互联
2015-07-01 09:28:33 1480
原创 Android多媒体篇
多媒体接口和娱乐、游戏等业务密切相关,灵活地采用多媒体接口,可以使应用具备更强的吸引力。1.音频处理 作为多媒体处理的最基本的组成部分,音频处理在移动终端上十分复杂。音频的播放、记录、以及多种场景(如电话、音乐、提示音、录音等)的冲突、并发策略无疑增加了开发的难度。好在Google在设计Android时充分考虑了这些问你,在底层设计了一套围绕AndioFlinger、Audi
2015-07-01 09:28:08 5814 1
原创 Android图像篇
Android的渲染分为2D渲染和3D渲染两种,其中2D渲染的引擎为Skia,3D渲染的引擎是OpenGL ES。目前,Android支持OpenGL ES1.0和OpenGL ES 2.0两种标准。1.2D图像处理
2015-07-01 09:27:27 1941
原创 Android网络篇
针对互联网设计的操作系统,网络编程、多媒体编程。基础框架构成了Android平台应用开发的三块柱石。本章围绕网络编程协议、网络编程接口、Web服务、XML解析、SIP、NFC、RIL等方面的知识。 另外,在Android 4.0中,开始支持流量的监控,对企业应用也增强了支持,通过VpnService允许应用构建自己的VPN。1.无线接入技术概述 无线接入技术
2015-06-25 16:54:05 2626
原创 Android线程篇
在Android中,UI主线程并非线程安全的,所有UI相关的操作均需在UI主线程中完成。在默认情况下,开发者创建的Service、Activity、Broadcast均运行在UI主线程中,但将一些耗时操作,如网络下载、大文件读写、加解密计算、数据库操作等,也放在UI线程中执行,往往会阻塞UI线程,造成ANR异常,因此,在Android应用开发中,应特别注意线程的使用。 在Andr
2015-06-20 17:48:15 1483
原创 Android通信篇
在Anroid中,通信技术包括多个层面,在UI层设计多种事件(如触控事件、案件事件、轨迹球事件等);在框架层设计Intent、Meaage等;在内核层则涉及Bundle、RPC、共享内存等技术。本章将重点介绍UI层和框架层的通信机制。1.Intent通信 Intent通信实际上是对Open-Binder通信机制的封装。在Linux中,存在D-Bus和open-Binder两种
2015-06-19 11:42:43 1290
原创 Android数据篇
Android提供了多种方式(XML文件方式、文件方式、数据库方式等)进行数据的存储。开发者可以根据数据类型和设计的需要,选择适当的存储方式进行数据存储。1.XML文件管理 XML文件更多的是用来维护应用或系统的配置文件。在Android中,goole提供了SharedPreferences这个轻型的存储类作为XML文件存储的上层接口,其本质上就是值对。 根
2015-06-17 17:42:32 1251
原创 Android资源篇
主要讲解应用程序锁涉及的主要元素,包括资源、组件、事件处理、应用风格、数据适配等。1.布局文件 布局文件通常由根布局和子布局构成,在布局文件的应用程序中,会涉及不同的控件和目标环境。布局文件看似简单,实则需要很多技巧和经验,本节仅介绍布局加载、密度和一些特殊标签的使用。 (1)加载布局 通过setContextView方法可
2015-06-15 17:38:20 1702 1
原创 Android控件篇
1.Activity类控件 (1)ListActivity控件 1)ListActivity控件概述 ListActivity可以用来实现列表功能。在android中,ListActivity提供了对基本的单行、双行列表的封装,同时支持自定义列表。自定义
2015-06-11 20:10:48 1721
原创 GOF设计模式解析
设计模式之于面向对象系统的设计和开发的作用就有如数据结构之于面向过程开发的作用一般。面向对象系统的分析和设计实际上追求的就是两点,一是高内聚,二是低耦合。这也是我们软件设计所准求的,因此无论是OO中的封装、继承、多台,还是我们的设计模式的原则和实例都是在为了这两个目标努力着、贡献着。1.创建型模式 1.1 Factory模式 1.1.1模
2015-05-11 17:51:10 1585
原创 MFC转化类方法
1.字符转化 1)窄字符与宽字符之间的转化 wstring ConvertStringToWString(const std::string & str) { int nLen = (int)str.size(); int nSize = MultiByteToWideChar(CP_ACP, 0,
2015-04-29 15:33:27 733
原创 Http服务器下载文件
1.打开服务器 int CHTTP::CreateConnect(const string & HTTPServer,const string & UserName,const string &Password,const int nPort) { DWORD err; m_Session = NULL; m_Connect
2015-04-23 09:42:14 1528
原创 MFC中静态文本框贴图处理
1.静态文本控件贴png图片 在创建控件时添加SS_BITMAP属性SS_NOTIFY CImage m_Icon.Load(wstring(L"tupian.png").c_str()); RECT rect; HDC pDC = ::GetWindowDC(pImageStatic->m_hWnd); ::GetWindowRect(pImag
2015-04-22 11:32:16 2881
原创 通过UltraEdit(UE)转化\r\n(回车换行)与\n(换行)
\r\n(回车换行)是window上的换行符,\n(换行)是linux上的换行符,下面介绍通过UltraEdit(UE)在windows上实现相互转化。1.\r\n(回车换行)转化为\n(换行) 用UE打开对应的文本文件,然后按照下图进行转化,转化后保存就OK了。 2.\n(换行)转化为\r\n(回车换行) 用UE打开对应的文本文件,然后按照下图进行转化,转化
2015-04-03 15:09:44 45811
原创 STL源码剖析读书笔记
一.STL提供六大组件,彼此可以组合套用。 1.容器(containers):各种存储结构,如vector、list、deque、set、map,用来存放数据。 2.算法(algorithme):各种常用算法,如sort、search、copy、erase等。 3.迭代器(iterators):扮演容器与算法之间的连接器。 4
2015-03-27 16:38:19 722
原创 Android 组件篇
在Android平台下,应用程序可以方便地调用其他应用程序的功能来实现自己的功能需求,这是Android的特性之一,本文将向读者介绍Android程序内部或程序之间进行交互式通信的方式。1.Android应用程序的基本组件 Android应用程序的基本组件包括Activity、Service、BroadcastReceiver和ContentProvider等,不同组件具有不
2015-03-04 16:29:30 1424
原创 escape函数处理带加号字串问题
在使用Jqery做ajax操作的时候有中文老是乱码!必须的使用escape函数编码才正常,encodeURIComponent等函数都不可以,这是因为url中字符被转义,比如空格被编码成加号,于是加号成了空格。我们可以手工将加号编码成 %2B,eg:escape(str).replace(//+/g, '%2B');这样就可以了(url转义字符原理如果表单的action为list.js
2015-03-02 17:06:34 1775
原创 android开发中常用的Eclipse快捷键详细解析
1.查看快捷键定义的地方 Window->Preferences->General->Keys。2.更改启动页 在AndroidManifest.xml第一个activity标签项中 android:name=".ResultDemoActivity" ResultDemoActivity改为你想要第一启动的activity。3.取消对“块注释的格式化” Windows->
2015-03-02 09:02:50 1058
原创 linux下minicom和USB转串口
minicom是linux下串口通信的软件,它的使用完全依靠键盘的操作,虽然没有“超级终端”那么易用,但是使用习惯之后读者将会体会到它的高效与便利,下面将讲解minicom的安装和配置。一、安装minicom: 使用以下命令:# sudo apt-get install minicom ubuntu 现在做的真是没话说,相当的实用和智能啊,把相关的依赖包(l
2015-02-16 15:27:46 2252
原创 linux系统chown命令解析
chown命令 命令说明:Linux/Unix 是多人多工作业系统,所有的档案皆有拥有者。利用 chown 可以将档案的拥有者加以改变。一般来说,这个指令只有是由系统管理者(root)所使用,一般使用者没有权限可以改变别人的档案拥有者,也没有权限可以自己的档案拥有者改设为别人。只有系统管理者(root)才有这样的权限。 使用权限:root 使用
2015-02-16 15:11:10 2411
原创 linux系统chmod命令解析
chmod命令 使用权限 : 所有使用者 使用方式 : chmod [-cfvR] [--help] [--version] mode file... 说明 : Linux/Unix 的档案调用权限分为三级 : 档案拥有者、群组、其他。利用 chmod 可以藉以控制档案如何被他人所调用。 参数 :
2015-02-16 15:09:34 1382
原创 Ubuntu根目录下各文件夹的功能详细介绍
Ubuntu的根目录下存在着很多的文件夹,但你知道他们都存放着哪些文件呢?这些是深入了解Ubuntu系统必不缺少的知识,本文就关于此做一下介绍吧。 /bin/ 用以存储二进制可执行命令文件,/usr/bin/也存储了一些基于用户的命令文件。 /sbin/ 许多系统命令的存储位置,/usr/sbin/中也包括了许多命令。 /root/ 超级用户,即根用
2015-02-15 18:18:25 24366 6
原创 linux系统sed命令解析
1. Sed简介 sed 是一种在线编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有 改变,除非你使用重定向存储输出。Sed主要用来自动编辑一个或多个文件;简化对文件的反复操作;编写
2015-01-28 15:50:39 1562
原创 GDB调试精粹及使用实例
一:列文件清单 1. List (gdb) list line1,line2 二:执行程序 要想运行准备调试的程序,可使用run命令,在它后面可以跟随发给该程序的任何参数,包括标准输入和标准输出说明符()和外壳通配符(*、?、[、])在内。 如果你使用不带参数的run命令,gdb就再次使用你给予前一条run命令的参数,这是很有用的。 利用set args 命令就可以修改发送
2015-01-23 11:02:18 660
原创 Netsh命令建立虚拟wifi无线网络方法
首先要以管理员身份调出“命令提示符” 开始-所有程序-附件-右键点击“命令提示符”选用以管理员身份运行 (1)打开“命令提示符”,直接输入下面的命令项:netsh wlan set hostednetwork mode=allow。 (2)“命令提示符”输入:netsh wlan set hostednetwork ssid=你想要的无线网络名称 key=你想要设
2015-01-20 16:38:57 1623
原创 linux系统vim命令解析
控制台版本的vim随ubuntu一起发行,因此没必要安装. 然而,如果您更喜欢GUI界面下的vim的话,请从新立得安装vim-gtk软件包或在终端中输入:sudo apt-get install vim-gtkVim 需要学习很多东西。然而,如果您熟悉了vim的话,您可以利用vim的高级特征非常熟练的操作文本。您可以在终端中输入vim来启动控制台模式下的vim,或输入gvim 来启动图形模
2015-01-20 15:59:33 963
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人