自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 经济学十大原理

经济学研究社会如何管理自己的稀缺(scarcity)资源 原理一:人们面临权衡取舍效率与平等,当政府想要把经济蛋糕切为更均等的小块时,这块蛋糕本身也就变小了。 原理二:某种东西的成本是为了得到它所放弃的东西一种东西的机会成本(opportunity cost)是为了得到这种东西所放弃的东西。 原理三:理性人考虑边际量边际变动(marginal change):对...

2012-05-22 09:41:49 207

原创 Attacking memory problems on Android

Attacking memory problems on AndroidYay, my first post on Android :) Immediately attacking a difficult one: memory problems.You might not run into them that quickly, but when you do, with a bit...

2012-04-23 22:38:09 439

原创 ViewPager and Fragments

Android: ViewPager and Fragments Part IIWhat are the different ways to get a reference to the currently visible fragment page in a ViewPager?First SolutionYou can set a unique tag on e...

2012-03-25 20:11:18 177

原创 Genie Effect AS

package{ import flash.display.Bitmap; import flash.display.BitmapData; import flash.display.Sprite; import flash.display.StageAlign; import flash.display.StageScaleMode; import flash....

2012-03-21 23:13:11 178

原创 How to avoid OutOfMemory Error / OOM (The Ugly Truth Revealed)

ERROR/dalvikvm-heap(4204): 691456-byte external allocation too large for this process.01-25 22:13:18.694: ERROR/(4204): VM won't let us allocate 691456 bytes 01-25 22:13:18.694If you have ever go...

2012-03-13 23:38:38 138

原创 Reduce Bitmap size using BitmapFactory.Options.inSampleSize

In the post "Load ImageView with JPG file in SD Card", the ImageView is loaded with bitmap in full-size. It cost too much resources for a mobile device, and easy to make the app closed unexpectly.We c...

2012-03-13 23:32:23 119

原创 解決在 Android 中使用 Bitmap 造成 Out of memory 的方法~

因為Android本身的限制,在2.x版中使用 Bitmap 只要遇到稍大一點的圖,很容易就會遇到 out of memory 的狀況,在經過一陣搜尋之後,一直沒有很好的方法,有很多網站介紹的方法是把原圖 subsample,但對於圖片quality有要求的程式來說,這可是不被接受的解法,搞了半天,最後只好直接把 Android 的 source code 拿出來瞧瞧看看是否有什麼機會解決這...

2012-03-13 23:30:38 87

原创 android BitmapFactory的OutOfMemoryError: bitmap size exceeds VM budget解决方案

使用android提供的BitmapFactory解码一张图片时,有时会遇到该错误,即:java.lang.OutOfMemoryError: bitmap size exceeds VM budget。这往往是由于图片过大造成的。要想正常使用,一种方式是分配更少的内存空间来存储,即在载入图片的时候以牺牲图片质量为代价,将图片进行放缩,这也是不少人现在为避免以上的OOM所采用的解决方法。但是...

2012-03-13 23:28:01 93

原创 About Bitmap allocated

Bitmap data is not allocated in the VM heap. There is a reference to it in the VM heap (which is small), but the actual data is allocated in the Native heap by the underlying Skia graphics library....

2012-03-13 23:08:38 126

原创 The Java Thread Pool

A thread pool helps to constrain the number of threads that may be running in an application at any one time. As threads require system resources, having too many threads executing simultaneously w...

2012-03-03 00:55:50 164

原创 Android Animations 3D flip

 In this post we are going to look at how to create a 3D flip animation, with a FrameLayout. In the first few posts I've written on Android and animations we have only looked at the predefined anima...

2012-03-02 23:24:47 116

原创 Multithreading For Performance

 A good practice in creating responsive applications is to make sure your main UI thread does the minimum amount of work. Any potentially long task that may hang your application should be handled i...

2012-03-02 23:23:54 104

原创 SQLITE Best practice

Recently I’ve been doing quite a bit of work with the Android Sqlite database.  Mostly with the android piece of ormlite.The Android examples cover some basic Sqlite usage, but they really don’t ...

2012-02-15 23:02:45 123

原创 Correct use of ConcurrentHashMap

ConcurrentHashMap has been pitched as a simple alternative for HashMap, eliminating the need for a synchronized blocks. I had some simple event counting code that created count records on the fly. Alt...

2012-02-12 22:13:13 124

原创 NDK Findclass

 I’m a big fan of the new native activity functionality available for Android NDK users.While it does limit your target audience to Android 2.3 and above (currentlycomprising less than 10% of the ...

2012-02-09 23:24:21 364

原创 My first Vimrc file

 set nocompatible         set showmatch   "设置匹配模式set nu       "显示行号set incsearch            "查找时显示高亮关键字set encoding=utf8set autoindent           "开启自动缩进set ruler                "开启...

2012-01-15 21:35:23 93

原创 UPnP中Control Point的基本流程

1.搜索目前网络上的UPnP设备。Control Point生成一个MulticastSocket,绑定多播地址239.255.255.250 1900端口,然后发送一个搜索请求,默认将TimeToLive设为4,该请求在UPnP Device Architecture中是如下定义的:M-SEARCH * HTTP/1.1HOST: 239.255.255.250:1900MAN: ...

2012-01-10 22:43:33 124

原创 浅析UPNP协议

摘要:文章介绍了UPnP结构规范和开发流程,指出:UP nP协议使所有联网的设备实现互联,设备工作不需要传统的驱动程序,便可以实现设备间的 相互控制。关键词:UPnP协议;开发流程;电子技术;工作流程中图分类号:TP393文献标识码:A文章编号:1007—6921(2009)17—0072—02UPnP首先是由微软公司于1999年提出,现今已经是开放的标准,由非盈利的论坛组织UPnP F ...

2012-01-10 22:13:52 184

原创 DLNA OPEN SOURCE

DLNA Open Source ProjectsHere is some random information about DLNA open source projects:Contents [hide]1 UPnP media servers2 UPnP Media Players3 DLNA media servers4 UPnP lib...

2012-01-04 22:55:11 382

原创 Linux DLNA

Linux DLNA2011-08-22 黑日白月 Posted in Featured, Movie Player, Music Player, Network, Reviews, ServerRSSDLNA 是 “Digital Living Network Alliance 数字生活网络联盟”的缩写。随着消费电子产品的发展,有越来越多的 DLNA 兼容设备出现在生活中。...

2012-01-04 22:40:28 456

原创 Prof Android app dev:Creating Applications and Activiies

每个APP都泡在一个单独的DALVIK虚拟机实例上使用一个单独的进程。 安卓应用程序由一系列松散耦合的组件构成,application manifest描述了这些组件之间的关系。app metadata包含了所需的硬件和平台要求。 以下六大组件组成了安卓应用程序: Activities 应用程序的展示层,应用程序的每一屏都是一个Activity类的扩展。Activity使...

2011-12-08 18:35:38 164

原创 Prof Android app dev: Introduction and Get started

对于Android来说,所有的应用程序都是平等的,第三方和原生安卓程序使用相同的API并执行在相同的运行时中,即使是拨号和主界面,用户都可以删除,替代任何原生程序而使用第三方的程序代替, Android Software Stack一个Linux内核和一个C/C++ libraries的集合通过application framework暴露出去 Linux内核:包括硬件驱动,进...

2011-11-28 17:36:53 81

原创 EffectiveJava 读书笔记1 创建和销毁对象

第1条:考虑用静态工厂方法代替构造器 静态工厂方法有名称,可以更好的描述返回的对象特性。比如同一个类的两个构造方法,方法参数类型相同,但顺序不同,用户根本无法从字面上区分两个构造器的区别静态工厂方法可以控制对象的创建(是否单例,是否缓存,是否禁止创建)可以返回原类型的任何子类型对象在面向接口的编程中,因为接口不能有静态方法,按惯例,接口Type的静态工厂方法被放在一个名为Type...

2011-11-20 11:50:36 112

原创 行为型模式

模板方法模式定义一个算法执行的骨架,具体实现延迟到子类实现 包括抽象的骨架类,具体实现类 观察者模式定义对象间一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并自动更新 由抽象目标类,具体目标类,抽象观察者类,具体观察者类组成 对目标类而言,抽象观察者引用代表的具体观察者集合是一组注册好的投递用户,通过调用事先约定的观察者方法,目标...

2011-11-16 18:01:56 87

原创 结构型模式

外观模式为子系统对外提供的一组接口提供一个统一的界面,使得其他系统对该系统的访都通过这个统一的界面完成,可以隐藏底层实现,方便调用和维护。包括一个接口类,用来暴露给外界,和一个具体实现类,用来封装具体实现 适配器模式对于多个系统的对接情况,可能因为历史遗留问题造成双方接口不匹配,这时就可以使用适配器模式进行一个转接 包括三个部分:目标类,源类和适配器类 代理模式...

2011-11-16 12:44:28 64

原创 创建型模式

简单工厂模式又叫静态工厂模式,定义一个具体的工厂类来负责创建类的实例,这些被创建的类应该有一个共同的父类,工厂类有一个静态方法,根据方法输入的参数类型创建相应的类实例。 缺点:静态方法无法被继承随着类种类的增多,静态方法中if-else语句越写越长,不便于维护结论: 适用于类种类比较少的情况工厂方法模式4部分组成:抽象工厂类,实现抽象工厂类的具体工厂...

2011-11-14 15:48:37 78

原创 运行期优化

JAVA最初是通过解释器进行解释执行的,当虚拟机发现某个方法或代码块的运行特别频繁,就会把这些代码认定为“热点代码”而将它们编译成本地机器码 HOTSPOT和J9都是解释器和编译器并存,保留解释器的原因是,加快启动时间,立即执行,当运行环境中内存资源限制较大时,解释器可以节约内存,解释器还可以作为激进优化的编译器的“逃生门”(称为逆优化Deoptimization) HOTSPOT...

2011-11-10 12:12:05 90

原创 编译期优化

三类编译器: 前端编译器,将JAVA编译成CLASS文件,JAVAC,ECJJIT编译器,把字节码转换成机器码的过程,HOTSPOT VM的C1,C2编译器AOT编译器,静态提前编译器,直接将JAVA编译成本地机器码的过程Annotation,可以看作是一组编译器的插件,这些插件可以读取,修改,添加抽象语法树的任意元素,如果这些插件对语法树进行了修改,那么编译器将回到...

2011-11-09 16:16:25 66

原创 虚拟机字节码执行引擎

执行引擎在执行JAVA代码的时候可以选择解释执行(通过解释器执行)和编译执行(通过即使编译器产生本地代码执行)两种选择。 栈帧(Stack Frame)是用于支持虚拟机进行方法调用和方法执行的数据结构,它是虚拟机运行时数据区中的虚拟机栈(Virtual Machine Stack)的栈元素。栈帧存储了方法的局部变量表,操作数栈,动态连接和方法返回地址等信息。每一个方法调用的过程,就对应着一...

2011-11-06 11:23:28 101

原创 虚拟机类加载机制

虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验,转换解析和初始化,最终形成可以被虚拟机直接使用的JAVA类型,这就是虚拟机的类加载机制。 类加载的生命周期包括:加载Loading, 验证Verification, 准备Preparation, 解析Resolution, 初始化Initialization, 使用Using和卸载Unloading. 除解析阶段外,...

2011-10-31 16:46:51 145

原创 类文件结构

Class文件是一组以8位字节为基础单位的二进制流,各数据项严格按顺序排列其中,中间没有添加任何分隔符. 根据JAVA虚拟机规范的规定,CLASS文件格式采用一种类似C语言结构体的伪结构来存储,这种伪结构中只有两种数据类型:无符号数和表。 无符号数属于基本的数据类型,以u1,u2,u4,u8来分别表示一个字节,两个字节,四个字节和8个字节的无符号数,无符号数用来描述数字,索引引用,...

2011-10-10 17:39:48 80

原创 垃圾收集器与内存分配策略

常见垃圾收集算法: 引用计数算法。有一个引用,加1,减少一个引用减1,当计数器为0时标记为可回收。JAVA不使用这种技术,微软的COM,ActionScript3的Flashplayer, python以及游戏脚本领域广泛使用的Squirrel都是用这种方式。无法解决循环引用问题。根搜索算法。JAVA和C#都是用这种算法。基本思路是,通过一系列名为GC Roots的对象作为起始点,从...

2011-09-20 17:33:28 71

原创 Java内存区域与内存溢出异常

运行时数据区域:包括 方法区,虚拟机栈,本地方法栈,堆 和程序计数器。 程序计数器:是一块较小的内存空间,它的作用可以看作是当前线程所执行的字节码的行号指示器。每一个线程都有自己私有的程序计数器。如果线程正在执行的是一个JAVA方法,该计数器记录的是正在执行的虚拟机字节码指令的地址,如果正在执行的是native方法,则计数器值为空(undefined)。此内存区域是唯一一个...

2011-09-08 22:04:14 67

原创 犀牛书笔记:(13)Pattern Matching with Regular Expressions

JS类RegExp用来表示正则表达式 JS中正则表达式是用两个//括起来的,如var pattern = /s$/; 等同于 var pattern = new RegExp("s$");  字母数字         本身\0                  NUL\t                   Tab\n                  新的一...

2011-08-26 15:42:10 134

原创 犀牛书笔记:(12)Modules and Namespaces

随着JS的发展,JS程序越写越长,就带来了命名冲突,因此最重要的convention就是使用命名空间防止两个模块定义了同样名字的全局变量。另一个重要的convention是引入模块初始化代码,这对浏览器中的JS尤其重要,因为在document加载完毕后操作某个指定document对象是很普遍的事情。 创建模块和命名空间创建模块最重要的规则是,尽量避免定义全局变量,任何时候你定义...

2011-08-24 15:47:34 109

原创 犀牛书笔记:(11)Classes, Constructors and Prototypes

在JS中创建对象往往使用new xxx()的方法,其中xxx被称为构造函数,实际过程是由new操作符创建一个空对象,然后由后面的xxx方法对该对象进行初始化。在xxx方法中,可以使用this关键字引用到。通过定义构造方法,就定义了一个类。在这种语境下,构造方法的命名通常不同于一般的方法命名(动宾)而用类命名的方式。构造函数通常没有返回值,如果有返回值,返回值将会代替之前用new生成的对象。 ...

2011-08-22 17:38:15 120

原创 犀牛书笔记:(10)Functions

和对象相关的称为方法,否则称为函数 如果一个函数没有return语句,则返回undefined. 如果传入的参数超过了函数期望的参数个数,后面的参数将被自动忽略。如果传入的参数少于期望的个数,参数将初始化为undefined. function literal, 通过function literal定义一个无名的函数。当然也可以可选的定义一个名字,虽然function li...

2011-08-18 11:14:58 129

原创 犀牛书笔记:(9)Objects and Arrays

object literal用{}包围的一组name/value对。name/value用冒号分隔。每一对之间用逗号分隔。要创建一个新的属性,只需要给要创建的属性赋值。 in操作符可以用来检验某个对象是否含有某个属性in操作符左边是属性名的字符串,右边是对象 if( "x" in obj) obj.x = 3;由于访问不存在的属性将会返回undefined,因此也可...

2011-08-15 16:18:17 105

原创 犀牛书笔记:(8)Statements

Switch先分析跟在switch语句后的表达式,然后解析case后的值,知道找到吻合的配对,匹配的条件用===而不是==。  for( variable in object)访问的顺序不确定,根据JS的实现的不同而有不同。如果在遍历时,删除了一个未遍历的元素,则该元素将不被遍历。如果在遍历时,增加了一个新元素,该元素是否被遍历取决于JS的实现。此语句并不保证遍历对象的...

2011-08-05 12:12:08 123

原创 犀牛书笔记:(7)Expressions and Operators

加号:如果一个操作数是字符串,加号的另一个操作数将被转换成字符串。对于数字或字符串的转换,调用valueOf()/toString()方法 减号如果是非数字操作数,将试图将其转换成数字 乘号如果是非数字操作数,将试图将其转换成数字 除号如果是非数字操作数,将试图将其转换成数字。JS的除法是浮点的,和JAVA不同 取模(%)如果是非数字操作数,将试...

2011-08-04 17:12:49 199

空空如也

空空如也

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

TA关注的人

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