自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(104)
  • 资源 (1)
  • 收藏
  • 关注

原创 Contacts Provider

Contacts Provider 包括三个表:ContactsContract.Contacts tableRows representing different people, based on aggregations of raw contact rows.ContactsContract.RawContacts tableRows containing a s

2013-07-01 19:05:25 916

原创 EditText clearFocus

当editText 调用clearFocus 取消焦点时,framework会把焦点给传给此页面的第一个focusable的控件,如果这个editText是唯一的一个focusable的,那么clearFocus会首先给自己一个hasFocus为True的OnFocusChangeListener,然后在执行clearFocus原本该执行的hasFocus为False的OnFocusChangeL

2013-06-21 15:15:17 7353

转载 Android 4.0 ProGuard 代码混淆

其实Android 4.0要用ProGuard比2.3更简单:在Eclipse中打开工程目录下的project.properties文件,该文件中有以下两行:# To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home):#

2013-01-12 16:40:06 3480

转载 MD5 RSA DES

MD5的全称是Message-Digest Algorithm 5,在90年代初由MIT的计算机科学实验室和RSA Data Security Inc发明,经MD2、MD3和MD4发展而来。    MD5将任意长度的“字节串”变换成一个128bit的大整数,并且它是一个不可逆的字符串变换算法,换句话说就是,即使你看到源程序和算法描述,也无法将一个MD5的值变换回原始的字符串,从数学原理上说,是

2013-01-10 14:52:00 626

转载 Java多线程通信机制

Java提供了3个非常重要的方法来巧妙地解决线程间的通信问题。这3个方法分别是:wait()、notify()和notifyAll()。它们都是Object类的最终方法,因此每一个类都默认拥有它们。    虽然所有的类都默认拥有这3个方法,但是只有在synchronized关键字作用的范围内,并且是同一个同步问题中搭配使用这3个方法时才有实际的意义。这些方法在Object类中声明的语法格式

2012-12-26 16:54:34 2726

转载 单例模式

定义:确保一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。类型:创建类模式类图:类图知识点:1.类图分为三部分,依次是类名、属性、方法2.以>结尾的为注释信息3.修饰符+代表public,-代表private,#代表protected,什么都没有代表包可见。4.带下划线的属性或方法代表是静态的。5.对类图中对象的关

2012-12-26 10:01:30 494

转载 工厂模式

最近这三个模式有点搞混了,而且网上也有类似情况。总结一下。简单工厂:严格说并不是一个设计模式。简单工厂没有抽象类,只有一个具体工厂类如MyFactory,然后MyFactory里面有个工厂方法CreateProduct返回一个基类产品,具体返回什么具体实例通过传入参数然后用case判断。用手机生产做个例子:比如Nokia简单工厂就是只有NokiaFactory工厂类,工厂方法就是Cre

2012-12-25 15:15:26 417

转载 GridLayout

GridLayout可以用来做一个象TableLayout这样的布局样式,但其性能及功能都要比tablelayout要好,比如GridLayout的布局中的单元格可以跨越多行,而tablelayout则不行,此外,其渲染速度也比tablelayout要快。在本文中,将指导读者进一步加深对GridLayout的认识,带大家实做一个简单的数字键盘布局,从中体会GridLayout的用法。  开

2012-12-19 22:05:16 830

转载 字节流与字符流的区别

字节流与和字符流的使用非常相似,两者除了操作代码上的不同之外,是否还有其他的不同呢?实际上字节流在操作时本身不会用到缓冲区(内存),是文件本身直接操作的,而字符流在操作时使用了缓冲区,通过缓冲区再操作文件,如图12-6所示。下面以两个写文件的操作为主进行比较,但是在操作时字节流和字符流的操作完成之后都不关闭输出流。范例:使用字节流不关闭执行Java代码

2012-12-19 15:45:11 472

转载 String ,StringBuffer ,StringBuilder

String 字符串常量StringBuffer 字符串变量(线程安全)StringBuilder 字符串变量(非线程安全)简要的说, String 类型和 StringBuffer 类型的主要性能区别其实在于 String 是不可变的对象, 因此在每次对 String 类型进行改变的时候其实都等同于生成了一个新的 String 对象,然后将指针指向新的 String 对象,所以经常改

2012-12-18 14:06:32 350

转载 String和StringBuffer的区别

String和StringBuffer的区别,网上资料可以说是数不胜数,但是看到这篇文章,感觉里面做的小例子很有代表性,所以转一下,并自己做了一点总结。 在java中有3个类来负责字符的操作。1.Character 是进行单个字符操作的,2.String 对一串字符进行操作。不可变类。3.StringBuffer 也是对一串字符进行操作,但是可变类。String:是对象

2012-12-18 14:01:55 357

转载 abstract class与interface的区别

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

2012-12-18 13:28:23 517

转载 URLConnection的连接、超时、关闭用法总结

URLConnection的连接、超时、关闭用法总结java中可以使用HttpURLConnection来请求WEB资源。1:> URL请求的类别:分为二类,GET与POST请求。二者的区别在于:      a:) get请求可以获取静态页面,也可以把参数放在URL字串后面,传递给servlet,      b:) post与get的不同之处在于post的参数不是放在URL

2012-11-10 00:23:54 27462

原创 Android网络

表单提交中get和 post方式的区别有5点:1.get是从服务器上获取数据,post是向服务器传送数据。2.get是把参数数据队列加到提交表单的 ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到。post是通过HTTPpost机制,将表单内各个字段与其内容放置在HTML HEADER内一起传送到ACTION属性所指的URL地址。用户看不到这个过程。3.对

2012-11-10 00:23:34 1026

原创 android:process的理解

在做AIDL的时候,看到有的人在android:process的地方遇到一个问题,现在简单总结一下。1. 在client和service不在同一项目的情况下不需要设置,因为不同的项目自然不在同一个进程中。2. 在client和service在同一项目的情况下:2.1 如果不设置android:process则client和service属于同一进程。2.2 如果设置andr

2012-11-08 18:49:53 8991 5

转载 android Parcelable

这两个方法是用来序列化数据的,主要是用在不同的Activity之间在通过intent进行通信的时候,数据传输时,Data部分的传输。以前没注意过这个,都是直接用putData的,例如:Intent it=new Intent();Bundle bd=new Bundle();bd.putInt("aa",20);bd.putString("bb",ok);it.setExtras(

2012-11-08 10:51:08 484

原创 startActivityForResult的launchmode

目标SecondActivity的launchmode不可以为singleTask 和 singleInstancestandard和singleTop均可。FirstActivity:class ButtonOnClickListener implements OnClickListener{ @Override public void onClick(View v)

2012-11-04 23:12:28 718

转载 Activity生命周期

1. 一个activity 完整的生命周期 自第一次调用 onCreate(Bundle)开始,直至调用onDestroy()为止。activity在onCreate()中设置所有"全局"状态以完成初始化,而在onDestroy()中释放所有系统资源。比如说,如果activity有一个线程在后台运行以从网络上下载数据,它会以 onCreate()创建那个线程,而以 onDestroy()销毁那

2012-10-24 18:33:50 675

转载 如何保证service不被杀掉

1.在service中重写下面的方法,这个方法有三个返回值, START_STICKY是service被kill掉后自动重写创建@Override    public int onStartCommand(Intent intent, int flags, int startId) {        return START_STICKY;    }在setting里kil

2012-10-24 13:31:28 2927

转载 图片压缩

开发中应用到图片的处理时候,我们通常会怎么缩放操作呢,来看下面的两种做法:  方法1:按固定比例进行缩放  在开发一些软件,如新闻客户端,很多时候要显示图片的缩略图,由于手机屏幕限制,一般情况下,我们取图片的缩略图,取缩略图的方法我们可以使用BitmapFactory的decodeFile方法,然后通过传递进去 BitmapFactory.Option类型的参数进行取缩略图,在Op

2012-10-24 13:06:30 690

转载 BaseAdapter优化

当系统开始绘制ListView的时候,首先调用getCount()方法。得到它的返回值,即ListView的长度。然后系统调用getView()方法,根据这个长度逐一绘制ListView的每一行。也就是说,如果让getCount()返回1,那么只显示一行。而getItem()和getItemId()则在需要处理和取得Adapter中的数据时调用。那么getView如何使用呢?如果有10000行数据

2012-10-23 00:06:01 3675

转载 BaseAdapter介绍

BaseAdapter ListView是Android开发过程中较为常见的组件之一,它将数据以列表的形式展现出来。一般而言,一个ListView由以下三个元素组成:      1.View,用于展示列表,通常是一个xml所指定的。大家都知道Android 的界面基本上是由xml文件负责完成的,所以ListView的界 面也理所应当的使用了xml定义。例如在 ListV

2012-10-22 20:26:15 787

原创 getContentResolver().query 和 managedQuery 的区别

Activity 里面提供了一个 managedQuery() 方法,按照 Android SDK 里面的说明,“the activity will manage its lifecycle for you.” 听起来很好,Activity 可以替你管理 Cursor 的生命周期了,就不用记着去 close() 了,代码可以更简洁。但是 Activity 是怎么去管理 Cursor 的

2012-10-18 21:49:51 2251

原创 pthread_detach,pthread_cleanup_push,pthread_cleanup_pop

pthread_detach:就是当线程正常结束的时候会自动释放资源。一个线程或者是可汇合的(joinable,缺省值),或者是脱离的(detached)。当一个可汇合的线程终止时,它的线程ID和退出状态将留到另一个线程对它调用pthread_join。脱离线程却象守护进程:当它们终止的时,所有相关资源都被释放,我们不能等待它们终止。如果一个线程需要知道另一个线程什么时候终止,

2012-10-17 16:56:10 682

转载 Linux系统调用

目录:1. Linux系统调用原理2. 系统调用的实现3. Linux系统调用分类及列表4.系统调用、用户编程接口(API)、系统命令和内核函数的关系5. Linux系统调用实例6. Linux自定义系统调用1.系统调用原理系统调用,顾名思义,说的是操作系统提供给用户程序调用的一组“特殊”接口。用户程序可以通过这组“特殊”接口来获得操作系统内核提

2012-10-14 23:00:17 955

转载 压缩存储图片

有时会发现由于内存不够而导致错误,大都来源于Image太大造成的。下面给出一个简单有效的方法: BitmapFactory.Options opts = new BitmapFactory.Options(); opts.inSampleSize = 4; //   1/4Bitmap bitmap = BitmapFactory.decodeFile(imageFile, opt

2012-09-27 11:40:08 599

转载 ContentProvider中gettype() 和MIME类型的理解

程序入口点类似于win32程序里的WinMain函数,Android自然也有它的程序入口点。它通过在AndroidManifest.xml文件中配置来指明,可以看到名为NotesList的activity节点下有这样一个intent-filter,其action为android.intent.action.MAIN,Category指定为 android.intent.catego

2012-09-27 00:28:30 5044

原创 Service总结

1. 一个Service基本上有两种形式:被启动(Started)当应用程序组件(如一个Activity)通过调用startService()方法启动的服务是“被启动(started)”的。服务一旦启动,它就能够无限期的在后台运行,即使启动它的组件被销毁。通常,一个被启动的服务之星一个单一操作,并且不给调用者返回结果。例如,这个服务可能在网络上下载或上传文件。当操作完成的时候,服务应该自己

2012-09-26 00:54:04 603

转载 Android之Service与IntentService的比较

不知道大家有没有和我一样,以前做项目或者练习的时候一直都是用Service来处理后台耗时操作,却很少注意到还有个IntentService,前段时间准备面试的时候看到了一篇关于IntentService的解释,发现了它相对于Service来说有很多更加方便之处,今天在这里稍微来总结下我的心得。    首先IntentService是继承自Service的,那我们先看看Service的官方介

2012-09-24 23:05:40 443

转载 Activity的四种加载模式

Activity有四种加载模式:standard(默认), singleTop, singleTask和 singleInstance。以下逐一举例说明他们的区别: standard:Activity的默认加载方法,即使某个Activity在Task栈中已经存在,另一个activity通过Intent跳转到该activity,同样会新创建一个实例压入栈中。例如:现在栈的情况为:A

2012-09-24 01:12:06 385

原创 fragment例子

main.xml:<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:orientation="horizontal" android:layout_width="fill_parent"android:layout_height="fill_parent" android

2012-09-23 14:42:43 536

原创 float数据的内存表示

将-0.15625表示成机器内的32个字节的形式. 第一步:将-0.15625表示成二进制形式: (-0.15625)(十进制数)=(-0.00101)(二进制形式); 第二步:将二进制形式的浮点数转化为规格化的形式:(小数点向右移动3个二进制位可以得到) -0.00101=-1.01*2^(-3) 同样,产生了三项:符号位:该数为负数,故第31位为1,占一个二进制

2012-09-20 22:15:56 557

原创 ubuntu10.04 LAMP

直接一条命令 :apt-get install apache2 mysql-server mysql-client php5 php5-gd php5-mysql设置Ubuntu文件执行读写权限LAMP组建安装好之后,PHP网络服务器根目录默认设置是在:/var/www。由于Linux系统的安全性原则,改 目录下的文件读写权限是只允许root用户操作的,所以我们不能在www文件夹中新建

2012-09-19 11:44:18 393

转载 2.21 只考加法的面试题

[question]我们知道:1+2=3;              4+5=9;              2+3+4=9;等式左边都是两个以上连续的自然数相加,那么是不是所有的整数都可以写成这种形式呢?写一个程序,对于一个32位正整数,输出它所有的连续自然数之和的算式。 [analysis]可以发现任意自然数序列其实是公差为1的等差数列,那么数列前N项和公式

2012-09-18 14:08:36 689

转载 2.20 程序理解和时间分析

这是《编程之美》的2.20题目,给出一段C#代码,要求不用电脑,理解程序并回答问题。下面是从C#代码中改写成的C++代码:[cpp] view plaincopy#include   #include   using namespace std;  int main() {       int rg[] = {2,3,4,5,

2012-09-18 10:20:48 522

原创 2.19 区间重合判断

#include #define N 6 int sort(int x[], int y[], int b, int e){ int tmpx,tmpy,i,j,m; i=b; j=e; tmpx=x[i]; tmpy=y[i]; while(i<j) { while(x[j]>=tmpx&&i<j) j--; x[i]=x[j]; y[i]=y[j];

2012-09-17 19:35:10 1045

原创 2.18 数组分割

题目概述:有一个没有排序,元素个数为2N的正整数数组。要求把它分割为元素个数为N的两个数组,并使两个子数组的和最接近。假设数组A[1..2N]所有元素的和是SUM。模仿动态规划解0-1背包问题的策略,令S(k, i)表示前k个元素中任意i个元素的和的集合。显然:S(k, 1) = {A[i] | 1S(k, k) = {A[1]+A[2]+…+A[k]}S(k, i) = S(k-

2012-09-15 16:59:52 681

转载 0-1背包问题(动态规划)

动态规划是用空间换时间的一种方法的抽象。其关键是发现子问题和记录其结果。然后利用这些结果减轻运算量。比如01背包问题。一个旅行者有一个最多能用M公斤的背包,现在有N件物品,它们的重量分别是W1,W2,...,Wn,它们的价值分别为P1,P2,...,Pn.若每种物品只有一件求旅行者能获得最大总价值。输入格式:M,NW1,P1W2,P2......输出

2012-09-14 00:43:53 377

原创 2.17 数组循环移位

#include #include void reverse(char * array,int a,int b){ char tmp; for(;a<b;a++,b--) { tmp=array[a]; array[a]=array[b]; array[b]=tmp; }}void shift(char * str,int n,int k){ k=k%n; r

2012-09-13 19:24:35 349

原创 2.16 求数组中最长的递增子序列

#include #include int max(int *a,int len)//求数组的最大元素{ int i,max; max=a[0]; for(i=1;i<len;i++) { if(a[i]>max) max=a[i]; } return max;}int LIS(int * array,int n){ int i,j; int *lis=(in

2012-09-13 18:11:54 632

windows驱动开发技术详解(pdf书+源代码)

windows驱动开发技术详解(pdf书+源代码)

2019-07-22

空空如也

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

TA关注的人

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