自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(202)
  • 资源 (4)
  • 收藏
  • 关注

原创 设计模式与架构设计的资料收藏

1.   C++与设计模式http://www.cppblog.com/mzty/

2012-08-31 00:30:08 854

原创 一些名博和开源工程收藏

1. 播放器,ASIHttp等https://github.com/yuyi012http://www.cocoachina.com/downloads/code/2012/0604/4320.html2. 雪花,火焰,烟花等特效https://github.com/lichtschlag/Dazzle3. 一种下拉刷新的实现http://www.c

2012-06-06 17:00:19 1675

原创 Dalvik虚拟机的进程和线程管理

一般来说,虚拟机的进程和线程都是和目标机器本地操作系统的进程和线程一一对应的,这样的好处是可以使本地操作系统来调度进程和线程。                Dalvik虚拟机运行在Linux操作系统之上。Linux操作系统并没有纯粹的线程概念,只要两个进程共享一个地址空间,那么就可以认为它们是同一个进程的两个线程。Linux系统提供了两个fork和clone调用,其中,前者是用来创建进程

2013-07-23 08:22:41 3186

原创 Dalvik虚拟机的本地调用(JNI)

虚拟机都是运行在目标机器之上的,它需要将自己的指令翻译成为目标机器指令来执行,并且有些功能,需要通过调用目标机器运行的操作系统接口来完成。这就需要一个机制,使得函数调用可以从Java层穿越到Native层,也就是C/C++层。 这种机制就称为Java本地调用,即JNI。  当然,在Native代码中,有时候也需要调用到Java函数,同样也是可以通过JNI机制来实现。     实际上,D

2013-07-22 08:37:33 2765

原创 Dalvik虚拟机的垃圾收集机制

垃圾收集机制是Java虚拟机共有的特性, 这里介绍Dalvik虚拟机的垃圾收集机制特点。           在android2.3之前,有以下几个特点:           1.  垃圾收集线程在执行的时候,其它线程都停止。           2.  一次收集完全部的垃圾           3.  一次垃圾收集通常造成用户程序中断100ms以上          

2013-07-21 23:47:49 2800

原创 Dalvik虚拟机的内存管理

Dalvik虚拟机的内存分为三种类型: Java Object Heap,    Bitmap Memory,   Native Heap.    下面,就这三种类型进行详细讲解:          一.    Java Object Heap:     Java Object Heap是用来分配Java对象的,代码中new出来的Java对象都在Java Object Heap中。 J

2013-07-21 15:39:10 5179

原创 Dalvik虚拟机的优化机制

Dalvik虚拟机设计作为Android系统定制虚拟机, 在移动设备上运行,必须要比普通的Java虚拟机有更多的优化手段和机制, 以下就列举出其中主要的一些优化机制:         1. 使用dex格式的类文件,可以讲多个类存储在一个dex文件中,多个类中的重复字符串和常数等只保留一次,节约了空间。           2. 基于寄存器的指令集, 提前优化后,执行速度更快。

2013-07-20 15:31:43 3479

原创 《Head First 设计模式》读书笔记之1:设计模式入门(策略模式)

用一个鸭子模拟游戏为例子,开始我们的设计模式学习之旅。 首先,我们需要设计各种鸭子的父类,包含有鸭子的共同特征和行为:Duckquack()swim()display()....    //鸭子的其他行为特征 后来,PM(产品经理)需要鸭子具有飞行的行为,于是我们觉得很自然得让父类Duck加入了fly()方法, 子类通过继承父类,就都具有了飞行的行为。

2013-05-15 08:15:28 2350

原创 获取Android各类系统相关信息的接口实现代码

/** * 获取系统中所有安装包信息 */ public String getAllPackages(Context context) { String appList = ""; List packages = context.getPackageManager().getInstalledPackages(0); for (PackageInfo packageI

2013-04-25 23:58:40 5150

转载 Java内存泄露的理解与解决

Java内存管理机制在C++语言中,如果需要动态分配一块内存,程序员需要负责这块内存的整个生命周期。从申请分配、到使用、再到最后的释放。这样的过程非常灵活,但是却十分繁琐,程序员很容易由于疏忽而忘记释放内存,从而导致内存的泄露。Java语言对内存管理做了自己的优化,这就是垃圾回收机制。Java的几乎所有内存对象都是在堆内存上分配(基本数据类型除外),然后由GC(garbage co

2013-04-24 14:00:27 2569

原创 Android入门开发之SD卡读写操作

SD卡的读写是我们在开发android 应用程序过程中最常见的操作。下面介绍SD卡的读写操作方式:      1. 获取SD卡的根目录 String sdCardRoot = Environment.getExternalStorageDirectory().getAbsolutePath();    2. 在SD卡上创建文件夹目录 /** * 在

2013-04-21 12:16:21 17460 1

原创 Android入门开发之SAX

一. SAX简介   SAX,  Simple API for XML, 是一个解析速度快并且占用内存少的XML解析器,适合于移动平台。 它同时既是一种接口,也是指一个软件包。 作为接口,SAX是事件驱动型XML解析的一个标准接口, 也就是说它不需要解析完整个文档,采用相应的事件触发来进行回调处理。 二 . SAX的原理  SAX的工作原理,简单说就是对文档进行顺序扫描,当

2013-04-18 08:57:31 2209

原创 Android入门开发之 Handler使用

Android提供了一个异步的消息回调机制Handler,  它负责发送消息和处理线程消息队列中的消息及runnable对象    Handler实例都是与一个线程和该线程的消息队列一起使用,一旦创建了一个新的handler实例,系统就把该实例与一个线程和该线程的消息队列捆绑起来,这将可以发送消息和runnable对象给该消息队列,并在消息队列出口处处理它们。     Handler默认使

2013-04-16 00:31:30 11050

原创 解决ios6系统输入法bug的一种方法

可能大家经常遇到在ios6上,在app中切换到系统中文输入法,锁屏,再解锁,造成app  crash ,  如下图crash log:     这是属于ios6系统级别的bug.    一种有效的解决办法:在AppDelegate 的WillEnterBackGround中,先隐藏键盘       [[[UIApplication sharedApplication

2013-04-12 10:39:00 3122

转载 Android的permission大全

感谢原作者, 原文地址:http://blog.csdn.net/DAGiGi/article/details/6157361android.permission.ACCESS_CHECKIN_PROPERTIES允许读写访问”properties”表在checkin数据库中,改值可以修改上传( Allows read/write access to the “properti

2013-04-03 09:03:25 1940

原创 Eclipse代码自动辅助提示功能的设置

默认情况下,Eclipse的代码自动提示功能比较弱, 只是在.和Alt+/才会出现。 可以通过如下设置,增加其提示功能的方便性   Eclipse->Window->Preferences 在上图中设置Auto activation triggers  forJava的字母, 可以设置.abcdef.......ABCDEF.....(哈哈,26个字母的大小写)

2013-03-18 14:42:04 6036

原创 Eclipse 编辑代码字体的设置

安装Eclipse后,编辑代码,默认的字体都比较偏小,而且汉字格外的小。  通过以下方法,设置Eclipse字体。      1.  Eclipse->window->General->Appearance->Colors and Fonts-> Text Font,   如下图             2.   双击TextColor进入编辑,选择自己喜欢的字体即可, 我个人

2013-03-18 01:23:03 5854

原创 Android定制JVM—Dalvik虚拟机简介

Dalvik虚拟机是Google等厂商合作开发的Android系统专一的虚拟机,它是Android系统的核心组成部分之一。 Dalvik虚拟机支持已转换为.dex格式的java应用程序的运行。 .dex格式是专为Dalvik设计的一种压缩格式,适合内存和处理器速度有限的系统。   Dalvik 经过优化,允许在有限的内存中同时运行多个虚拟机的实例,并且每一个Dalvik 应用作为一个独立的

2013-03-16 17:17:42 6208

原创 ios工程中使用sqlite3方法

1. 头文件添加 sqlite3.h2. 库文件添加 libsqlite3.dylib添加方法:点击工程名->targets->Build Phases->Link Binary With Libraries->'+'号->输入文件名libsqlite3.dylib->选中,点击add。3. 使用代码示例 NSFileManager* fi

2013-03-15 19:01:26 3457

原创 xcode模拟器调试无法显示调用栈的解决办法

使用xcode进行模拟器调试时,出现crash后,很多时候往往无法显示出正确的调用栈信息, 往往只能显示最初始的main函数调用,类似下图1      图 1    有个简单的解决办法如下:       xcode->view->Navigators->Show Breakpoint Navigator,  在右下角的添加 Add Exception Breakpoin

2013-03-14 19:32:18 10512

原创 在非ARC工程中加入ARC代码文件的方法

在非ARC工程里面必须配置编译选项  Target->Build Phases->Compile Sources  对应的ARC代码文件添加 -fobjc-arc 编译选项

2013-03-12 15:23:52 3117

转载 一些有用的device信息,可能有些是私有API

原文地址:http://hi.baidu.com/marktian/item/e0f555ee0e08b2225a2d64e01. 手机号码:这个也是undocument apiNSString* phoneNumber = CTSettingCopyMyPhoneNumber();2. 总磁盘大小:NSDictionary *fattrib

2013-03-08 15:18:41 2823

转载 java中static{}语句块详解

原文地址:http://blog.csdn.net/lubiaopan/article/details/4802430     感谢原作者!static{}(即static块),会在类被加载的时候执行且仅会被执行一次,一般用来初始化静态变量和调用静态方法,下面我们详细的讨论一下该语句块的特性及应用。 一、在程序的一次执行过程中,static{}语句块中的内容只被

2013-03-08 13:15:05 70392 15

原创 Java虚拟机深入学习之四: Java虚拟机的性能监控和故障处理工具

常用的几款JDK监控和故障处理工具1. jps:   JVM Process Status Tool, 显示指定系统内所有的HotSpot虚拟机进程。 使用方法: http://blog.csdn.net/newjerryj/article/details/86062712. jstat:  JVM Statics Monitoring Tool, 由于收集HotSpot虚拟机各方

2013-03-08 08:13:14 1582

原创 打开xcode中product安装包目录文件夹方法

1. 打开终端2. cd /Users/XXXX/Library/Developer/Xcode/DerivedData     进入到DerivedData目录3. 命令:  open .      打开DerivedData文件夹

2013-03-06 20:17:52 6739

原创 JDK和adb的环境变量配置

JDK在windows系统下的环境变量配置方法如下(Win7):      计算机-> 属性->高级->环境变量,   在系统变量中      1. 新建 变量名:JAVA_HOME    变量值 C:\Program Files\Java\jdk1.7.0_11(以本机的jdk安装路径为准)      2. 新建 变量名:classpath    变量值  .;%JAVA_H

2013-03-06 09:39:23 4921

转载 Java Class类文件结构

感谢原作者:  http://blog.csdn.net/zhy05/article/details/1800309Class文件格式Class文件格式ClassFile结构体的C语言描述如下:struct ClassFile{              u4 magic;                                 //识别Class文件格式,具体

2013-03-04 18:51:47 1008

转载 JDK工具之 jps命令

感谢原作者:http://blog.csdn.net/gtuu0123/article/details/6025520jps -- Java Virtual Machine Process Status Tool 可以列出本机所有java进程的pid jps [ options ] [ hostid ] 选项 -q 仅输出VM标识符,不包括class n

2013-02-24 00:20:45 4673 1

原创 Java虚拟机深入学习之三: Java虚拟机的垃圾收集算法

一   标记-清除算法(Mark-Sweep)       首先标记出所有需要回收的对象,标记完成后统一回收。        主要缺点: 1. 标记和清除效率都很低    2. 产生大量不连续的内存碎片,导致后面分配大内存空间失败二   复制算法       将可用内存划分为大小相等的两块, 每次只使用其中一块。 当这块用完后,就将还存活对象复制到另外一块上面,再把

2013-02-21 13:03:23 934

原创 Java虚拟机深入学习之二: Java虚拟机的垃圾收集器

程序语言发展的历史上,Lisp是第一门使用内存动态分配和垃圾收集技术的语言。       Java虚拟机的垃圾收集器(GC)需要完成的三件事:  1. 哪些内存需要回收     2. 什么时候回收    3. 如何回收             判断对象生命周期的两种算法:               1. 引用计数算法:  实现简单,使用案例有:COM, Python, Objec

2013-02-20 09:27:35 911 2

原创 Java虚拟机深入学习之一: Java虚拟机的内存区域

java在运行之后,就将内存控制权交给了java虚拟机。 java虚拟机在执行java程序的过程中会把它所管理的内存划分为若干不同的数据区域。 运行时的内存区分为以下几部分:    1.  程序计数器区域              程序计数器是一块较小的内存空间,是为当前线程所执行的字节码的行号指示器。  由于多线程的存在,所以每个线程都需要有一个独立的程序计数器。 各个线程之间的程序计数

2013-02-04 09:37:26 1244 2

转载 object c中 new和alloc区别

在object-c基础教程这本书里老是可以看见类似下面这种代码,我这小菜鸟就纳闷了,啥区别啊,看上去都一样么。网上找了找,找到一些说法,这里先摘出来。    className* object = [className new];or    className* object = [[className alloc] init];背景说明,new是较为老式的写法,后来发现只有一个n

2013-02-01 09:07:19 14384 4

原创 OC的KVO模式漫谈

Key-Value Observing (简写为KVO):当指定的对象的属性被修改了,允许对象接受到通知的机制。每次指定的被观察对象的属性被修改的时候,KVO都会自动的去通知相应的观察者。     因为KVO模式本身获得了框架级别的支持,所以开发人员不需要自己设计观察者模式,不用添加额外的代码,使用方便。KVO模式的工作原理:     如果A对象希望在B对象的一个特定属性改变时

2013-01-25 09:03:56 2330

转载 Mac OS X的内核

首先,Mac OS X的内核叫 XNU ,它有许多组件构成,如: Mach 、 BSD 、 I/O Kit 、 Platform Expert 、 libkern 、 libsa 。 XNU 的Mach部分来自 Mach 3.0 (但是 XNU 不是微内核),它负责 XNU 比较底层的任务,譬如: 抢占式多任务,包括内核线程(Mac OS X用内核线程实现POSIX线程)

2013-01-24 09:02:46 4193

原创 一种高效压缩PNG图片的工具

平时在开发app的过程中,肯定会用到大量的png图片资源,  如何减小包大小?            推荐使用一款PNG的压缩工具:  PNGGauntlet          能较大限度的降低图片大小,但是不太影响图片质量和图片尺寸。压缩比例最大可以达到65%左右。     软件地址址:http://down.tech.sina.com.cn/content/55125.html

2013-01-07 17:04:35 2540

原创 非开发人员获取ios crashlog方法

方法1:用工具直接获取 iPhone 设备上 var/mobile/Library/Logs/CrashReporter  中的 Crash 报告文件。(Mac 下用 PhoneView/iTools/iExplorer,Windows下用、iFunBox、iTools、91助手等)。方法2:如果 iTunes 同步,则同步后Crash日志会同步到电脑上,把以下目录中的Crash提取打

2012-12-29 17:37:20 3858

转载 Mac OS 内存管理知识

原文链接:http://elf8848.iteye.com/blog/1373854先请看下面三张图片,是MAC OS系统的“活动监视器”的截图,分别是8G,4G,2G内存。      使用Mac OS系统时,关注内存的使用情况有时是必要的。常常使用Windows系统的朋友,可能

2012-12-29 15:22:33 2836

原创 Unix常见的信号以及信号定义

SignalDescriptionSIGABRT由调用abort函数产生,进程非正常退出SIGALRM用alarm函数设置的timer超时或setitimer函数设置的interval timer超时SIGBUS某种特定的硬件异常,通常由内存访问引起SIGCANCEL

2012-12-29 12:12:38 1282

原创 ios常见的crash信号类型

SIGSEGV (Segmentation fault)访问了没有权限的内存地址(系统内存地址等)Access to an invalid memory address. The address exist, but your program does not have access to it.SIGBUS (Bus error)访问了无效的内存地址Access to

2012-12-28 17:04:40 2516

原创 解决iPhone模拟器无法启动的方法

有时候由于工程的原因,造成app无法和之前的版本兼容,iPhone模拟器无法启动应用。昨天摸索发现一个解决办法:  模拟器——>还原内容和设置,  等待还原完成之后,再次编译运行,即可启动app了。

2012-12-14 08:57:39 2509 1

约瑟夫环(链表实现)

用单循环链表实现的约瑟夫环C++源代码,有详细注释。

2009-08-12

俄罗斯方块VC++源码

只是实现了基本功能,可以参考一下。

2008-04-18

俄罗斯方块VC++源码

闲暇时做的,只实现了基本功能,可以参考一下。

2008-04-18

UC/OS-II内核源代码

一款著名的嵌入式实时操作系统内核,广泛应用于各种嵌入式产品。

2007-12-05

空空如也

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

TA关注的人

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