自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 Android文件操作

Android中读取/写入文件的方法,与Java中的I/O是一样的,提供了openFileInput()和openFileOutput()方法来读取设备上的文件。但是在默认状态下,文件是不能在不同的程序之间共享的,以上两个方法只支持读取该应用目录下的文件,读取非其自身目录下的文件将会抛出FileNotFoundException异常。创建的文件存放在/data/data//files目录下。

2014-09-26 16:23:41 405

转载 XML解析

在Android平台上可以使用Simple API for XML(SAX) 、 DocumentObject Model(DOM)和Android附带的pull解析器解析XML文件。下面是本例子要解析的XML文件:itcast.xml

2014-09-26 16:17:31 371

转载 SQLite优化

1. 建表优化SQLite的数据库本质文件读写操作,频繁操作打开和关闭是很耗时和浪费资源的;优化方法事务机制:这里要注意一点:事务的开启是要锁定DB的,其他对DB的写入操作都是无法成功的。db.beginTransaction(); //手动设置开始事务try {       //这里写你数据操作       db.setTransactionSuccessful();

2014-09-26 16:13:26 517

转载 SQLite

1. SQLite简介在Android平台上,集成了一个嵌入式关系型数据库—SQLite,SQLite3支持NULL、INTEGER、REAL(浮点数字)、TEXT(字符串文本)和BLOB(二进制对象)数据类型,虽然它支持的类型虽然只有五种,但实际上sqlite3也接受varchar(n)、char(n)、decimal(p,s)等数据类型,只不过在运算或保存时会转成对应的五种数据类型。SQL

2014-09-26 16:08:22 451

转载 SharedPreferences权限

import android.app.Activity; import android.content.SharedPreferences; import android.os.Bundle; public class PermissionActivity extends Activity { private final int[] MODES=new int[]{

2014-09-26 16:06:15 1198

转载 SharedPreferences

SharedPreferences是Android中存储简单数据的一个工具类。可以想象它是一个小小的Cookie,它通过用键值对的方式把简单数据类型(boolean、int、float、long和String)存储在应用程序的私有目录下(data/data/包名/shared_prefs/)自己定义的xml文件中。1) 保存数据//获得SharedPreferences对象Shared

2014-09-26 16:04:12 301

转载 Android之Activity与Service通信

1. 同一进程(继承Binder类)当Acitivity和Service处于同一个Application和进程时,通过继承Binder类来实现。当一个Activity绑定到一个Service上时,它负责维护Service实例的引用,允许你对正在运行的Service进行一些方法调用。比如你后台有一个播放背景音乐的Service,这时就可以用这种方式来进行通信。代码如下:

2014-09-26 16:00:10 348

转载 Thread和Service应用场合的区别

Thread和Service的区别:1. Thread是程序执行的最小单元,它是分配CPU的基本单位,可以用Thread来执行一些异步的操作。如果是Local Service,那么对应的Service是运行在主进程的 main线程上的。如果是Remote Service,那么对应的Service则是运行在独立进程的main线程上。因此Service不是线程!2. Thread的运行是独

2014-09-26 15:58:03 313

转载 XML和JSON对比

1. 简介  XML:extensible markup language,一种类似于HTML的语言,他没有预先定义的标签,使用DTD(document typedefinition)文档类型定义来组织数据;格式统一,跨平台和语言,早已成为业界公认的标准。具体的可以问Google或百度。相比之JSON这种轻量级的数据交换格式,XML可以称为重量级的了。  JSON : JavaScript

2014-09-26 14:10:55 333

转载 JSON解析

1.       JSON概念:一种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性,从而可以在不同平台间进行数据交换。JSON采用兼容性很高的文本格式,同时也具备类似于C语言体系的行为。JSON可以将Java对象转成json格式的字符串,可以将json字符串转换成Java。比XML更轻量级,Json使用起来比较轻便和简单。JSON数据格式,在Android中被广泛运用于客户端和服

2014-09-26 14:06:04 502

转载 IBinder

Android的远程调用(就是跨进程调用)就是通过IBinder实现的,下面是对android开发文档的翻译。IBinder是远程对象的基本接口,是为高性能而设计的轻量级远程调用机制的核心部分。但它不仅用于远程调用,也用于进程内调用。这个接口定义了与远程对象交互的协议。不要直接实现这个接口,而应该从Binder派生。IBinder的主要API是transact(),与它对应另一方法是Bin

2014-09-26 13:59:52 1578

转载 ContentProvider

1. 适用场景1) ContentProvider为存储和读取数据提供了统一的接口2) 使用ContentProvider,应用程序可以实现数据共享3) android内置的许多数据都是使用ContentProvider形式,供开发者调用的(如视频,音频,图片,通讯录等)2. 相关概念介绍1) ContentProvider简介当应用继承ContentProvider类,并

2014-09-26 13:48:17 244

转载 PendingIntent

1.  PendingIntent作用根据字面意思就知道是延迟的intent,主要用来在某个事件完成后执行特定的Action。要得到一个pendingIntent对象,使用方法类的静态方法 getActivity(Context, int, Intent, int),getBroadcast(Context, int, Intent, int),getService(Context,

2014-09-25 13:56:36 314

原创 getSystemService

getSystemService()是Android很重要的一个API,它是Activity的一个方法,根据传入的NAME来取得对应的Object,然后转换成相应的服务对象。以下介绍系统相应的服务。

2014-09-25 13:53:57 271

转载 ViewHolder

ViewHolder不是Android的开发API,而是一种设计方法,就是设计个静态类,缓存一下,省得Listview更新的时候,还要重新操作。在android开发中Listview是一个很重要的组件,它以列表的形式根据数据的长自适应展示具体内容,用户可以自由的定义listview每一列的布局,但当listview有大量的数据需要加载的时候,会占据大量内存,影响性能,这时候就需要按需填充并重新

2014-09-25 13:04:19 273

转载 LayoutInflater

在实际开发中LayoutInflater这个类还是非常有用的,它的作用类似于findViewById()。不同点是LayoutInflater是用来找res/layout/下的xml布局文件,并且实例化;而findViewById()是找xml布局文件下的具体widget控件(如Button、TextView等)。具体作用:1. 对于一个没有被载入或者想要动态载入的界面,都需要使用Layo

2014-09-25 12:55:20 263

转载 Adapter

1.       概念Adapter是连接后端数据和前端显示的适配器接口,是数据和UI(View)之间一个重要的纽带。在常见的View(ListView,GridView)等地方都需要用到Adapter。如下图直观的表达了Data、Adapter、View三者的关系:

2014-09-25 12:34:42 251

转载 Android界面刷新

Android的invalidate与postInvalidate都是用来刷新界面的,用法区别在于:invalidate():只可在主线程中使用。实例化一个Handler对象,并重写handleMessage方法调用invalidate()实现界面刷新;而在线程中通过sendMessage发送界面更新消息。

2014-09-24 15:49:49 404

转载 Android中View转换为Bitmap及getDrawingCache=null的解决方法

1. 前言Android中经常会遇到把View转换为Bitmap的情形,比如,对整个屏幕视图进行截屏并生成图片;Coverflow中需要把一页一页的view转换为Bitmap、以便实现复杂的图形效果(阴影、倒影效果等);再比如一些动态的实时View为便于观察和记录数据、需要临时生成静态的Bitmap。2.       实现方法1)      下面是笔者经常用的一个转换方法

2014-09-24 15:43:25 291

转载 重写ScrollView实现两个ScrollView的同步滚动显示

1. 背景介绍最近项目用到两个ScrollView的同步显示,即拖动左边的ScrollView滚动的同时,实现右边的ScrollView同步滚动。此种情形常用在复杂界面布局中,比如左边的ScrollView显示主要项目,只需上下滚动即可;右边项目是次要项目,可以实现上下或者左右滚动,当上下滚动时,需要左右两边的同步显示。

2014-09-24 15:29:20 317

转载 ExpandableList扩展用法

1.简介基于BaseExpandableListAdapter扩展的ExpandableList用法,现在网上流行的主要有两种:第一种是向BaseExpandableListAdapter传入两个数组,第一个是表示Group(目录头)信息的一维数组,第二个是表示Child(目录子项)的二维数组数组;第二种是构建两个类,一个是表示目录信息的GroupInfo类,另一个是表示子项信息的ChildI

2014-09-24 15:09:36 367

转载 GET与POST方法的区别

HTTP 定义了与服务器交互的不同方法,最基本的方法是 GET 和 POST。Ø  Get是从服务器上获取数据,Post是向服务器传送数据。GET用于信息获取,是安全的和幂等的。安全的意味着该操作用于获取信息而非修改信息,幂等的意味着对同一URL 的多个请求应该返回同样的结果。完整的定义并不像看起来那样严格。Ø  GET请求请提交的数据放置在HTTP请求协议头中,附加在url之后,以?分开

2014-08-18 16:40:52 265

转载 网路搜集:java整型数与网络字节序的 byte[] 数组转换关系

工作项目需要在java和c/c++之间进行socket通信,socket通信是以字节流或者字节包进行的,socket发送方须将数据转换为字节流或者字节包,而接收方则将字节流和字节包再转换回相应的数据类型。如果发送方和接收方都是同种语言,则一般只涉及到字节序的调整。而对于java和c/c++的通信,则情况就要复杂一些,主要是因为java中没有unsigned类型,并且java和c在某些数据类型上的长

2014-08-18 16:38:15 362

转载 Android消息推送

引言所谓的消息推送就是从服务器端向移动终端发送连接,传输一定的信息。比如一些新闻客户端,每隔一段时间收到一条或者多条通知,这就是从服务器端传来的推送消息;还比如常用的一些IM软件如微信、GTalk等,都具有服务器推送功能。推送方法如下:1)通过SMS进行服务器端和客户端的交流通信。在Android平台上,你可以通过拦截SMS消息并且解析消息内容来了解服务器的意图,可以实现完全的实时

2014-08-18 16:31:55 293

转载 Android网络连接之HttpURLConnection和HttpClient

1.概念HTTP协议可能是现在Internet上使用得最多、最重要的协议了,越来越多的Java应用程序需要直接通过HTTP协议来访问网络资源。在JDK的java.net包中已经提供了访问HTTP协议的基本功能:HttpURLConnection。但是对于大部分应用程序来说,JDK 库本身提供的功能还不够丰富和灵活。除此之外,在Android中,androidSDK中集成了Apache的

2014-08-18 16:20:47 319

转载 JAVA中三种URL连接方法

Java的网络类可以让你通过网络或者远程连接来实现应用。而且,这个平台现在已经可以对国际互联网以及URL资源进行访问了。Java的URL类可以让访问网络资源就像是访问你本地的文件夹一样方便快捷。我们通过使用Java的URL类就可以经由URL完成读取和修改数据的操作。通过一个URL连接,我们就可以确定资源的位置,比如网络文件、网络页面以及网络应用程序等。其中包含了许多的语法元素。从URL得到

2014-08-18 16:16:09 394

转载 Java与Http协议

http(超文本传输协议)是一个基于请求与响应模式的、无状态的、应用层的协议,常基于TCP的连接方式。HTTP协议的主要特点是:1.支持客户/服务器模式。2.简单快速:客户向服务器请求服务时,只需传送请求方法和路径。由于HTTP协议简单,通信速度很快。3.       灵活:HTTP允许传输任意类型的数据对象。类型由Content-Type加以标记。4.       无连接:即每次

2014-08-18 16:06:50 412

转载 Android Socket的示例

1.开篇简介Socket本质上就是Java封装了传输层上的TCP协议(注:UDP用的是DatagramSocket类)。要实现Socket的传输,需要构建客户端和服务器端。另外,传输的数据可以是字符串和字节。字符串传输主要用于简单的应用,比较复杂的应用(比如Java和C++进行通信),往往需要构建自己的应用层规则(类似于应用层协议),并用字节来传输。2.基于字符串传输的Socket案例

2014-08-18 16:00:05 312

转载 Socket连接与HTTP连接

我们在传输数据时,可以只使用(传输层)TCP/IP协议,但是那样的话,如果没有应用层,便无法识别数据内容,如果想要使传输的数据有意义,则必须使用到应用层协议,应用层协议有很多,比如HTTP、FTP、TELNET等,也可以自己定义应用层协议。WEB使用HTTP协议作应用层协议,以封装HTTP文本信息,然后使用TCP/IP做传输层协议将它发到网络上。1)Socket是一个针对TCP和UDP编程的接

2014-08-18 15:55:22 268

转载 Parcel

Parcel,翻译过来是“打包”的意思。打包干什么呢?是为了序列化。以下是对android sdk 文档的翻议:Parcel是一个容器,它主要用于存储序列化数据,然后可以通过Binder在进程间传递这些数据。Parcel可以包含原始数据类型(用各种对应的方法写入,比如writeInt(),writeFloat()等),可以包含Parcelable对象,它还包含了一个活动的IBinder对象的引

2014-08-16 16:22:01 362

转载 Binder

摘要Binder是Android系统进程间通信(IPC)方式之一。Linux已经拥有管道,system V IPC,socket等IPC手段,却还要倚赖Binder来实现进程间通信,说明Binder具有无可比拟的优势。深入了解Binder并将之与传统IPC做对比有助于我们深入领会进程间通信的实现和性能优化。本文将对Binder的设计细节做一个全面的阐述,首先通过介绍Binder通信模型和Bin

2014-08-05 16:36:31 462

转载 Intent

Intent的介绍Intent的中文意思是“意图,意向”,在Android中提供了Intent机制来协助应用间的交互与通讯,Intent负责对应用中一次操作的动作、动作涉及数据、附加数据进行描述,Android则根据此Intent的描述,负责找到对应的组件,将Intent传递给调用的组件,并完成组件的调用。Intent不仅可用于应用程序之间,也可用于应用程序内部的Activity/Servic

2014-08-05 16:27:17 536

原创 Bundle

Extends Object implements Parcelable, Cloneableandroid.os.Bundle为object 类的派生子类A mapping from String values to various Parcelable types.bundle就是一个映射:一个从字符串值到不同封装类型的映射。在下面的put方法中可以看到,它还可以操作bundl

2014-08-05 16:24:32 351

转载 Context

什么是ContextContext是一个抽象基类,我们通过它访问当前包的资源(getResources、getAssets)和启动其他组件(Activity、Service、Broadcast)以及得到各种服务(getSystemService),当然,通过Context能得到的不仅仅只有上述这些内容。对Context的理解可以来说:Context提供了一个应用的运行环境,在Context的大

2014-08-02 11:41:42 257

转载 Activity生命周期

一个activity主要有三个状态:当在屏幕前台时(位于当前任务堆栈的顶部),它是活跃或运行的状态。它就是相应用户操作的activity。 ² 当它失去焦点但仍然对用户可见时,它处于暂停状态。即是:在它之上有另外一个activity。这个activity也许是透明的,或者未能完全遮蔽全屏,所以被暂停的activity仍对用户可见。暂停的activity仍然是存活状态(它保留着所有的状态

2014-08-02 09:58:07 326

原创 AsyncTask

AsyncTask的特点是任务在主线程之外运行,而回调方法是在主线程中执行,这就有效地避免了使用Handler带来的麻烦。阅读 AsyncTask的源码可知,AsyncTask是使用java.util.concurrent 框架来管理线程以及任务的执行的,concurrent框架是一个非常成熟,高效的框架,经过了严格的测试。这说明AsyncTask的设计很好的解决了匿名线程存在的问题。Asyn

2014-08-01 19:19:48 463

转载 Looper,Handler,Message

Android的消息处理有三个核心类:Looper,Handler和Message。其实还有一个Message Queue(消息队列),但是MQ被封装到Looper里面了,所以我们不会直接与MQ打交道。线程的魔法师LooperLooper的字面意思是“循环者”,它被设计用来使一个普通线程变成Looper线程。所谓Looper线程就是循环工作的线程。在程序开发中(尤其是GUI开发中),我们经

2014-08-01 17:55:39 302

原创 守护线程,线程组,线程池,ThreadLocal

守护线程  守护线程是一类特殊的线程,它和普通线程的区别在于它并不是应用程序的核心部分 ,当一个应用程序的所有非守护线程终止运行时,即使仍然有守护线程在运行,应用程序 也将终止,反之,只要有一个非守护线程在运行,应用程序就不会终止。守护线程一般被 用于在后台为其它线程提供服务。  可以通过调用方法 isDaemon() 来判断一个线程是否是守护线程,也可以调用方法 setDa emon()

2014-07-25 16:47:27 2155

原创 Java中join、sleep、wait、yield浅析

Join方法join方法的功能就是使异步执行的线程变成同步执行。也就是说,当调用线程实例的start方法后,这个方法会立即返回,如果在调用start方法后后需要使用一个由这个线程计算得到的值,就必须使用join方法。如果不使用join方法,就不能保证当执行到start方法后面的某条语句时,这个线程一定会执行完。而使用join方法后,直到这个线程退出,程序才会往下执行。主线程生成并起动了子线程,

2014-07-25 16:43:29 600

原创 java中Thread的start()与run()的区别

start()方法来启动线程,真正实现了多线程运行,这时无需等待run方法体代码执行完毕而直接继续执行下面的代码。通过调用Thread类的start()方法来启动一个线程,这时此线程是处于就绪状态,并没有运行。然后通过此Thread类调用方法run()来完成其运行操作的,这里方法run()称为线程体,它包含了要执行的这个线程的内容,Run方法运行结束,此线程终止,而CPU再运行其它线程,r

2014-07-25 16:34:48 507

pinyin4j-2.5.0

在java汉字排序中经常使用的开发包,可将汉字按拼音首字母排序。

2014-05-23

空空如也

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

TA关注的人

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