自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(37)
  • 收藏
  • 关注

原创 编译ios版本的librtmp+openssl

转自:http://blog.csdn.net/cjj198561/article/details/28955461   编译librtmp需要先编译openssl,因为librtmp依赖openssl 首先编译openssl: 把以下内容保存为shell脚本: #!/bin/sh VERSION="1.0.1h" #指明openssl的版本信息,比如下载的是openssl-1.0....

2014-08-28 15:10:13 84

原创 130+ 条 Vim 常用命令

转自伯乐在线:http://top.jobbole.com/6065/ Vim 是从 vi 发展出来的一个文本编辑器。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。和 Emacs 并列成为类 Unix 系统用户最喜欢的编辑器。这里收录了130+程序员必备的 vim 命令,帮助你提高开发效率。 Basics :e filename Open filename ...

2014-08-27 19:33:10 75

原创 iOS的主要框架介绍

  转自:http://blog.csdn.net/yuhuangc/article/details/7575519            框架是一个目录,这个目录包含了共享库,访问共享库里代码的头文件,和其它的图片和声音的资源文件。一个共享库定义的方法或函数可以被应用程序调用。        IOS提供了很多你可以在应用程序里调用的框架。要使用一个框架,需要将它添加到你的项目中,你的项目才...

2014-08-27 15:29:57 80

原创 TCP keepAlive 详解

在一个正常的TCP连接上,当我们用无限等待的方式调用下面的Recv或Send的时候:    ret=recv(s,&buf[idx],nLeft,flags);    或    ret=send(s,&buf[idx],nLeft,flags);    如果TCP连接被对方正常关闭,也就是说,对方是正确地调用了closesocket(s)或者shutdown(s)的话,那...

2014-08-26 21:04:37 104

[leetcode] A Distance Maximizing Problem的疑问

http://leetcode.com/2011/05/a-distance-maximizing-problem.html   问题: Given an array A of integers, find the maximum of j-i subjected to the constraint of A[i] < A[j].   解法二:排序后的lookup table是用来...

2014-08-25 22:38:14 75

原创 转载的WebRTC学习笔记

http://blog.csdn.net/fanshengchong/article/details/11012691

2014-08-25 18:12:04 69

原创 java 双重加锁及单例模式

单例创建模式是一个通用的编程习语。和多线程一起使用时,必需使用某种类型的同步。在努力创建更有效的代码时,Java 程序员们创建了双重检查锁定习语,将其和单例创建模式一起使用,从而限制同步代码量。然而,由于一些不太常见的 Java 内存模型细节的原因,并不能保证这个双重检查锁定习语有效。它偶尔会失败,而不是总失败。此外,它失败的原因并不明显,还包含 Java 内存模型的一些隐秘细节。这些事实将导致...

2014-08-25 18:02:59 358

原创 NAT and Traversal NAT(TURN/STUN/ICE)

NAT NAT有4种不同的类型 1) Full Cone 这种NAT内部的机器A连接过外网机器C后,NAT会打开一个端口.然后外网的任何发到这个打开的端口的UDP数据报都可以到达A.不管是不是C发过来的.例如 A:192.168.8.100 NAT:202.100.100.100 C:292.88.88.88A(192.168.8.100:5000) -> NAT(202.100...

2014-08-24 23:09:43 65

原创 内存不足时Android 系统如何Kill进程

大家其实都或多或少知道,Android系统有自已的任务管理器,当系统内存不足时,系统需要KILL一些进程(应用),以回收一部分资源,来保证系统仍可以正常的运行,而不会崩溃,今天,就具体讲讲这个原理。 进程优先级(importance hierarchy) Android系统尽量保持进程运行的更久,但是仍有时候,需要结束掉老的进程,回收内存来保证新的,或更重要的进程运行。要决定哪些进程运行,哪...

2014-08-24 22:38:41 111

原创 iOS的websocket开源库

由Square开发   https://github.com/square/SocketRocket

2014-08-22 18:31:33 225

原创 xcodebuild和xcrun实现自动打包iOS应用程序

随着苹果手持设备用户的不断增加,ios应用也增长迅速,同时随着iphone被越狱越来越多的app 的渠道也不断增多,为各个渠道打包成了一件费时费力的工作,本文提供一种比较智能的打包方式来减少其带来的各种不便。 自动化打包背景介绍 1、背景 随着ios程序发布的渠道逐渐的增多,为每个渠道打包也成为特别耗费时间和体力的一项技术活了,而这一般大多数都是由rd来完成的。这样就占用了 rd很多的开发时间,...

2014-08-18 22:33:38 93

原创 在非UI线程中使用Handler实现请求队列

Handler是Android中非常重要的类之一,通过Handler可以实现主线程的延时操作和线程之间的通信,通过在子类中的Handle、和Looper可以很轻松的实现一个请求队列。 在写代码之前首先简要的说一下 Handler、Looper、MessageQuene之间的关系。 每一个线程最多有一个Looper、一个Looper里边含有一个MessageQuene。 Handler每次将...

2014-08-14 17:41:54 116

原创 JNI中的内存管理

JNI 编程简介 JNI,Java Native Interface,是 native code 的编程接口。JNI 使 Java 代码程序可以与 native code 交互——在 Java 程序中调用 native code;在 native code 中嵌入 Java 虚拟机调用 Java 的代码。 JNI 编程在软件开发中运用广泛,其优势可以归结为以下几点: 利用 native...

2014-08-14 15:20:17 61

原创 Android中父View和子view的点击事件的执行过程

Android中的事件类型分为按键事件和屏幕触摸事件,Touch事件是屏幕触摸事件的基础事件,有必要对它进行深入的了解。 一个最简单的屏幕触摸动作触发了一系列Touch事件:ACTION_DOWN->ACTION_MOVE->ACTION_MOVE->ACTION_MOVE...->ACTION_MOVE->ACTION_UP当屏幕中包含一个ViewGroup,而...

2014-08-14 11:16:01 281

原创 Java内部类的使用小结

内部类是指在一个外部类的内部再定义一个类。类名不需要和文件夹相同。 *内部类可以是静态static的,也可用public,default,protected和private修饰。(而外部顶级类即类名和文件名相同的只能使用public和default)。   注意:内部类是一个编译时的概念,一旦编译成功,就会成为完全不同的两类。对于一个名为outer的外部类和其内部定义的名为inner的内...

2014-08-13 21:45:38 53

原创 activity生命周期 A启动B,B返回A, A,B的全生命周期

A启动B  A生命周期全过程1.启动A      Activity的初始化了,A第一步创建onCreate(20569): -------->成功!     Activity被激活A,onStart   Activity显示在屏幕上(20569): -------->成功!     Activity被恢复A,onResume(20569): -------->成功!2.在A中启...

2014-08-13 21:42:36 69

原创 Android开源项目分类汇总

Android开源项目分类汇总  转自:http://hunankeda110.iteye.com/blog/2103569 第一部分 个性化控件(View) 主要介绍那些不错个性化的View,包括ListView、ActionBar、Menu、ViewPager、Gallery、 GridView、ImageView、ProgressBar、TextView、ScrollV...

2014-08-13 17:15:39 189

原创 码流 / 码率 / 比特率 / 帧速率 / 分辨率 / 高清

1, 码流 /码率 / 比特率 / 帧速率 / 分辨率   码流 / 码率   码流(Data Rate)是指视频文件在单位时间内使用的数据流量,也叫码率或码流率,通俗一点的理解就是取样率,是视频编码中画面质量控制中最重要的部分,一般我们用的单位是kb/s或者Mb/s。一般来说同样分辨率下,视频文件的码流越大,压缩比就越小,画面质量就越高。码流越大,说明单位时间内取样率越大,数据流,精度就...

2014-08-12 19:43:48 468

进程和线程的联系区别

        进程是程序的一次执行过程。每一个进程都是一个独立的实体,系统会单独为它分配内存,它会在单独的地址空间中被执行。一个进程不能访问其他进程中的变量和数据结构。如果你想访问其他进程的资源,必须使用管道、文件、socket等进程间通信机制。       线程使用其所在进程的栈空间。一个进程可以有很多个线程。进程和线程最大的区别在于多个线程会共享 他们的状态。一般来说,多个线程可以读写...

2014-08-11 21:58:31 104

原创 死锁产生的原因及四个必要条件

产生死锁的主要原因是: 1) 系统资源不足; 2) 进程运行推进的次序不合适; 3) 资源分配不当。   如果系统资源充足,进程的资源请求都能够得到满足,死锁出现的可能性就很低,否则就会因争夺有限的资源而陷入死锁。其次,进程运行推进顺序与速度不同,也可能产生死锁。产生死锁的四个必要条件: 1) 互斥条件:一个资源一次只能被一个进程访问。 2) 请求与保持: 一个进程因请求资源而阻塞...

2014-08-11 21:41:23 197

原创 android 内存溢出问题分析

转自:http://blog.csdn.net/com360/article/details/6682409   一、概述 1二、Android(Java)中常见的容易引起内存泄漏的不良代码 1(一) 查询数据库没有关闭游标 2(二) 构造Adapter时,没有使用缓存的 convertView 3(三) Bitmap对象不再使用时调用recycle()释放内存 4(四) 释放对象的引用 ...

2014-08-11 10:11:00 40

原创 [android] Serializable 和 Parcelable 区别

android 中自定义的对象序列化的问题有两个选择一个是Parcelable,另外一个是Serializable。 一 序列化原因: 1.永久性保存对象,保存对象的字节序列到本地文件中;2.通过序列化对象在网络中传递对象;3.通过序列化在进程间传递对象。  二 至于选取哪种可参考下面的原则: 1.在使用内存的时候,Parcelable 类比Serializable性能高,所以推荐使用P...

2014-08-10 20:52:02 41

原创 java sleep和wait的区别和联系

第一种解释: 功能差不多,都用来进行线程控制,他们最大本质的区别是:sleep()不释放同步锁,wait()释放同步锁. 还有用法的上的不同是:sleep(milliseconds)可以用时间指定来使他自动醒过来,如果时间不到你只能调用 interreput()来强行打断;wait()可以用notify()直接唤起. 第二种解释: sleep是Thr...

2014-08-10 20:46:07 140

原创 java 字节流与字符流的区别

转自:http://blog.csdn.net/cynhafa/article/details/6882061 字节流与和字符流的使用非常相似,两者除了操作代码上的不同之外,是否还有其他的不同呢?实际上字节流在操作时本身不会用到缓冲区(内存),是文件本身直接操作的,而字符流在操作时使用了缓冲区,通过缓冲区再操作文件,如图12-6所示。下面以两个写文件的操作为主进行比较,但是在操作时字节流和字符...

2014-08-10 16:34:00 59

原创 java 接口和抽象类的区别

  1.abstract class 在 Java 语言中表示的是一种继承关系,一个类只能使用一次继承关系。但是,一个类却可以实现多个interface。  2.在abstract class 中可以有自己的数据成员,也可以有非abstarct的成员方法,而在interface中,只能够有静态的不能被修改的数据成员(也就是必须是static final的,不过在 interface中一般不定义...

2014-08-10 16:15:02 58

原创 java反射机制的作用

JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象, 都能够调用它的任意一个方法;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。 Java反射机制主要提供了以下功能: a)在运行时判断任意一个对象所属的类; b)在运行时构造任意一个类的对象; c)在运行时判断任意一个类所具有的成员变量和方法; ...

2014-08-10 14:29:29 100

原创 Java内存泄露的理解与解决

转自:http://henryyang.iteye.com/blog/1188328   Java内存管理机制 在C++ 语言中,如果需要动态分配一块内存,程序员需要负责这块内存的整个生命周期。从申请分配、到使用、再到最后的释放。这样的过程非常灵活,但是却十分繁琐,程序员很容易由于疏忽而忘记释放内存,从而导致内存的泄露。 Java 语言对内存管理做了自己的优化,这就是垃圾回收机制。 Jav...

2014-08-08 19:58:21 66

原创 Java的内存泄漏

转自: http://www.ibm.com/developerworks/cn/java/l-JavaMemoryLeak/   问题的提出 Java的一个重要优点就是通过垃圾收集器(Garbage Collection,GC)自动管理内存的回收,程序员不需要通过调用函数来释放内存。因此,很多程序员认为Java不存在内存泄漏问题,或者认为即使有内存泄漏也不是程序的责任,而是GC或JVM的...

2014-08-08 19:36:18 65

原创 FFMPEG-数据结构解释(AVCodecContext,AVStream,AVFormatContext)

AVCodecContext 这是一个描述编解码器上下文的数据结构,包含了众多编解码器需要的参数信息 如 果是单纯使用libavcodec,这部分信息需要调用者进行初始化;如果是使用整个FFMPEG库,这部分信息在调用 av_open_input_file和av_find_stream_info的过程中根据文件的头信息及媒体流内的头部信息完成初始化。其中几个主要 域的释义如下: extr...

2014-08-07 10:52:46 80

原创 mac中的快捷键

7 组导航快捷键 使用下列快捷键方便在文字中快速定位:   跳至行首 – Control+A 跳至行尾 – Control+E 跳至下一行 – Control+N 跳至上一行 – Control+P 删除上一个单词 – Control+W 删除当前光标位置到行首的文字 – Control+U 删除当前光标位置到行尾的文字 – Control+K   当然,使用最基本的方向...

2014-08-05 19:48:50 158

原创 Activity的task相关

转自: http://blog.csdn.net/liuhe688/article/details/6761337 上次我们讲到Activity的四种启动模式的时候,已经了解到一些关于task的技术,今天我再向大家介绍一下。task是一个具有栈结构的容器,可以放置多个Activity实例。启动一个应用,系统就会为之创建一个task,来放置根Activity;默认情况下,一个Activity启...

2014-08-04 09:43:32 49

原创 浅析Android中的消息机制

转自:http://blog.csdn.net/liuhe688/article/details/6407225   在分析Android消息机制之前,我们先来看一段代码:   [java] view plaincopy   public class MainActivity extends Activity implements View.OnClickLis...

2014-08-04 09:42:53 53

原创 activity中的onPause()和onSaveInstanceState()解析

转自: http://blog.csdn.net/dashuxiaoai/article/details/8592330   当用户在开启一个新activity时,当前的activity可能在内存中处于停止状态也可能由于新activity需要更多内存而被系统杀掉了,但不论怎样,当用户在新activity上按返回键时,他希望看到的是原先的activity的界面。原先的activity如果是被重...

2014-08-03 17:00:38 72

原创 onNewIntent与singleTask

转自:http://blog.csdn.net/dashuxiaoai/article/details/8597316   onNewIntent调用时机 在IntentActivity中重写下列方法:onCreate onStart onRestart  onResume  onPause onStop onDestroy  onNewIntent 一、其他应用发In...

2014-08-03 16:51:19 84

原创 Activity的四种launchMode

转自:http://blog.csdn.net/liuhe688/article/details/6754323   launchMode在多个Activity跳转的过程中扮演着重要的角色,它可以决定是否生成新的Activity实例,是否重用已存在的Activity实例,是否和其他Activity实例公用一个task里。这里简单介绍一下task的概念,task是一个具有栈结构的对象,一个ta...

2014-08-03 16:43:29 63

原创 Activity生命周期

转自: http://blog.csdn.net/liuhe688/article/details/6733407         熟悉javaEE的朋友们都了解servlet技术,我们想要实现一个自己的servlet,需要继承相应的基类,重写它的方法,这些方法会在合适的时间被servlet容器调用。其实android中的Activity运行机制跟servlet有些相似之处,Android系...

2014-08-03 16:41:58 41

原创 二叉树中两个结点的最近公共祖先

    Node* findComAncestor(Node* root, Node* m, Node* n) { if (root == m || root == n || root == NULL) { return root; } Node* left = findComAnces...

2014-08-03 11:30:33 97

空空如也

空空如也

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

TA关注的人

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