自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

专注Android开发

淡泊以明志,宁静以致远

  • 博客(41)
  • 收藏
  • 关注

转载 android 单元测试出现错误及改正

1.Test run failed:Instrumentation run failed due to 'java.lang.ClassNotFoundException'  原因是找不到单元测试的类,后来经过仔细看代码及网上查找终于解决,现在记录下来便于以后查找解决办法,问题简单下次就记得了,但是做的项目多了,问题也多了就易忘记或遗漏,好记性不如烂笔头真的一点不错。从头再来,遇到问题就记

2014-01-23 17:31:08 1108

转载 android ExceptionInInitializerError解决办法

09-20 01:13:36.180: E/AndroidRuntime(5202): FATAL EXCEPTION: main09-20 01:13:36.180: E/AndroidRuntime(5202): java.lang.ExceptionInInitializerError09-20 01:13:36.180: E/AndroidRuntime(5202):      

2014-01-23 14:45:19 3304 1

转载 android单元测试

测试相关资源 让开发自动化: 用 Eclipse 插件提高代码质量http://www.ibm.com/developerworks/cn/java/j-ap01117/index.html 代码测试覆盖率介绍:http://www.cnblogs.com/coderzh/archive/2009/03/29/1424344.html 学习android单元测试时遇到的一些

2014-01-22 16:34:47 815

转载 在Android上实现Junit单元测试的四部曲

我们曾经和大家探讨过全面剖析Java ME单元测试理念,其实在Android上实现JUnit单元测试也不是很困难,主要是在配置文件和测试环境上将花费很长时间,下面从四步简单讲一下在Android上实现Junit单元测试。第一步:新建一个TestCase,记得要继承androidTestCase,才能有getContext()来获取当前的上下文变量,这在Android测试中很重要的,因为很多

2014-01-22 11:17:26 849

转载 AsyncTask深入理解

/** * AsyncTask是抽象类, * AsyncTask定义了三种泛型类型 Params,Progress和Result。 * Params   启动任务执行的输入参数,比如HTTP请求的URL。 * Progress 后台任务执行的百分比。 * Result   后台执行任务最终返回的结果,比如String,Integer等。 *  * AsyncTask的执

2014-01-16 17:38:54 803

转载 100行Java代码构建一个线程池

在现代的操作系统中,有一个很重要的概念――线程,几乎所有目前流行的操作系统都支持线程,线程来源于操作系统中进程的概念,进程有自己的虚拟地址空间以及正文段、数据段及堆栈,而且各自占有不同的系统资源(例如文件、环境变量等等)。与此不同,线程不能单独存在,它依附于进程,只能由进程派生。如果一个进程派生出了两个线程,那这两个线程共享此进程的全局变量和代码段,但每个线程各拥有各自的堆栈,因此它们拥有各自的局

2014-01-16 17:17:10 628

转载 Java 线程池学习

Reference: 《创建Java线程池》[1],《Java线程:新特征-线程池》[2], 《Java线程池学习》[3],《线程池ThreadPoolExecutor使用简介》[4],《Java5中的线程池实例讲解》[5],《ThreadPoolExecutor使用和思考》[6][1]中博主自己通过ThreadGroup实现一个线程池(挺方便理解的),使用的是jdk1.4版本,Jdk

2014-01-16 16:53:48 505

转载 Java 线程池的原理与实现

这几天主要是狂看源程序,在弥补了一些以前知识空白的同时,也学会了不少新的知识(比如 NIO),或者称为新技术吧。线程池就是其中之一,一提到线程,我们会想到以前《操作系统》的生产者与消费者,信号量,同步控制等等。一提到池,我们会想到数据库连接池,但是线程池又如何呢?建议:在阅读本文前,先理一理同步的知识,特别是syncronized同步关键字的用法。关于我对同步的认识,要缘于大三

2014-01-16 16:51:25 495

转载 如何能通过hashmap的value来返回其对应的键值key

import java.util.ArrayList;  import java.util.HashMap;  import java.util.List;  import java.util.Map;  import java.util.Map.Entry;    public class Value2Key {        //待反查的Map数据成员   

2014-01-14 16:18:52 3096

转载 serialVersionUID的作用

在很多应用中,需要对某些对象进行序列化,让它们离开内存空间,入住物理硬盘,以便长期保存。比如最常见的是Web服务器中的Session对象,当有10万用户并发访问,就有可能出现10万个Session对象,内存可能吃不消,于是Web容器就会把一些seesion先序列化到硬盘中,等要用了,再把保存在硬盘中的对象还原到内存中,说白了,就是能将一个2进制文件变成内存中的对象。在JAVA中,要实现这种机制,只

2014-01-14 15:11:57 616

转载 深入理解Java序列化中的SerialVersionUid

一、前言SerialVersionUid,简言之,其目的是序列化对象版本控制,有关各版本反序列化时是否兼容。如果在新版本中这个值修改了,新版本就不兼容旧版本,反序列化时会抛出InvalidClassException异常。如果修改较小,比如仅仅是增加了一个属性,我们希望向下兼容,老版本的数据都能保留,那就不用修改;如果我们删除了一个属性,或者更改了类的继承关系,必然不兼容旧数据,这时就应该

2014-01-14 15:09:58 788

转载 serialVersionUID的作用

简单来说,Java的序列化机制是通过在运行时判断类的serialVersionUID来验证版本一致性的。在进行反序列化时,JVM会把传来的字节流中的serialVersionUID与本地相应实体(类)的serialVersionUID进行比较,如果相同就认为是一致的,可以进行反序列化,否则就会出现序列化版本不一致的异常。(InvalidCastException)serialVersion

2014-01-14 15:06:03 585

转载 Android实时监控项目第四篇:后台线程发送预览帧视频数据

还记得上篇提到的setPreviewCallback(Camera.PreviewCallback cb)函数吗?我们在开始预览帧视频之前,调用的它,这里要注意其内部的Camera.PreviewCallback类型的参数,我们需要写一个类继承Camera.PreviewCallback的类,在该类中覆写public void onPreviewFrame(byte[] data, Camer

2014-01-14 14:23:07 1368 2

转载 Android实时监控项目第三篇:通过摄像头实时预览帧视频

在第二个Activity中,我们要显示摄像头预览的视频,布局文件很简单,就一个SurfaceView组件,设置为占满整个父组件(这里不再给出),用来显示预览的视频。      在对应的Activity文件中,要获取SurfaceView的SurfaceHolder,并为其添加一个回调监听器,该监听器传入一个Callback实例,这里需要覆写Callback实例中的三个方法,分别是:

2014-01-14 14:22:08 3857 1

转载 Android实时监控项目第二篇:登陆界面的设计

在开始核心功能的实现之前,我们先从最简单的部分开始,设计第一个Activity界面,它主要用来获取用户输入的需要连接的PC端的IP地址。      该Activity对应的XML布局文件很简单,就不详细解释了,如下:[html] view plaincopyTableLayout xmlns:android="http://s

2014-01-14 14:21:36 1460

转载 Android实时监控项目第一篇:项目分析及AVD模拟效果图

Android实时监控项目主要涉及Socket编程、多线程编程,Android摄像头对预览视频流的采集和处理等。【1】主要功能:通过Android客户端摄像头采集预览视频数据,并实时地发送到PC端进行显示。【2】设计思路:Android客户端:1、创建一个Activity,获取连接的PC端的IP地址(由用户输入),IP地址合法,则跳转到预览视频流的A

2014-01-14 14:20:58 942

转载 【深入Java虚拟机】之六:Java语法糖

语法糖(Syntactic Sugar),也称糖衣语法,是由英国计算机学家Peter.J.Landin发明的一个术语,指在计算机语言中添加的某种语法,这种语法对语言的功能并没有影响,但是更方便程序员使用。Java中最常用的语法糖主要有泛型、变长参数、条件编译、自动拆装箱、内部类等。虚拟机并不支持这些语法,它们在编译阶段就被还原回了简单的基础语法结构,这个过程成为解语法糖。    泛

2014-01-14 14:19:26 560

转载 【深入Java虚拟机】之五:多态性实现机制——静态分派与动态分派

方法解析    Class文件的编译过程中不包含传统编译中的连接步骤,一切方法调用在Class文件里面存储的都只是符号引用,而不是方法在实际运行时内存布局中的入口地址。这个特性给Java带来了更强大的动态扩展能力,使得可以在类运行期间才能确定某些目标方法的直接引用,称为动态连接,也有一部分方法的符号引用在类加载阶段或第一次使用时转化为直接引用,这种转化称为静态解析。这在前面的“Java内存

2014-01-14 14:18:58 615

转载 【深入Java虚拟机】之四:类加载机制

类加载过程    类从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期包括:加载、验证、准备、解析、初始化、使用和卸载七个阶段。它们开始的顺序如下图所示:    其中类加载的过程包括了加载、验证、准备、解析、初始化五个阶段。在这五个阶段中,加载、验证、准备和初始化这四个阶段发生的顺序是确定的,而解析阶段则不一定,它在某些情况下可以在初始化阶段之后开始,这是为

2014-01-14 14:18:27 535

转载 【深入Java虚拟机】之三:类初始化

类初始化是类加载过程的最后一个阶段,到初始化阶段,才真正开始执行类中的Java程序代码。虚拟机规范严格规定了有且只有四种情况必须立即对类进行初始化:遇到new、getstatic、putstatic、invokestatic这四条字节码指令时,如果类还没有进行过初始化,则需要先触发其初始化。生成这四条指令最常见的Java代码场景是:使用new关键字实例化对象时、读取或设置一个类的静

2014-01-14 14:17:54 549

转载 【深入Java虚拟机】之二:Class类文件结构

平台无关性    Java是与平台无关的语言,这得益于Java源代码编译后生成的存储字节码的文件,即Class文件,以及Java虚拟机的实现。不仅使用Java编译器可以把Java代码编译成存储字节码的Class文件,使用JRuby等其他语言的编译器也可以把程序代码编译成Class文件,虚拟机并不关心Class的来源是什么语言,只要它符合一定的结构,就可以在Java中运行。Java语言中的各

2014-01-14 14:17:00 597

转载 【深入Java虚拟机】之一:Java内存区域与内存溢出

内存区域    Java虚拟机在执行Java程序的过程中会把他所管理的内存划分为若干个不同的数据区域。Java虚拟机规范将JVM所管理的内存分为以下几个运行时数据区:程序计数器、Java虚拟机栈、本地方法栈、Java堆、方法区。下面详细阐述各数据区所存储的数据类型。   程序计数器(Program Counter Register)   

2014-01-14 14:16:18 614

转载 读《重构》,学习Collections.unmodifiableList()用法

在《重构——改善既有代码的设计》一书中,有一种重构手法叫Encapsulate Collection(封装集群),为了演示该重构手法,我写了四个类,通过对比重构前后的代码,加深对这一重构手法的理解。类Student有一ArrayList属性,如果没有阅读《重构——改善既有代码的设计》一书,很多人可能会像我一样,如下设计类Student。但是,如果通过Student.getCou

2014-01-14 14:14:35 789

转载 px、dp和sp,这些单位有什么区别?

px:即像素,1px代表屏幕上一个物理的像素点;px单位不被建议使用,因为同样100px的图片,在不同手机上显示的实际大小可能不同,如下图所示。dp:这个是最常用但也最难理解的尺寸单位。它与“像素密度”密切相关,所以首先我们解释一下什么是像素密度。假设有一部手机,屏幕的物理尺寸为1.5英寸x2英寸,屏幕分辨率为240x320,则我们可以计算出在这部手机的屏幕

2014-01-14 11:41:17 559

转载 onPrepareOptionsMenu()注意事项

1. onPrepareOptionsMenu()调用时机。一般情况下,每次按menu键Framewrok都会先调用onPrepareOptionsMenu(),准备需要显示的菜单。但是当按menu键之前调用了Activity.invalidateOptionsMenu()之后,情况变的不一样,调用完Activity.invalidateOptionsMenu()之后,Framework会

2014-01-13 19:31:52 3461

转载 Android 模拟返回键功能

我测试发现,有两种方法可行。①、java.lang.RuntimeRuntime runtime = Runtime.getRuntime();runtime.exec("input keyevent " + KeyEvent.KEYCODE_BACK);②、android.app.InstrumentationInstrumentation inst =

2014-01-13 19:31:12 1180

转载 android onTouchEvent和setOnTouchListener中onTouch的区别

android中onTouchEvent和setOnTouchListener中onTouch的区别可以有些人并不了解,其实要说明白这个问题先要说下android的事件传递机制。首先看下以下的代码1,这段代码反应了View处理事件的过程:代码1:public boolean dispatchTouchEvent(MotionEvent event) {       

2014-01-13 11:09:45 794

转载 Android TouchEvent事件传递机制

跟touch事件相关的3个方法:public boolean dispatchTouchEvent(MotionEvent ev);    //用来分派eventpublic boolean onInterceptTouchEvent(MotionEvent ev); //用来拦截eventpublic boolean onTouchEvent(MotionEvent ev);  

2014-01-13 11:08:42 796

转载 ListView中每个item的左右滑动响应,附源码

要实现的效果:三星手机上左右滑动任一项联系人(ListView的Item),即可进行打电话或发短信的操作;备忘软件Any.Do中,滑动ListView中任一项即可标记为已完成。作为一个初学者,为了实现这一效果,花了很长时间终于才成功,希望大家支持下{:soso_e113:}。思路:使用了OnItemClickListener, OnGestureListener,前者用于判断当前选

2014-01-12 15:05:36 867

转载 Sax 解析xml文件时, 数据信息不完整问题解决方法

使用Sax对xml文件进行解析时,Sax每次只读入2k数据,当xml文件大于2k时,数据信息可能回出现不完成的情况. 此时,我们只需要使用StringBuffer对信息进行组合. 同时,在使用完StringBuffer之后,需要对StringBuffer进行清空操作.

2014-01-03 16:43:58 2297 1

转载 SAX解析XML文件有关characters的最大长度2048的问题

使用SAX解析XML文件,我们都知道需要重载charaters方法[java] view plaincopy@Override      public void characters(char[] ch, int start, int length)              throws SAXException  但是

2014-01-03 16:42:15 1756

转载 【android开发】手写签名系统的设计与实现之实现pdf文件上手写签名效果(五)---完

前几篇文章我们分别介绍了显示文件列表、解析pdf、手写画板及画笔设置的功能了,今天我们就介绍一下,最后最关键的一部分-手写签名效果。先看看效果图:                选定位置                                    画板上写字                                       预览签名效果           

2014-01-03 10:48:34 1805 1

转载 【android开发】手写签名系统的设计与实现之实现画笔设置(四)

上一篇文章我们介绍了如何实现在画板上海书写,其过程相对来说是比较简单的,既然我们实现了画布和画笔,也实现了手写,为了提高可用性,我们增加了对画笔风格的设置功能,这样就可以根据自己的需要选择画笔的颜色、粗细、风格(铅笔、浮雕、水彩等)效果。今天我们就介绍画笔风格的设置功能的实现过程,先看看效果图:                         一、实现原理:

2014-01-03 10:47:30 1479

转载 【android开发】手写签名系统的设计与实现之实现手写画板(三)

在上一篇文章中,我们介绍了如何解析pdf文件,并显示在手机页面上。接下来我们将介绍一下,如何实现一个手写画板,主要用到的类有画布类canvas和画笔了paint。先看看效果:               画板界面                                          设置画笔界面           一、画板的实现原理:我们通过类ca

2014-01-03 10:46:54 1974

转载 【android开发】手写签名系统的设计与实现之实现解析pdf文件(二)

上一篇文章,我们介绍了如何去实现读取手机文件及文件夹,并以列表的形式显示出来,今天我们将说说如何读取pdf文件。先看效果图:              选择pdf文件                                               显示pdf文件主界面                        一、实现原理:手机端解析pdf的

2014-01-03 10:46:18 1349 1

转载 【android开发】手写签名系统的设计与实现之实现文件夹以及文件列表显示(一)

随着移动设备的普及,人们越来越依赖移动设备,它带给人们许多的方便。其中手写签名,在一些金融行业使用较为普遍,目前手写签名系统有几款很不错,免费使用的不多。由于前一段时间项目需要,做了一个简单的手写签名系统,不是很完善,不过对于一般的需求是可以满足的,主要是针对pdf文件进行的操作,现在拿来给大家分享,希望有好的实现方式,能指点一下,大家共同进步。我们先看一下效果图:           选

2014-01-03 10:45:19 1389

转载 Android view中的requestLayout和invalidate方法

requestLayout:当view确定自身已经不再适合现有的区域时,该view本身调用这个方法要求parent view重新调用他的onMeasure onLayout来对重新设置自己位置。特别的当view的layoutparameter发生改变,并且它的值还没能应用到view上,这时候适合调用这个方法。invalidate:View本身调用迫使view重画。

2014-01-03 10:03:15 524

转载 Android事件处理之多点触摸与手势识别

一、Muilti-touch 双指缩放的实现探索:首先要实现OnTouchListener接口,然后重写方法:public boolean onTouch(View v, MotionEvent event); 从这个方法中我们就可以获取实现两指缩放功能的全部信息。 View v是触发事件的源,MotionEvent event即一个触摸事件。对屏幕的几

2014-01-02 19:47:47 761

转载 Android之ScaleGestureDetector(缩放手势检测)

一、概述      ScaleGestureDetector这个类是专门用来检测两个手指在屏幕上做缩放的手势用的,最简单的应用就是用来缩放图片或者缩放网页。二、要求     利用ScaleGestureDetector这个类实现图片缩放。三、实现     新建工程MyScale,修改main.xml文件,在里面添加一个Button和一

2014-01-02 19:19:52 1322

转载 android 自定义ImageView实现图片手势滑动,多点触摸放大缩小效果

首先呢,还是一贯作风,我们先来看看众多应用中的示例:(这种效果是很常见的,可以说应用的必须品.)                           搜狐客户端                                    百度新闻客户端                              新浪微博                              凤

2014-01-02 18:55:31 1450

空空如也

空空如也

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

TA关注的人

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