- 博客(69)
- 资源 (1)
- 收藏
- 关注
转载 Android文件操作
Android中读取/写入文件的方法,与Java中的I/O是一样的,提供了openFileInput()和openFileOutput()方法来读取设备上的文件。但是在默认状态下,文件是不能在不同的程序之间共享的,以上两个方法只支持读取该应用目录下的文件,读取非其自身目录下的文件将会抛出FileNotFoundException异常。创建的文件存放在/data/data//files目录下。
2014-09-26 16:23:41
446
转载 XML解析
在Android平台上可以使用Simple API for XML(SAX) 、 DocumentObject Model(DOM)和Android附带的pull解析器解析XML文件。下面是本例子要解析的XML文件:itcast.xml
2014-09-26 16:17:31
423
转载 SQLite优化
1. 建表优化SQLite的数据库本质文件读写操作,频繁操作打开和关闭是很耗时和浪费资源的;优化方法事务机制:这里要注意一点:事务的开启是要锁定DB的,其他对DB的写入操作都是无法成功的。db.beginTransaction(); //手动设置开始事务try { //这里写你数据操作 db.setTransactionSuccessful();
2014-09-26 16:13:26
658
转载 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
492
转载 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
1243
转载 SharedPreferences
SharedPreferences是Android中存储简单数据的一个工具类。可以想象它是一个小小的Cookie,它通过用键值对的方式把简单数据类型(boolean、int、float、long和String)存储在应用程序的私有目录下(data/data/包名/shared_prefs/)自己定义的xml文件中。1) 保存数据//获得SharedPreferences对象Shared
2014-09-26 16:04:12
333
转载 Android之Activity与Service通信
1. 同一进程(继承Binder类)当Acitivity和Service处于同一个Application和进程时,通过继承Binder类来实现。当一个Activity绑定到一个Service上时,它负责维护Service实例的引用,允许你对正在运行的Service进行一些方法调用。比如你后台有一个播放背景音乐的Service,这时就可以用这种方式来进行通信。代码如下:
2014-09-26 16:00:10
397
转载 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
342
转载 XML和JSON对比
1. 简介 XML:extensible markup language,一种类似于HTML的语言,他没有预先定义的标签,使用DTD(document typedefinition)文档类型定义来组织数据;格式统一,跨平台和语言,早已成为业界公认的标准。具体的可以问Google或百度。相比之JSON这种轻量级的数据交换格式,XML可以称为重量级的了。 JSON : JavaScript
2014-09-26 14:10:55
369
转载 JSON解析
1. JSON概念:一种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性,从而可以在不同平台间进行数据交换。JSON采用兼容性很高的文本格式,同时也具备类似于C语言体系的行为。JSON可以将Java对象转成json格式的字符串,可以将json字符串转换成Java。比XML更轻量级,Json使用起来比较轻便和简单。JSON数据格式,在Android中被广泛运用于客户端和服
2014-09-26 14:06:04
665
转载 IBinder
Android的远程调用(就是跨进程调用)就是通过IBinder实现的,下面是对android开发文档的翻译。IBinder是远程对象的基本接口,是为高性能而设计的轻量级远程调用机制的核心部分。但它不仅用于远程调用,也用于进程内调用。这个接口定义了与远程对象交互的协议。不要直接实现这个接口,而应该从Binder派生。IBinder的主要API是transact(),与它对应另一方法是Bin
2014-09-26 13:59:52
1632
转载 ContentProvider
1. 适用场景1) ContentProvider为存储和读取数据提供了统一的接口2) 使用ContentProvider,应用程序可以实现数据共享3) android内置的许多数据都是使用ContentProvider形式,供开发者调用的(如视频,音频,图片,通讯录等)2. 相关概念介绍1) ContentProvider简介当应用继承ContentProvider类,并
2014-09-26 13:48:17
276
转载 PendingIntent
1. PendingIntent作用根据字面意思就知道是延迟的intent,主要用来在某个事件完成后执行特定的Action。要得到一个pendingIntent对象,使用方法类的静态方法 getActivity(Context, int, Intent, int),getBroadcast(Context, int, Intent, int),getService(Context,
2014-09-25 13:56:36
358
原创 getSystemService
getSystemService()是Android很重要的一个API,它是Activity的一个方法,根据传入的NAME来取得对应的Object,然后转换成相应的服务对象。以下介绍系统相应的服务。
2014-09-25 13:53:57
305
转载 ViewHolder
ViewHolder不是Android的开发API,而是一种设计方法,就是设计个静态类,缓存一下,省得Listview更新的时候,还要重新操作。在android开发中Listview是一个很重要的组件,它以列表的形式根据数据的长自适应展示具体内容,用户可以自由的定义listview每一列的布局,但当listview有大量的数据需要加载的时候,会占据大量内存,影响性能,这时候就需要按需填充并重新
2014-09-25 13:04:19
296
转载 LayoutInflater
在实际开发中LayoutInflater这个类还是非常有用的,它的作用类似于findViewById()。不同点是LayoutInflater是用来找res/layout/下的xml布局文件,并且实例化;而findViewById()是找xml布局文件下的具体widget控件(如Button、TextView等)。具体作用:1. 对于一个没有被载入或者想要动态载入的界面,都需要使用Layo
2014-09-25 12:55:20
294
转载 Adapter
1. 概念Adapter是连接后端数据和前端显示的适配器接口,是数据和UI(View)之间一个重要的纽带。在常见的View(ListView,GridView)等地方都需要用到Adapter。如下图直观的表达了Data、Adapter、View三者的关系:
2014-09-25 12:34:42
375
转载 Android界面刷新
Android的invalidate与postInvalidate都是用来刷新界面的,用法区别在于:invalidate():只可在主线程中使用。实例化一个Handler对象,并重写handleMessage方法调用invalidate()实现界面刷新;而在线程中通过sendMessage发送界面更新消息。
2014-09-24 15:49:49
431
转载 Android中View转换为Bitmap及getDrawingCache=null的解决方法
1. 前言Android中经常会遇到把View转换为Bitmap的情形,比如,对整个屏幕视图进行截屏并生成图片;Coverflow中需要把一页一页的view转换为Bitmap、以便实现复杂的图形效果(阴影、倒影效果等);再比如一些动态的实时View为便于观察和记录数据、需要临时生成静态的Bitmap。2. 实现方法1) 下面是笔者经常用的一个转换方法
2014-09-24 15:43:25
315
转载 重写ScrollView实现两个ScrollView的同步滚动显示
1. 背景介绍最近项目用到两个ScrollView的同步显示,即拖动左边的ScrollView滚动的同时,实现右边的ScrollView同步滚动。此种情形常用在复杂界面布局中,比如左边的ScrollView显示主要项目,只需上下滚动即可;右边项目是次要项目,可以实现上下或者左右滚动,当上下滚动时,需要左右两边的同步显示。
2014-09-24 15:29:20
417
转载 ExpandableList扩展用法
1.简介基于BaseExpandableListAdapter扩展的ExpandableList用法,现在网上流行的主要有两种:第一种是向BaseExpandableListAdapter传入两个数组,第一个是表示Group(目录头)信息的一维数组,第二个是表示Child(目录子项)的二维数组数组;第二种是构建两个类,一个是表示目录信息的GroupInfo类,另一个是表示子项信息的ChildI
2014-09-24 15:09:36
410
转载 GET与POST方法的区别
HTTP 定义了与服务器交互的不同方法,最基本的方法是 GET 和 POST。Ø Get是从服务器上获取数据,Post是向服务器传送数据。GET用于信息获取,是安全的和幂等的。安全的意味着该操作用于获取信息而非修改信息,幂等的意味着对同一URL 的多个请求应该返回同样的结果。完整的定义并不像看起来那样严格。Ø GET请求请提交的数据放置在HTTP请求协议头中,附加在url之后,以?分开
2014-08-18 16:40:52
287
转载 网路搜集:java整型数与网络字节序的 byte[] 数组转换关系
工作项目需要在java和c/c++之间进行socket通信,socket通信是以字节流或者字节包进行的,socket发送方须将数据转换为字节流或者字节包,而接收方则将字节流和字节包再转换回相应的数据类型。如果发送方和接收方都是同种语言,则一般只涉及到字节序的调整。而对于java和c/c++的通信,则情况就要复杂一些,主要是因为java中没有unsigned类型,并且java和c在某些数据类型上的长
2014-08-18 16:38:15
389
转载 Android消息推送
引言所谓的消息推送就是从服务器端向移动终端发送连接,传输一定的信息。比如一些新闻客户端,每隔一段时间收到一条或者多条通知,这就是从服务器端传来的推送消息;还比如常用的一些IM软件如微信、GTalk等,都具有服务器推送功能。推送方法如下:1)通过SMS进行服务器端和客户端的交流通信。在Android平台上,你可以通过拦截SMS消息并且解析消息内容来了解服务器的意图,可以实现完全的实时
2014-08-18 16:31:55
323
转载 Android网络连接之HttpURLConnection和HttpClient
1.概念HTTP协议可能是现在Internet上使用得最多、最重要的协议了,越来越多的Java应用程序需要直接通过HTTP协议来访问网络资源。在JDK的java.net包中已经提供了访问HTTP协议的基本功能:HttpURLConnection。但是对于大部分应用程序来说,JDK 库本身提供的功能还不够丰富和灵活。除此之外,在Android中,androidSDK中集成了Apache的
2014-08-18 16:20:47
352
转载 JAVA中三种URL连接方法
Java的网络类可以让你通过网络或者远程连接来实现应用。而且,这个平台现在已经可以对国际互联网以及URL资源进行访问了。Java的URL类可以让访问网络资源就像是访问你本地的文件夹一样方便快捷。我们通过使用Java的URL类就可以经由URL完成读取和修改数据的操作。通过一个URL连接,我们就可以确定资源的位置,比如网络文件、网络页面以及网络应用程序等。其中包含了许多的语法元素。从URL得到
2014-08-18 16:16:09
424
转载 Java与Http协议
http(超文本传输协议)是一个基于请求与响应模式的、无状态的、应用层的协议,常基于TCP的连接方式。HTTP协议的主要特点是:1.支持客户/服务器模式。2.简单快速:客户向服务器请求服务时,只需传送请求方法和路径。由于HTTP协议简单,通信速度很快。3. 灵活:HTTP允许传输任意类型的数据对象。类型由Content-Type加以标记。4. 无连接:即每次
2014-08-18 16:06:50
446
转载 Android Socket的示例
1.开篇简介Socket本质上就是Java封装了传输层上的TCP协议(注:UDP用的是DatagramSocket类)。要实现Socket的传输,需要构建客户端和服务器端。另外,传输的数据可以是字符串和字节。字符串传输主要用于简单的应用,比较复杂的应用(比如Java和C++进行通信),往往需要构建自己的应用层规则(类似于应用层协议),并用字节来传输。2.基于字符串传输的Socket案例
2014-08-18 16:00:05
352
转载 Socket连接与HTTP连接
我们在传输数据时,可以只使用(传输层)TCP/IP协议,但是那样的话,如果没有应用层,便无法识别数据内容,如果想要使传输的数据有意义,则必须使用到应用层协议,应用层协议有很多,比如HTTP、FTP、TELNET等,也可以自己定义应用层协议。WEB使用HTTP协议作应用层协议,以封装HTTP文本信息,然后使用TCP/IP做传输层协议将它发到网络上。1)Socket是一个针对TCP和UDP编程的接
2014-08-18 15:55:22
295
转载 Parcel
Parcel,翻译过来是“打包”的意思。打包干什么呢?是为了序列化。以下是对android sdk 文档的翻议:Parcel是一个容器,它主要用于存储序列化数据,然后可以通过Binder在进程间传递这些数据。Parcel可以包含原始数据类型(用各种对应的方法写入,比如writeInt(),writeFloat()等),可以包含Parcelable对象,它还包含了一个活动的IBinder对象的引
2014-08-16 16:22:01
448
转载 Binder
摘要Binder是Android系统进程间通信(IPC)方式之一。Linux已经拥有管道,system V IPC,socket等IPC手段,却还要倚赖Binder来实现进程间通信,说明Binder具有无可比拟的优势。深入了解Binder并将之与传统IPC做对比有助于我们深入领会进程间通信的实现和性能优化。本文将对Binder的设计细节做一个全面的阐述,首先通过介绍Binder通信模型和Bin
2014-08-05 16:36:31
504
转载 Intent
Intent的介绍Intent的中文意思是“意图,意向”,在Android中提供了Intent机制来协助应用间的交互与通讯,Intent负责对应用中一次操作的动作、动作涉及数据、附加数据进行描述,Android则根据此Intent的描述,负责找到对应的组件,将Intent传递给调用的组件,并完成组件的调用。Intent不仅可用于应用程序之间,也可用于应用程序内部的Activity/Servic
2014-08-05 16:27:17
623
原创 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
389
转载 Context
什么是ContextContext是一个抽象基类,我们通过它访问当前包的资源(getResources、getAssets)和启动其他组件(Activity、Service、Broadcast)以及得到各种服务(getSystemService),当然,通过Context能得到的不仅仅只有上述这些内容。对Context的理解可以来说:Context提供了一个应用的运行环境,在Context的大
2014-08-02 11:41:42
287
转载 Activity生命周期
一个activity主要有三个状态:当在屏幕前台时(位于当前任务堆栈的顶部),它是活跃或运行的状态。它就是相应用户操作的activity。 ² 当它失去焦点但仍然对用户可见时,它处于暂停状态。即是:在它之上有另外一个activity。这个activity也许是透明的,或者未能完全遮蔽全屏,所以被暂停的activity仍对用户可见。暂停的activity仍然是存活状态(它保留着所有的状态
2014-08-02 09:58:07
401
原创 AsyncTask
AsyncTask的特点是任务在主线程之外运行,而回调方法是在主线程中执行,这就有效地避免了使用Handler带来的麻烦。阅读 AsyncTask的源码可知,AsyncTask是使用java.util.concurrent 框架来管理线程以及任务的执行的,concurrent框架是一个非常成熟,高效的框架,经过了严格的测试。这说明AsyncTask的设计很好的解决了匿名线程存在的问题。Asyn
2014-08-01 19:19:48
498
转载 Looper,Handler,Message
Android的消息处理有三个核心类:Looper,Handler和Message。其实还有一个Message Queue(消息队列),但是MQ被封装到Looper里面了,所以我们不会直接与MQ打交道。线程的魔法师LooperLooper的字面意思是“循环者”,它被设计用来使一个普通线程变成Looper线程。所谓Looper线程就是循环工作的线程。在程序开发中(尤其是GUI开发中),我们经
2014-08-01 17:55:39
333
原创 守护线程,线程组,线程池,ThreadLocal
守护线程 守护线程是一类特殊的线程,它和普通线程的区别在于它并不是应用程序的核心部分 ,当一个应用程序的所有非守护线程终止运行时,即使仍然有守护线程在运行,应用程序 也将终止,反之,只要有一个非守护线程在运行,应用程序就不会终止。守护线程一般被 用于在后台为其它线程提供服务。 可以通过调用方法 isDaemon() 来判断一个线程是否是守护线程,也可以调用方法 setDa emon()
2014-07-25 16:47:27
2263
原创 Java中join、sleep、wait、yield浅析
Join方法join方法的功能就是使异步执行的线程变成同步执行。也就是说,当调用线程实例的start方法后,这个方法会立即返回,如果在调用start方法后后需要使用一个由这个线程计算得到的值,就必须使用join方法。如果不使用join方法,就不能保证当执行到start方法后面的某条语句时,这个线程一定会执行完。而使用join方法后,直到这个线程退出,程序才会往下执行。主线程生成并起动了子线程,
2014-07-25 16:43:29
644
原创 java中Thread的start()与run()的区别
start()方法来启动线程,真正实现了多线程运行,这时无需等待run方法体代码执行完毕而直接继续执行下面的代码。通过调用Thread类的start()方法来启动一个线程,这时此线程是处于就绪状态,并没有运行。然后通过此Thread类调用方法run()来完成其运行操作的,这里方法run()称为线程体,它包含了要执行的这个线程的内容,Run方法运行结束,此线程终止,而CPU再运行其它线程,r
2014-07-25 16:34:48
556
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人