- 博客(19)
- 资源 (61)
- 收藏
- 关注
原创 Android AsyncTask理解
AsyncTask的特点是任务在主线程之外运行,而回调方法是在主线程中执行,这就有效地避免了使用Handler带来的麻烦。阅读AsyncTask的源码可知,AsyncTask是使用java.util.concurrent 框架来管理线程以及任务的执行的,concurrent框架是一个非常成熟,高效的框架,经过了严格的测试。这说明AsyncTask的设计很好的解决了匿名线程存在的问题。 AsyncTask是抽象类,其结构图如下图所示: AsyncTask定义了三种泛型类型 Params,Pr
2010-08-30 17:52:00 25010 10
原创 Android Handler理解
Handler的定义: 主要接受子线程发送的数据, 并用此数据配合主线程更新UI. 解释: 当应用程序启动时,Android首先会开启一个主线程 (也就是UI线程) , 主线程为管理界面中的UI控件,进行事件分发, 比如说, 你要是点击一个 Button ,Android会分发事件到Button上,来响应你的操作。 如果此时需要一个耗时的操作,例如: 联网读取数据, 或者读取本地较大的一个文件的时候,你不能把这
2010-08-30 17:51:00 2106
原创 理解Android中的Handler/Message
1.活用Android线程间通信的Message机制 1.1.Message 代码在frameworks/base/core/java/android/Os/Message.java中。 Message.obtain函数:有多个obtain函数,主要功能一样,只是参数不一样。作用是从Message Pool中取出一个Message,如果Message Pool中已经没有Message可取则新建一个Message返回,同时用对应的参数给得到的Message对象赋值。 Message Pool:大小
2010-08-30 17:45:00 2520 2
原创 螺旋队列
21 22 23 24 ... 20 7 8 9 10 19 6 1 2 11 18 5 4 3 12 17 16 15 14 13 看清以上数字的排列规律,设1点的坐标是(0,0),x方向向右为正,y方向向下为正。例如,7的坐标为(-1,-1),2的坐标为(1,0),3的坐标为(
2010-08-29 23:06:00 834 1
转载 C语言数据类型转换详解
3. 类型转换 <br />如果有人问C语法规则中最复杂的是哪一部分,我一定会说是类型转换。从上面两节可以看出,有符号、无符号整数和浮点数加起来有那么多种类型,每两种类型之间都要定义一个转换规则,转换规则的数量自然很庞大,更何况由于各种体系结构对于整数和浮点数的实现很不相同,很多类型转换的情况都是C标准未做明确规定的阴暗角落。虽然我们写代码时不会故意去触碰这些阴暗角落,但有时候会不小心犯错,所以了解一些未明确规定的情况还是有必要的,可以在出错时更容易分析错误原因。本节分成几小节,首先介绍哪些情况下会发生类型
2010-08-28 22:44:00 10306
原创 一种线程交互模型的实现
本文介绍一种采用线程交互模型,即主线程执行队列的Task,其他线程投递Task进入主线程的任务队列,投递方式类似于Win32 SDK的PostMessage和SendMessage方法,提供异步投递和同步投递。 <br />首先我们需要一个BlockAndAwaitableQueue类,该类的功能是提供除执行Task线程外的其他线程的任务投递功能,该类包含一个任务列表,即存放待执行的Task。同时要考虑到多线程的同步问题,需要采用同步锁进行同步。同时要保证BlockAndAwaitableQueue的主执行
2010-08-28 17:55:00 795
转载 多线程断点续传实例
annegu做了一个简单的Http多线程的下载程序,来讨论一下多线程并发下载以及断点续传的问题。 这个程序的功能,就是可以分多个线程从目标地址上下载数据,每个线程负责下载一部分,并可以支持断点续传和超时重连。 下载的方法是download(),它接收两个参数,分别是要下载的页面的url和编码方式。在这个负责下载的方法中,主要分了三个步骤。第一步是用来设置断点续传时候的一些信息的,第二步就是主要的分多线程来下载了,最后是数据的合并。 1、多线程下载: public String download(String
2010-08-27 13:00:00 784
原创 JNI(实现自己的JNI_OnLoad函数)
实现JNI中本地函数注册可以两种方式: (1)采用默认的本地函数注册流程。 (2)自己重写JNI_OnLoad()函数。(本文介绍)(Android中采用这种) Java端代码: package com.jni;public class JavaHello { public static native String hello(); static { // load library: libtest.so try { System.loadLibra
2010-08-26 16:50:00 977
转载 java WeakReference SoftReference and PhatomReference 介绍
<br /> Java 2 平台引入了 java.lang.ref 包,其中包括的类可以让您引用对象,而不将它们留在内存中。这些类还提供了与垃圾收集器(garbage collector)之间有限的交互。 1.先“由强到弱”(只的是和垃圾回收器的关系)明确几个基本概念:<br /> strong references是那种你通常建立的reference,这个reference就是强可及的。这个不会被垃圾回收器自动回收。例如:<br /> StringBuffer bu
2010-08-24 18:18:00 1343
转载 Java引用对象SoftReference WeakReference PhantomReference
<br />要理解弱引用(Weak Reference),首先要先了解一下强引用(Strong Reference), 其实我之前也并不了解强引用,虽然天天都在用。举例来说:<br /> String abc = new String ("abcdf");<br /> 这就是创建了一个String的实例然后在变量abc中保存一个强引用,为什么说它强(Strong)呢?这是跟垃圾回收器相关的,如果一个对象是通过强引用链(Chain of Strong Reference) 访问到的,
2010-08-24 16:54:00 1449
原创 Java中的SoftReference 和 WeakReference
如果你想写一个 Java 程序,观察某对象什么时候会被垃圾收集的执行绪清除,你必须要用一个 reference 记住此对象,以便随时观察,但是却因此造成此对象的 reference 数目一直无法为零, 使得对象无法被清除。 java.lang.ref.WeakReference 不过,现在有了 Weak Reference 之后,这就可以迎刃而解了。如果你希望能随时取得某对象的信息,但又不想影响此对象的垃圾收集,那么你应该用 Weak Reference 来记住此对象,而不是用一般的 refer
2010-08-24 16:35:00 879
原创 Android中Handler的使用方法——在子线程中更新界面
<br />本文主要介绍Android的Handler的使用方法。Handler可以发送Messsage和Runnable对象到与其相关联的线程的消息队列。每个Handler对象与创建它的线程相关联,并且每个Handler对象只能与一个线程相关联。<br /> Handler一般有两种用途:1)执行计划任务,你可以再预定的实现执行某些任务,可以模拟定时器。2)线程间通信。在Android的应用启动时,会创建一个主线程,主线程会创建一个消息队列来处理各种消息。当你创建子线程时,你可以再你的子线程中拿到父
2010-08-23 18:33:00 2938 2
转载 Android笔记--handler机制
<br />Android笔记--handler机制一、重要参考资料【参考资料】 目前来看,下面的几个网址中的内容质量比较不错,基本不需要再读别的网址了。1、android消息机制一 http://xtfncel.javaeye.com/blog/6635172、Android消息机制二 http://xtfncel.javaeye.com/blog/6635183、Android线程间通信的message机制 http://www.javafun.cn/viewthread.php?tid
2010-08-23 18:29:00 11286 1
原创 宋劲彬《从C到C++》视频
从C到C++(第一节) 全屏观看 从C到C++(第二节) 全屏观看 从C到C++(第三节) 全屏观看 从C到C++(第四节) 全屏观看 从C到C++(第五节) 全屏观看 从C到C++(第六节) 全屏观看 从C到C++(第七节) 全屏观看
2010-08-21 01:58:00 3741 2
原创 二叉树先序、中序、后序、层序遍历(递归、非递归)
1、先、中、后递归遍历 其中(1)(2)(3)位置上分别表示先、中、后。 2、先、中、后非递归遍历 其中,(1)(2)(3)位置上分别表示先、中、后序遍历。 3、层序遍历
2010-08-16 12:50:00 930
原创 C99标准库函数
详细解释请看C99标准: http://www.open-std.org/ http://download.csdn.net/source/2512562 1. Diagnostics NDEBUG void assert(scalar expression); 2. Complex complex imaginary
2010-08-13 08:54:00 7916
Programming the Microsoft Windows Driver Mode
2011-10-24
深入解析Windows操作系统(第5版)(英文版) - 高清
2010-12-26
Android ADT-8.0.0.zip
2010-12-07
《嵌入式实时操作系统uC/OS-II》及源码地址
2010-11-25
操作系统设计与实现(第三版)英文版+全部源码
2010-11-21
《Show Stopper!: The Breakneck Race to Create Windows NT and the Next Generation at Microsoft by G. Pascal Zachary》
2010-11-21
Software Testing Interview Questions
2010-11-14
HTTP/1.1协议标准
2010-11-11
How.to.Ace.the.Brainteaser.Interview
2010-10-28
具体数学(Concrete Mathmatics 2nd Edition)英文原版
2010-10-27
Technical Aptitude Questions
2010-10-24
面向对象编程C++和Java比较教程 英文版
2010-09-07
C++程序设计语言(特别版)(英文原版)(高清)
2010-08-27
《编译原理(原书第2版)》(样章)(word版)
2010-08-22
Compilers.Principles.Techniques.And.Tools(Second Edition)(英文版)(pdf格式)
2010-08-22
Compilers Principles, Techniques, and Tools(Second Edition)(英文第2版)(djvu格式)
2010-08-22
C语言标准(ANSI C/C89/C99)
2010-08-18
Android ADT-0.9.7.zip
2010-08-15
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人