摘要: Java的堆是一个运行时数据区,类的对象从中分配空间。这些对象通过new、newarray、anewarray和multianewarray等 指令建立,它们不需要程序代码来显式的释放。堆是由垃圾回收来负责的,堆的优势是可以动态地分配内存大小,生存期也不必事先告诉编译器,因为它是在运行时 动态分配内存的,Java的垃圾收集器会自动收走这些不再使用的数据。但缺点是,由于要在运行时动态分配内存,存取速度较慢。 栈的优势是,存取速度比堆要快,仅次于寄存器,栈数据可以共享。但缺点是,存在栈中的数据大小与生存期必须是确定的,缺乏灵活性。栈中主要存放一些基本类 型的变量(,int, short, lo.. 阅读全文
posted @ 2013-12-19 16:59 Andy Zhai 阅读(783) 评论(2) 推荐(0) 编辑
摘要: 概述:由于排序非常重要而且可能非常耗时,所以它已经成为一个计算机科学中广泛研究的课题,而且人们的确已经研究出一些非常成熟的方法。在这篇博文中将看到三个简单排序的算法:冒泡,选择,插入排序,还有另外两种高级排序算法,希尔和快速排序。插入排序比较重要,它比冒泡和选择排序有时更有效率,而且对于小规模和基本有序的文件,插入排序算法能比快速排序算法更为有效。这边博文中阐述三种简单排序算法,下一篇博文中阐述高级排序算法。从三个角度来阐述算法:代码,执行效率(大O表示法)以及不变性。不变性:在许多算法中,有些条件在算法执行时是不变的,这些条件被称为不变性。认识不变性对理解算法是有用的。在一定的情况下它们对调 阅读全文
posted @ 2013-12-15 13:00 Andy Zhai 阅读(2517) 评论(0) 推荐(0) 编辑
摘要: 在学习二叉树时看到关于哈夫曼编码的一些描述,兴趣来潮,自己写一个算法。哈夫曼算法使用二叉树以令人惊讶的方式来压缩数据,以提高数据传输的效率和时间。只有知道哈夫曼编码而不会写代码的童鞋们才会在网上搜代码,故在这里对哈夫曼编码不做过多介绍。 实现哈弗曼(Huffman)算法的编码(Encode)与解码(Encode). 分为以下四步来完成这项编码 1.Create a Huffman tree for this message. 2.Create a code table. 3.Encode the message into binary. 4.Decode the message fr... 阅读全文
posted @ 2013-10-17 14:39 Andy Zhai 阅读(2057) 评论(0) 推荐(0) 编辑
摘要: 1、adb(Android Debug Bridge) 意为android调试桥。 是android系统中的一种命令行工具,通过它可以和android设备或模拟器通信。 ADB是一个C/S架构的应用程序,由三部分组成: 1)adb client, 运行在PC上(为DDMS,即IDE工作) 2)adb daemon(守护进程), 运行于Emulator(为与Emulator中的VM交互工作); 3)adb server(服务进程), 运行在PC(任务管理器上有),管理着adb client和adb daemon的通信。server与client通信的端口是是5037,adb serve... 阅读全文
posted @ 2013-04-16 00:43 Andy Zhai 阅读(5253) 评论(2) 推荐(2) 编辑
摘要: DisplayMetrics类——结构化的描述显示器的一般信息,包括它的大小、密度以及字符缩放比例。public float density;//屏幕像素密度值,density值表示每英寸有多少个显示点,与分辨率是两个不同的概念。Android主要有以下几种屏:QVGA和WQVGA屏density=120;HVGA屏density=160;WVGA屏density=240;下面以480dip*800dip的WVGA(density=240)为例,详细列出不同density下屏幕分辨率信息:当density=120时 屏幕实际分辨率为240px*400px (两个点对应一个分辨率)状态栏和标题栏 阅读全文
posted @ 2012-10-18 18:57 Andy Zhai 阅读(1779) 评论(3) 推荐(0) 编辑
摘要: AppWidget 窗口小部件的开发思想和Demo 这篇文章讲一下android系统“窗口小部件”(也叫做,主屏幕部件)的开发过程。什么叫窗口小部件呢?是指在主屏幕上显示的独立视图(不过填充了数据)。这些视图的数据内容由后台进程顶起更新。要用到RemoteViews来显示部件,还要指派广播接收器更新这些RemoteViews. 既可以单独做个窗口小部件,也可在App中嵌入多个窗口小部件。如<图一>就是人人网客户端带个一个小部件和Google play的小部件。<图一> 接下来就以"生日提醒"的例子简述下小部件的开发思想。 一:首先需要声明一个appw 阅读全文
posted @ 2012-09-06 15:34 Andy Zhai 阅读(4719) 评论(9) 推荐(1) 编辑
摘要: android同时弹出顶部和底部菜单 在android开发中会碰到这样的需求,要同时弹出顶部和底部的菜单。目前已经上市的APP中有91熊猫读书和QQ阅读器带这样的功能。点击Menu和点击屏幕都会弹出菜单。有很多方法可以实现。我的方法是在RelativaLayout中设置好菜单布局,然后在监听事件中使其显示/隐藏。具体做法如下: 一:布局。可根据需求做一些复杂的设计。在这儿用两个按钮btn_top和btn_bottom。<Button android:id="@+id/btn_top" android:layout_width="fill_parent&quo 阅读全文
posted @ 2012-08-13 15:33 Andy Zhai 阅读(3845) 评论(2) 推荐(0) 编辑
摘要: android中ImageView的ScaleType属性 ScaleType的值分别代表的意义:ImageView是Android中的基础图片显示控件,该控件有个重要的属性是ScaleType,该属性用以表示显示图片的方式,共有8种取值 ScaleType.CENTER::图片大小为原始大小,如果图片大小大于ImageView控件,则截取图片中间部分,若小于,则直接将图片居中显示。 ScaleType.CENTER_CROP:将图片等比例缩放,让图像的短边与ImageView的边长度相同,即不能留有空白,缩放后截取中间部分进行显示。 ScaleType.CENTER_INSIDE:将... 阅读全文
posted @ 2012-08-06 17:21 Andy Zhai 阅读(22254) 评论(0) 推荐(0) 编辑
摘要: android的Notifications通知的原理和Demo 在APP中经常会用到通知。这是个比较普遍的功能。比如网易新闻客户端,有什么重大新闻的话会在通知栏弹出一条通知。 在做程序过程中我也遇到这个需求。每隔7天就自动弹出通知,提醒用户。在网上搜了搜,用了2天时间实现了。实现过程如下: 一:通知要调用闹钟功能来实现,第一步设置闹钟 /*参数1:context 参数2:唤醒的时间(毫秒格式) *功能:发出闹钟广播 public static void setAlarmTime(Context context, long timeInMillis) { AlarmMan... 阅读全文
posted @ 2012-08-01 20:13 Andy Zhai 阅读(3764) 评论(16) 推荐(4) 编辑
摘要: 今天编程碰到了一个问题:有一款平板,打开一个有EditText的Activity会默认弹出输入法。为了解决这个问题就深入研究了下android中焦点Focus和弹出输入法的问题。在网上看了些例子都不够全面,在这里全面总结下。 一:EditText为什么会默认弹出输入法? 同样的代码,碰到有EditText控件的界面时有的机子会弹出输入法,有的机子不会弹出。不好意思,这问题我也一头雾水,谁知道可以告诉我,否则我就把这个问题留下来,以后研究android源码时再搞个清楚。但是...我有解决方案。 二:默认弹出和默认关闭输入法的解决方案。 1.默认关闭,不至于进入Activity就打... 阅读全文
posted @ 2012-07-30 20:10 Andy Zhai 阅读(16628) 评论(3) 推荐(2) 编辑