01 2012 档案

摘要:HTTP 请求报文l HTTP Command: //方法字段,说明其使用的是GET 方法l URI: / //URL 字段,发送请求至保存该网站的服务器。l HTTP Version: //http 协议版本字段,用是的http/1.1 版本l Accept: //指示可被接受的请求回应的介质类型范围列表。l Accept-Language: //限制了请求回应中首选的语言为简体中文,否则使用默认值。l Accept-Encoding: //限制了回应中可接受的内容编码值,指示附加内容解码方式为gzip,deflate.l User-Agent: //定义用户代理,即发送请求的浏览器类型为M 阅读全文
posted @ 2012-01-31 17:47 hnrainll 阅读(1049) 评论(0) 推荐(0)
摘要:名词解释:HTTP无状态:无状态是指协议对于事务处理没有记忆能力,服务器不知道客户端是什么状态。从另一方面讲,打开一个服务器上的网页和你之前打开这个服务器上的网页之间没有任何联系如果你要实现一个购物车,需要借助于Cookie或Session或服务器端API(如NSAPIandISAPI)记录这些信息,请求服务器结算页面时同时将这些信息提交到服务器当你登录到一个网站时,你的登录状态也是由Cookie或Session来“记忆”的,因为服务器并不知道你是否登录优点:服务器不用为每个客户端连接分配内存来记忆大量状态,也不用在客户端失去连接时去清理内存,以更高效地去处理WEB业务缺点:客户端的每次请求都 阅读全文
posted @ 2012-01-31 17:44 hnrainll 阅读(8516) 评论(0) 推荐(0)
摘要:创业,对于刚工作的人,会比较兴奋,因为创业充满想象力;对于工作几年的人,会比较向往,因为压抑得太久。其实,创业和就业一样,只是实现自己人生价值的两种方式,关键是心态问题。大多数就业的人,一般都把工作叫打工,这是一种对自己不太负责人的态度,其深层次的原因,是因为个人还没有完全独立:对自己的选择负起责任。因为没有谁要求你必须很乏味地工作,没有人要求你必须朝九晚五,你完全可以选择自己的生活,甚至住在山林里。虽然我们可以找出很多被迫的理由,但归根结底,还是自己不能放弃,比如诱人的薪水、优越的身份。谈到创业,就会谈到失败。但如何来定义呢?也许人生本来就没有成败,生命本身就是一种过程。我对成功的唯一定义, 阅读全文
posted @ 2012-01-31 09:44 hnrainll 阅读(727) 评论(2) 推荐(0)
摘要:今天,Venkat Subramaniam 就关于清除代码异味的话题给我们做了一个非常有趣的演讲。下面就是我记录的一些他的话。 为什么我们需要有质量的代码?敏捷开发方法是用来应付那些要求代码做大量改动的反馈信息的方法。如果程序没有用一种好的表达方式来表现,那程序会很难读,难维护,难修改。 什么是代码异味?代码异味是一种由写的很差的代码引起的一种有臭味的感觉,一种程序什么地方会有问题的感觉异味更多的是来自一种直觉,而不是一种有据可查的标准,当你看到有味的代码时你就“感觉”到了如果你不把异味清除,不久之后你就会习惯这种气味,不再对它有察觉用任何语言都能写出有异味的代码:即使最简单安全的语言,你.. 阅读全文
posted @ 2012-01-31 09:39 hnrainll 阅读(293) 评论(0) 推荐(0)
摘要:注:本文转载自酷壳,文中作者根据自己十多年的软件开发经历,总结出软件开发的三个阶段——功能、性能和智能(作者称之为软件开发“三重门”)。以下为原文:这篇文章必然是通过我的个人经历来写的。所以,我先说说个人经历吧。我的经历基本分成三个阶段。第一阶段:我刚毕业时在家乡的某银行工作,做些银行的业务系统,还搞些网络、电子邮件系统、OA什么的,因为大四的时候在老师的公司里实习,银行里的人际关系太复杂,而且技术都包给了产商,所以在银行的每一天都觉得不能适应里面的工作环境。两年后离职,单位分的房也不要了,直接去了上海,在上海呆了两年,本来想做互联网的,但是泡沫来了,最终去了一家做系统集成的国企公司还是继续做 阅读全文
posted @ 2012-01-31 09:35 hnrainll 阅读(314) 评论(0) 推荐(1)
摘要:人跟人的能力千差万别,所以写出来的代码质量,肯定是不同的。有的人,写一个小逻辑,可能需要100行,而有的人,可能仅仅需要10行。代码永远会有Bug,在这方面没有最好只有更好。高效是程序员必须作到的事情,无错是程序员一生的追求。复用、分而治之、折衷是代码哲学的基本思想。模块化与面向对象是实现高效无错代码的方法。高效无错代码需要思想与实践的不断反复。如何做到代码高效无错,提高代码质量的方法有哪些?又有哪些经验和技巧呢?本文整理自知乎网,与开发者们一起探讨该话题。如果您有好的想法,欢迎在评论中列出。一起来看下编程界各位大牛如何为您支招:互联网评论员孙立伟:1. 代码风格和规范多看看网上的一些代码规范 阅读全文
posted @ 2012-01-31 09:26 hnrainll 阅读(811) 评论(0) 推荐(0)
摘要:目前主要的端口扫描技术有以下几种:1.TCP connect Scan(TCP连接扫描)这种方法也称之为“TCP全连接扫描”。它是最简单的一种扫描技术,所利用的是TCP协议的3次握手过程。它直接连到目标端口并完成一个完整的3次握手过 程(SYN、SYN/ACK和ACK)。操作系统提供的“connect()”函数完成系统调用,用来与目标计算机的端口进行连接。如果端口处于侦听状 态,那么“connect()”函数就能成功。否则,这个端口是不能用的,即没有提供服务。TCP连接扫描技术的一个最大的优点是不需要任何权限,系统中的任何用户都有权利使用这个调用。另一个好处是速度快。如果对每个目标端口以线性的 阅读全文
posted @ 2012-01-30 20:12 hnrainll 阅读(2195) 评论(0) 推荐(0)
摘要:相关读书笔记、心得文章列表 Java 流在处理上分为字符流和字节流。字符流处理的单元为 2 个字节的 Unicode 字符,分别操作字符、字符数组或字符串,而字节流处理单元为 1 个字节,操作字节和字节数组。Java 内用 Unicode 编码存储字符,字符流处理类负责将外部的其他编码的字符流和 java 内 Unicode 字符流之间的转换。而类 InputStreamReader 和 OutputStreamWriter 处理字符流和字节流的转换。字符流(一次可以处理一个缓冲区)一次操作比字节流(一次一个字节)效率高。( 一 )以字节为导向的 stream------InputStream 阅读全文
posted @ 2012-01-18 17:57 hnrainll 阅读(457) 评论(0) 推荐(0)
摘要:【案例1】创建一个新文件importjava.io.*; classhello{ publicstaticvoidmain(String[]args){ Filef=newFile("D:\\hello.txt"); try{ f.createNewFile(); }catch(Exceptione){ e.printStackTrace(); } } }【运行结果】:程序运行之后,在d盘下会有一个名字为hello.txt的文件。【案例2】File类的两个常量importjava.io.*; classhello{ publicstaticvoidmain(String[] 阅读全文
posted @ 2012-01-18 17:50 hnrainll 阅读(388) 评论(0) 推荐(0)
摘要:import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;public class Test{ public static void main(String args[]){ System.out.print("请输入内容:"); /* * 获取键盘输入方法一 Scanner input = new Scanner(System.in); String s = input.nextLin... 阅读全文
posted @ 2012-01-18 17:02 hnrainll 阅读(5512) 评论(0) 推荐(0)
摘要:Android 贪吃蛇、俄罗斯方块、中国象棋、阅读器等应用功能150多个实例源码15本超级经典Android教程,都是pdf完整版的海量源码 不断更新中。。。Android 贪吃蛇 程序代码源码点击下载7个经典Android应用程序实例源代码点击下载安卓Android俄罗斯方块游戏--完整游戏项目源码点击下载安卓Android中国象棋Chess程序项目源码源代码点击下载Android应用开发详解教材源码(上册)--10个单元40多个实例源码点击下载Android应用开发详解教材源码(下册)--8个单元30多个实例源码点击下载Mp3播放器源码Android实战项目源码点击下载Android 培训 阅读全文
posted @ 2012-01-17 22:23 hnrainll 阅读(9508) 评论(2) 推荐(2)
摘要:(一)成为Android高手必须掌握的8项基本要求【1】Android操作系统概述1. Android系统架构。 2. Android利用设计理念。 3. Android 开源知识。 4. Android 参考网站与权威信息。【2】 Android SDK及其开发环境搭建 1. Android SDK的版本发布。 2. ADT插件的安装和更新。 3. Android利用程序架构。 4. 建立第一个Android项目(HelloAndroid!)。 5. 通过Eclipse导入一个开源项目 6. 可视化的界面开发工具 7. 布置利用程序到Android模仿... 阅读全文
posted @ 2012-01-17 22:21 hnrainll 阅读(3036) 评论(0) 推荐(0)
摘要:本文将告诉你学习Java需要达到的25个目标,希望能够对你的学习及找工作有所帮助。对比一下自己,你已经掌握了这25条中的多少 条了呢? 1.你需要精通面向对象分析与设计(OOA/OOD)、涉及模式(GOF,J2EEDP)以及综合模式。你应该了解UML,尤其是 class,object,interaction以及statediagrams。 2.你需要学习Java语言的基础知识以及它的核心类库 (collections,serialization,streams,networking,?multithreading,reflection,event,handling,NIO,localizati 阅读全文
posted @ 2012-01-17 22:20 hnrainll 阅读(739) 评论(0) 推荐(0)
摘要:#include <stdio.h>#include <stdlib.h>#include <string.h>#include <unistd.h>#include <sys/ioctl.h>#include <sys/socket.h>#include <netinet/in.h>#include <net/if.h>int main(int argc, char *argv[]){ struct ifreq ifreq; int sock = 0; char mac[32] = "& 阅读全文
posted @ 2012-01-17 19:11 hnrainll 阅读(9218) 评论(2) 推荐(2)
摘要:最普通的用法,例如: float f; QString str = QString("float is %1").arg(f);则可将f转化为QString类型的名为str的变量另外,还可以按照下文方式使用,相对进阶一些:根据fmt指定的格式,参数a被格式化,g为默认情况并且可以为下列之一: e- 格式化为[-]9.9e[+|-]999 E- 格式化为[-]9.9E[+|-]999 f- 格式化为[-]9.9 g- 使用e或f格式,看哪一个更简练 G- 使用E或f格式,看哪一个更简练在所有的情况下,小数点之后数字的个数等于prec指定的精度。double d = 12.34 阅读全文
posted @ 2012-01-17 10:10 hnrainll 阅读(10678) 评论(0) 推荐(0)
摘要:对程序员们来说挑战自我非常重要,要么不断创新,要么技术停滞不前。新年伊始,我整理了12个月的目标,每个目标都是对技术或个人能力的挑战,而且可以年复一年循环使用。01. 变得有耐心 02. 保持健康 03. 拥抱变化带来的不适应 04. 学习一门新的编程语言 05. 自动化 06. 学习更多数学知识 07. 关注安全 08. 备份你的数据 09. 学习更多理论知识 10. 接触艺术和人文 11. 向新的软件学习 12. 完成一个自己的项目 接下来我会对这些建议逐个介绍。 变得有耐心 程序员们会担心锻炼耐心付出的努力得不到应有的回报。其实,培养耐心只要付出很小的投入就能... 阅读全文
posted @ 2012-01-16 09:01 hnrainll 阅读(451) 评论(0) 推荐(0)
摘要:this指的是当前正在访问这段代码的对象,当在内部类中使用this指的就是内部类的对象, 为了访问外层类对象,就可以使用外层类名.this来访问,一般也只在这种情况下使用这种示例代码,请注意第17行!代码来自《Android应用开发揭秘》public class Activity01 extends Activity{ public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); /* 设置显示main.xml布局 */ setCo... 阅读全文
posted @ 2012-01-13 07:13 hnrainll 阅读(17352) 评论(0) 推荐(2)
摘要:简单工厂模式1. 目的 工厂模式就是专门负责将大量有共同接口的类实例化,而且不必事先知道每次是要实例化哪一个类的模式。它定义一个用于创建对象的接口,由子类决定实例化哪一个类。 2 . 简单工厂模式的结构 3. 一个简单例子java 代码//产品接口 publicinterfaceProduct{ publicvoidgetName(); } //具体产品A publicclassProductAimplementsProduct{ publicvoidgetName(){ System.out.println("IamProductA"); } } //具体产品B publ 阅读全文
posted @ 2012-01-12 10:14 hnrainll 阅读(395) 评论(0) 推荐(0)
摘要:JNI是JAVA标准平台中的一个重要功能,它弥补了JAVA的与平台无关这一重大优点的不足,在JAVA实现跨平台的同时,也能与其它语言(如C、C++)的动态库进行交互,给其它语言发挥优势的机会。有了JAVA标准平台的支持,使JNI模式更加易于实现和使用。在此总结了下面这个知识图:实例:环境说明:ubuntu 10.4.2 LTS系统程序清单1:src/com/magc/jni/HelloWorld.java 1 /** 2 * 3 */ 4 package com.magc.jni; 5 6 /** 7 * @author magc 8 * 9 */10 publicclass Hel... 阅读全文
posted @ 2012-01-12 09:50 hnrainll 阅读(408) 评论(0) 推荐(0)
摘要:导读:原文来自dotmac.rationalmind.net上一篇《Some lesser-known truths about programming》,译文来自外刊IT评论整理编译《关于编程,鲜为人知的真相》而来。我常年程序员的经历让我知道了一些关于软件编程的事情。下面的这些事情可能会让朋友们对软件开发感到惊讶:1.一个程序员用在写程序上的时间大概占他的工作时间的10-20%,大部分的程序员每天大约能写出10-12行的能进入最终的产品的代码——不管他的技术水平有多高。好的程序员花去90%的时间在思考、研究和实验,来找出最优方案。差的程序员花去90%的时间在调试问题程序、盲目的修改程序,期望 阅读全文
posted @ 2012-01-12 09:08 hnrainll 阅读(311) 评论(0) 推荐(0)
摘要:一、 Intent 作用 Intent被译作意图,其实还是很能传神的,Intent期望做到的,就是把实现者和调用者完全解耦,调用者专心将以意图描述清晰,发送出去,就可以梦想成真,达到目的。 Intent 是一个将要执行的动作的抽象描述,一般来说是作为参数来使用,由Intent来协助完成android各个组件之间的通讯。比如说调用 startActivity()来启动一个activity,或者由broadcaseIntent()来传递给所有感兴趣的 BroadcaseReceiver, 再或者由startService()/bindservice()来启动一个后台的service.所以可以看出来 阅读全文
posted @ 2012-01-11 19:11 hnrainll 阅读(2090) 评论(0) 推荐(0)
摘要:List, ListView, ListActivity, Adapter, ListAdapter, ArrayAdapter, SimpleAdapter,SimpleCursorAdapter 的关系一个ListActivity是一个Activity, 它派生于android.app.Activity;一个ListActivity必须包含一个ListView, 可以通过getListView()返回ListView对象;一个ListView是一个View, 是用垂直列表方式来显示数据项的View;它派生于android.widget.AbsListView一个List是一个模板集合, 它 阅读全文
posted @ 2012-01-11 15:17 hnrainll 阅读(792) 评论(0) 推荐(0)
摘要:class Single { private static Single s = new Single(); //单态模式设计,这里的构造函数是私有的,所以不能new private Single(){} //只能通过调用getInstance()得到Single的引用 public static Single getInstance(){ return s; } public void print(){ System.out.println("Hello Java"); }}public class Tes... 阅读全文
posted @ 2012-01-11 14:59 hnrainll 阅读(272) 评论(0) 推荐(0)
摘要:【JAVA EE企业级开发四步走完全攻略】http://redking.blog.51cto.com/27212/110742/ 阅读全文
posted @ 2012-01-10 23:40 hnrainll 阅读(306) 评论(0) 推荐(0)
摘要:java 算法数据http://g.51cto.com/michael/blog-204-1.html 阅读全文
posted @ 2012-01-10 23:38 hnrainll 阅读(313) 评论(0) 推荐(0)
摘要:开发者是否真的还需要一种新的编程语言呢?选择已经有那么多了,现有的语言都让开发者应接不暇,可是各种新的编程语言还是在以惊人的速度产生!答案 就是随着多核CPU、云计算、移动及分布式结构的不断发展,简单的语法已经不能适用,我们需要更加强大的语言!而以下10种编程语言,或正在走向成熟,或 还在开发,可是它们都以全新的视角演绎着软件开发的艺术,每一种语言,都有可能打开编程世界的新大门! No.1:Dart JavaScript在Web的交互性方面运用得很好,但是当Web应用程序的代码行过多时,它的弱点就会显现出来,因此,Google推出了新的结构化Web编程语言Dart用以替代JavaScript。 阅读全文
posted @ 2012-01-10 23:14 hnrainll 阅读(481) 评论(0) 推荐(0)
摘要:在我的代码旅程和编程经历中,已经遭遇很多奇特的对手,还有更为奇特的盟友。我至少发现有5种代码勇士,有些是出色的战友,其他则似乎都在搅黄我的每个计划。不过他们都在软件开发的万神殿上都有一席之地。如果没有不同编程风格的良好组合,你可能会发现你的项目要不就是耗时过长,要不就是太不稳定或太过完美而无人去做。不过他们都在软件开发的万神殿上都有一席之地。如果没有不同编程风格的良好组合,你可能会发现你的项目要不就是耗时过长,要不就是太不稳定或太过完美而无人去做。1. The duct tape programmer 喉咙贴了胶带的程序员The code may not be pretty, but damn 阅读全文
posted @ 2012-01-10 19:28 hnrainll 阅读(378) 评论(0) 推荐(0)
摘要:JAVA平台提供了两个类:String和StringBuffer,它们可以储存和操作字符串,即包含多个字符的字符数据.这个String类提供了数值不可改变的字符串.而这个StringBuffer类提供的字符串进行修改.当你知道字符数据要改变的时候你就可以使用 StringBuffer.典型地,你可以使用 StringBuffers来动态构造字符数据. Java String的使用方法: 1. 首先String不属于8种基本数据类型,String是一个对象. 因为对象的默认值是null,所以String的默认值也是null;但它又是一种特殊的对象,有其它对象没有的一些特性. 2. new Str 阅读全文
posted @ 2012-01-10 09:45 hnrainll 阅读(1898) 评论(0) 推荐(0)
摘要:1. java.net.InetAddress类的使用1.1. 简介IP地址是IP使用的32位(IPv4)或者128位(IPv6)位无符号数字,它是传输层协议TCP,UDP的基础。InetAddress是Java对IP地址的封装,在java.net中有许多类都使用到了InetAddress,包括ServerSocket,Socket,DatagramSocket等等。InetAddress的实例对象包含以数字形式保存的IP地址,同时还可能包含主机名(如果使用主机名来获取InetAddress的实例,或者使用数字来构造,并且启用了反向主机名解析的功能)。InetAddress类提供了将主机名解析 阅读全文
posted @ 2012-01-09 21:07 hnrainll 阅读(57840) 评论(0) 推荐(2)
摘要:偶尔用到 System.getProperty(),找起来也不方便。这里做下记录备忘: 编写的测试类:public class TestSystemproperty{ public static void main(String[] args) { System.out.println("Java运行时环境版本:/n" + System.getProperty("java.version")); System.out.println("Java 运行时环境供应商:/n" + System.getProperty("java. 阅读全文
posted @ 2012-01-09 20:47 hnrainll 阅读(426) 评论(0) 推荐(0)
摘要:在像arm的QT编程当中,一般都是使用触摸来操作,当是我们运行程序的时候会发现总是有个鼠标箭头在那里,下面介绍种方法将其给去掉。这样就漂亮多了。在main()函数加入 #include <QWSServer>,实例化QApplication后,添加QWSServer::setCursorVisible(false); 这样就可以了。 阅读全文
posted @ 2012-01-09 08:52 hnrainll 阅读(1597) 评论(0) 推荐(0)
摘要:理解linuxsed命令(2010-02-2718:21:20)标签:linuxshellsed替换分类:革命本钱1.Sed简介sed是一种在线编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(patternspace),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有改变,除非你使用重定向存储输出。Sed主要用来自动编辑一个或多个文件;简化对文件的反复操作;编写转换程序等。2.定址可以通过定址来定位你所希望编辑的行,该地址用数字构成,用逗号分隔的两个行数表示以这两行为起止的 阅读全文
posted @ 2012-01-08 21:21 hnrainll 阅读(37271) 评论(0) 推荐(1)
摘要:引用来自easyandroid论坛,原文:http://www.easyandroid.com/bbs/viewthread.php?tid=331.活用Android线程间通信的Message机制 1.1.Message 代码在frameworks\base\core\java\android\Os\Message.java中。 Message.obtain函数:有多个obtain函数,主要功能一样,只是参数不一样。作用是从Message Pool中取出一个Message,如果Message Pool中已经没有Message可取则新建一个Message返回,同时用对应的参数给得到的Mes.. 阅读全文
posted @ 2012-01-06 16:41 hnrainll 阅读(5799) 评论(0) 推荐(1)
摘要:很多初入Android或Java开发的新手对Thread、Looper、Handler和Message仍然比较迷惑,衍生的有 HandlerThread、java.util.concurrent、Task、AsyncTask由于目前市面上的书籍等资料都没有谈到这些问题, 今天Android123就这一问题做更系统性的总结。 Android开发过程中为什么要线程能? 我们创建的Service、Activity以及Broadcast均是一个主线程处理,这里我们可以理解为UI线程。但是在操作一些耗时操作时,比如 I/O读写的大文件读写,数据库操作以及网络下载需要很长时间,为了不阻塞用户界面,出现AN 阅读全文
posted @ 2012-01-06 16:39 hnrainll 阅读(479) 评论(0) 推荐(1)
摘要:在 android 中,不可以在子线程中更新 UI 的操作,否则会报错或者异常信息。在这种情况下,我们会使用 Handler(在 UI 线程创建该对象) 接收子线程的消息更新 UI.可以看出,这是子线程通知主线程,而主线程没有直接通知子线程,那麽我们如何做到这一点?这样有什么好处?好处,很明显。主线程中如果有些耗时的操作,我们可以让子线程去做,这时,主线程就可以通知子线程了!实现这种操作的方式有很多,今天主要想说说 HandlerThread 与 Handler 的配合使用方法。在主线程中,可以创建 HandlerThread 对象:view plainprint?HandlerThread 阅读全文
posted @ 2012-01-06 16:32 hnrainll 阅读(2467) 评论(0) 推荐(1)
摘要:Android 包括一个应用程序框架、几个应用程序库和一个基于 Dalvik 虚拟机的运行时,所有这些都运行在 Linux 内核之上。通过利用 Linux 内核的优势,Android 得到了大量操作系统服务,包括进程和内存管理、网络堆栈、驱动程序、硬件抽象层、安全性等相关的服务。有关Java虚拟机跟进程,线程的关系请参看下面这篇文章:进程、线程与JVM、CLR http://blog.csdn.net/ghj1976/archive/2010/04/13/5481038.aspx下面这篇文章对Android的进程和线程描述的很好,我在这篇文章基础补充了一些图片和信息。http://blog.c 阅读全文
posted @ 2012-01-06 14:37 hnrainll 阅读(408) 评论(0) 推荐(0)
摘要:1. Looper类用来为一个线程开启一个消息循环。 默认情况下android中新诞生的线程是没有开启消息循环的。(主线程除外,主线程系统会自动为其创建Looper对象,开启消息循环。) Looper对象通过MessageQueue来存放消息和事件。一个线程只能有一个Looper,对应一个MessageQueue。 2. 通常是通过Handler对象来与Looper进行交互的。Handler可看做是Looper的一个接口,用来向指定的Looper发送消息及定义处理方法。 默认情况下Handler会与其被定义时所在线程的Looper绑定,比如,Handler在主线程中定义,那么它是与主线... 阅读全文
posted @ 2012-01-06 14:30 hnrainll 阅读(10094) 评论(0) 推荐(0)
摘要:我最近在自学Android,当遇到问题时也只能看看开发文档,或者上网查资料解决,远有直接看源码来得直接。国内倒是有个Android镜像 网站,但不提供下载源码的链接;苦于没有下源码的地方,一气之下,上网搜索所有关于下载Android源码的方法和资料,看得朦朦胧胧的,不过还是终得正 果。下面总结下载Android源码的整体过程(其实非常Easy!): 一、前期准备 1.下载Msysgit工具 Windows环境下的Git客户端程序,下载地址:http://code.google.com/p/msysgit/ 参见下图: 2.安装Msysgit工具 参见下图: 3.在磁盘上建立一个文... 阅读全文
posted @ 2012-01-06 14:27 hnrainll 阅读(797) 评论(0) 推荐(0)
摘要:CallBack是回调的意思,熟悉Windows编程的人对"回调函数"这四个字一定不会陌生,但是Java程序员对它可能就不太了解了。"回调 函数"或者"回调方法"是软件设计与开发中一个非常重要的概念,掌握"回调函数"的思想对程序员来说(不管用哪种语言)是非常必要的。 那么什么是回调函数呢?我认为,回调函数就是预留给系统调用的函数,而且我们往往知道该函数被调用的时机。这里有两点需要注意:第一点,我们写回调函数不是给自己调用的,而是准备给系统在将来某一时刻调用的;第二点,我们应该知道系统在什么情形下会调用我们写的回调函 阅读全文
posted @ 2012-01-06 14:22 hnrainll 阅读(486) 评论(0) 推荐(0)
摘要:作为一个大三的预备程序员,我学习android的一大乐趣是可以通过源码学习 google大牛们的设计思想。android源码中包含了大量的设计模式,除此以外,android sdk还精心为我们设计了各种helper类,对于和我一样渴望水平得到进阶的人来说,都太值得一读了。这不,前几天为了了解android的消息处理机 制,我看了Looper,Handler,Message这几个类的源码,结果又一次被googler的设计震撼了,特与大家分享。android的消息处理有三个核心类:Looper,Handler和Message。其实还有一个Message Queue(消息队列),但是MQ被封装到Lo 阅读全文
posted @ 2012-01-06 14:13 hnrainll 阅读(779) 评论(0) 推荐(0)
摘要:Platform VersionsThis page provides data about the relative number of active devices running a given version of the Android platform. This can help you understand the landscape of device distribution and decide how to prioritize the development of your application features for the devices currently 阅读全文
posted @ 2012-01-05 08:51 hnrainll 阅读(369) 评论(0) 推荐(0)
摘要:感谢安东尼罗宾全集的投递作者:天问1、让你最不耐烦的客户是你最大的学习来源。2、只是在时间分配方面,宗教并非非常有效,星期天早晨有很多事等着我们去做呢!3、像大多数E-mail用户一样,我每天收到成打的垃圾邮件,大部分邮件都声称可以帮助我远离债务或者快速致富。这很搞笑,如果其实并没有那回事。4、成功是一个差劲的老师,它诱使聪明人认为他们不会输。5、这是进入商界的最佳时机,未来10年将要进行的改变将超过过去50年的总和。6、为成功而庆祝是应该的,但更重要的是吸取失败的教训。7、如果情况已经非常糟糕时你才意识到麻烦,那已经晚了。要有希望,除非你总是保持危机感。8、我深信任何可以增进人与人之间沟通的 阅读全文
posted @ 2012-01-04 13:22 hnrainll 阅读(253) 评论(0) 推荐(0)
摘要:Adapter在Android中占据一个重要的角色,它是数据和UI(View)之间一个重要的纽带。在常见的View(ListView,GridView)等地方都需要用到Adapter。如图1直观的表达了Data、Adapter、View三者的关系。图1 Adapter、数据、UI三者关系(PS:此图来自Google I/O)一、Android中Adapter图2:Android中Adapter类型层级图由图2我们可以看到在Android中与Adapter有关的所有接口、类的完整层级图。在我们使用过程中可以根据自己的需求实现接口或者继承类进行一定的扩展。比较常用的有 BaseAdapter,Ar 阅读全文
posted @ 2012-01-04 09:57 hnrainll 阅读(324) 评论(0) 推荐(0)
摘要:前言 本章内容是android.widget.SimpleCursorAdapter,版本为Android 3.0 r1,附带示例源码,翻译来自"深夜未眠",欢迎访问它的博客:"http://chirs1012f.javaeye.com/",再次感谢"深夜未眠" !期待你一起参与Android API的翻译,联系我over140@gmail.com。声明 欢迎转载,但请保留文章原始出处:) 博客园:http://www.cnblogs.com/ Android中文翻译组:http://goo.gl/6vJQl正文 一、结构public 阅读全文
posted @ 2012-01-04 09:45 hnrainll 阅读(785) 评论(0) 推荐(0)
摘要:04年时维护的第一个商业服务就用了两次fork产生守护进程的做法,前两天在网上看到许多帖子以及一些unix书籍,认为一次fork后产生守护进程足够了,各有道理吧,不过多了一次fork到底是出于什么目的呢?进程也就是task,看看内核里维护进程的数据结构task_struct,这里有两个成员:view plainstructtask_struct{volatilelongstate;intexit_state;...}看看include/linux/sched.h里的value取值:view plain#defineTASK_RUNNING0#defineTASK_INTERRUPTIBLE1# 阅读全文
posted @ 2012-01-04 09:38 hnrainll 阅读(636) 评论(0) 推荐(0)
摘要:ListView是一种列表视图,其将ListAdapter所提供的各个控件显示在一个垂直且可滚动的列表中。需要注意的为创建适配器并将其设置给ListView。1.ArrayAdapterArrayAdapter由3个参数进行构造,第一个为Context,第二个为在R文件中定义的Layout,也可用系统的R文件,第三个参数是一个数组,数组中每一项的类型没有限制。系统默认的布局方式可通过android.R.layout.XX定义。private static String[] data={"a","b","c","d" 阅读全文
posted @ 2012-01-04 09:06 hnrainll 阅读(545) 评论(0) 推荐(0)
摘要:Android中的列表,当然也可以用ListView来完成所需要的功能,用法是一样的。废话不说,来关键的。LiveActivity本身继承了关于List操作的众多接口,我们可以方便的重写这些操作中需要的方法来实现自己需要的功能。如果要用ListActivity,则Activity的Layout文件中必须包括一个(只能一个)ListView,且ListView的id="@id/android:list"。如下代码,一个标准的ListActivity Layout文件:<?xml version="1.0"encoding="utf-8&qu 阅读全文
posted @ 2012-01-03 20:49 hnrainll 阅读(5611) 评论(0) 推荐(0)
摘要:第一种用法是类继承ListActivity第二种用法是类继承Activity.这两种不同的用法在main.xml中对ListView的ID有不同的要求.http://files.cnblogs.com/hnrainll/SimpleAdapter01.ziphttp://files.cnblogs.com/hnrainll/SimpleAdapter02.zip 阅读全文
posted @ 2012-01-03 20:44 hnrainll 阅读(284) 评论(0) 推荐(0)
摘要:SimpleAdapter的构造函数是:public SimpleAdapter (Context context, List<? extends Map<String, ?>> data, int resource, String[] from, int[] to)官方说明了其各个参数含义,我这里根据自己的理解解释下:第一个context,很明显大家根据英文可以知道是上下文的意思,它官方的意思是:SimpleAdapter所要运行关联到的视图,这个是什么呢?就是你这个SimpleAdapter所在的Activity(一般而言),所以这个参数一般是“前Activity的 阅读全文
posted @ 2012-01-03 20:09 hnrainll 阅读(2111) 评论(0) 推荐(0)
摘要:本文重点介绍HashMap。首先介绍一下什么是Map。在数组中我们是通过数组下标来对其内容索引的,而在Map中我们通过对象来对对象进行索引,用来索引的对象叫做key,其对应的对象叫做value。在下文中会有例子具体说明。再来看看HashMap和TreeMap有什么区别。HashMap通过hashcode对其内容进行快速查找,而TreeMap中所有的元素都保持着某种固定的顺序,如果你需要得到一个有序的结果你就应该使用TreeMap(HashMap中元素的排列顺序是不固定的)。import java.util.Map;import java.util.HashMap;import java.uti 阅读全文
posted @ 2012-01-03 17:00 hnrainll 阅读(570) 评论(0) 推荐(1)