自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(26)
  • 资源 (14)
  • 收藏
  • 关注

原创 Android数据存储之ContentProvider

一、介绍 ContentProvider为应用程序之间共享数据提供统一的接口,ContentProvider本身并没有存储功能,它最终还是通过SQLite存储数据。 二、应用场景 增删改查其他应用程序中私有数据。 三、使用步骤 1.写一个类继承ContentProvider,实现增删改查的方法,声明uriMatcher匹配规则,来检查uri路径是否正确; 2.清单文件

2017-10-10 22:03:11 489

原创 Android数据存储之SQLite

一、介绍: SQLite是轻量级嵌入式数据库引擎,它支持 SQL 语言,并且只利用很少的内存就有很好的性能。现在的主流移动设备像Android、iPhone等都使用SQLite作为复杂数据的存储引擎,在我们为移动设备开发应用程序时,也许就要使用到SQLite来存储大量的数据。二、应用场景: 适用于存储一些复杂的关系型数据。三、存储步骤: 1.创建一个继承于SQLiteOpen

2017-10-10 17:01:08 439

原创 Android数据存储之文件存储

一、介绍 以文件的形式存储数据信息,默认存储的位置是sdcard。 二、应用场景 存储一些简单的文本数据或者二进制数据。 三、存储步骤 1.判断是否存在外部存储器; 2.通过Context提供了两个方法来打开数据文件里的文件IO流 FileInputStream openFileInput(String name); FileOutputStream(Strin

2017-10-10 16:39:35 474

原创 Android数据存储之SharedPreferences

一、介绍: 基于XML文件以键值对形式保存数据,且这些数据的格式非常简单:字符串型、基本类型的值。 二、应用场景: 存储应用程序的各种配置信息。 三、存储步骤: 1.通过上下文Context提供的getSharedPreferences(String name, int mode)函数获取SharedPreferences的实例,第一个参数name是XML文

2017-10-10 16:17:23 505

原创 IntentService源码分析

IntentService继承Service,它包含了Service的全部特性,当然也包含service的生命周期,那么与service不同的是,IntentService在执行onCreate操作的时候,内部开了一个线程,去执行你的耗时操作。 IntentService源码:import android.app.Service;import android.content.Intent;im

2017-10-09 20:31:36 422

原创 HandlerThread源码分析

HandlerThread 是一个包含 Looper 的 Thread,我们可以直接使用这个 Looper 创建 Handler。对Handler机制不甚了解的朋友,可以去阅读我的另一篇博文:Handler机制。 HandlerThread源码:import android.os.Looper;import android.os.Process;public class HandlerThre

2017-09-05 16:21:49 444

原创 启动Activity之四种模式

Activity四种启动模式包括standard、singleTop、singleTask和singleInstance。 1、standard-默认模式 这个模式是默认的启动模式,即标准模式,在不指定启动模式的前提下,系统默认使用该模式启动Activity,每次启动一个Activity都会重新创建一个新的实例,不管这个实例存不存在,这种模式下,谁启动了该模式的Activity,该Activit

2017-06-10 10:25:59 427

原创 Android自定义控件之循环旋转弧度不断变化圆弧的控件

Android自定义控件的绘制流程为Measure(测量)–>Layout(布局)–>Draw(绘制)。测量控件的宽高,需要重写onMeasure方法,其中涉及到一个关键的知识点:MeasureSpec类。一个MeasureSpec封装了父布局传递给子布局的布局要求,每个MeasureSpec代表了一组宽度和高度的要求。一个MeasureSpec由大小和模式组成。它有三种模式:UNSPECIFIED

2017-05-07 14:15:47 2704

原创 Java设计模式之迭代器模式

一、定义 提供一种方法顺序访问一个聚合对象中的各种元素,而又不暴露该对象的内部表示。 二、角色 1、Iterator(抽象迭代器):定义访问和遍历元素的接口。 2、ConcreteIterator (具体迭代器):具体迭代器实现迭代器接口。 3、Aggregate (抽象集合):定义创建相应迭代器对象的接口 4、ConcreteAggregate (具体集合):实现创建相应迭代器的接口,

2017-04-20 22:09:14 385

原创 Java设计模式之策略模式

一、定义 策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式让算法独立于使用它的客户而独立变化。 二、角色 1、抽象策略角色(Strategy): 策略类,通常由一个接口或者抽象类实现。 2、具体策略角色(ConcreteStrategy):包装了相关的算法和行为。 3、环境角色(Context):持有一个策略类的引用,最终给客户端调用。 三、以商场对

2017-04-20 21:16:30 287

原创 Java设计模式之状态模式

一、定义 当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类。 二、角色  1 上下文环境(Context):它定义了客户程序需要的接口并维护一个具体状态角色的实例,将与状态相关的操作委托给当前的Concrete State对象来处理。 2 抽象状态(State):定义一个接口以封装使用上下文环境的的一个特定状态相关的行为。3 具体状态(Concrete State):实现

2017-04-20 20:44:16 476

原创 Java设计模式之观察者模式

一、定义 观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态发生变化时,会通知所有观察者对象,使它们能够自动更新自己。 二、角色   1 抽象主题(Subject):它把所有观察者对象的引用保存到一个集合里,每个主题都可以有任何数量的观察者。抽象主题提供一个接口,可以增加和删除观察者对象。  2 具体主题(ConcreteSubject):将有关状

2017-04-19 16:28:08 299

原创 Java设计模式之模板模式

一、定义  定义一个操作中的算法的骨架,而将步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义算法的某些特定步骤。简而言之,就是父类定义的抽象方法交由子类实,并定义了模板方法,给出了逻辑的骨架,而逻辑的组成就是父类的抽象方法,它们推迟到子类去实现。 二、 角色1、 抽象类(AbstractClass):定义了抽象方法和模板方法,定义了算法的骨架。2、 具体类(ConcreteC

2017-04-19 14:51:17 350

原创 Java设计模式之解析器模式

一、定义: 给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子。这种官话理解起来有点蛋疼。举个例子说明上述含义。“给定一个语言,定义它的文法的一种表示”,就是定义一个语言的规则,比如定义一个以阿拉伯数字0开头和以0结束的规则;“并定义一个解释器,这个解释器使用该表示来解释语言中的句子”:定义一个解析器,解析传过来的参数,若符合以阿拉伯数字0开头和以0结束

2017-04-19 09:59:25 510

原创 Java设计模式之命令模式

定义:将一个请求封装成一个对象,从而让你使用不同的请求把客户端参数化,对请求排队或者记录请求日志,可以提供命令的撤销和恢复功能。 命令模式涉及的角色: 1.Command:抽象命令类 定义命令的接口,声明执行的方法。 2.ConcreteCommand:具体命令类 命令接口实现对象,通常会持有接收者,并调用接收者的功能来完成命令要执行的操作。 3.Receiver:接收者 接收者,真正

2017-04-17 12:58:02 287

原创 Java设计模式之责任链模式

责任链模式的官方定义:很多对象由每一个对象对其下家的引用而连接起来形成一条链。请求在这个链上传递,直到链上的某一个对象决定处理此请求。 责任链模式的角色: 1.Handler:抽象处理者,定义出一个处理请求的接口。 2.ConcreteHandler:具体处理者,具体处理者接到请求后,可以选择将请求处理掉,或者将请求传给下家。 3.Request:抽象请求者,定义请求接口。

2017-04-16 12:50:11 405

原创 Java设计模式之建造者模式

建造者模式的官方定义:将一个复杂对象的构造与它的表示分离,使同样的构建过程可以创建不同的表示,这样的设计模式被称为建造者模式。拿建造房子举例。复杂的对象就是房子;它的表示就是要建造成什么样的房子,如中式房子或者西式房子;同样的构建过程:建造地基、建造墙体、建造地板等构建过程都是相同的;创建不同的表示:建造不同样式的房子。 建造者模式涉及几个角色:  1. builder:抽象建造者,

2017-04-15 23:40:59 879

原创 Java设计模式之单例模式

单例模式是一个类有且仅有一个实例的设计模式。单例模式又分为饿汉模式、懒汉模式、DCL模式和静态内部类模式。 1.饿汉模式:加载类的时候就实例化对象,缺点是加载类的时候速度慢,若实例不被调用,则造成资源浪费;优点是调用实例时,速度快。饿汉模式是线程安全的。package com.example.singleinstance;/** * 饿汉模式 * @author zeng * */pu

2017-04-13 18:17:03 785

原创 Java设计模式之原型模式

原型模式属于对象的创建模式。通过给出一个原型对象来指明所创建的对象的类型,然后用复制这个原型对象的方法创建出更多同类型的对象。相比于new出来的对象,原型模式效率高,因为原型直接复制的是对象的二进制,不是先new 对象再赋值。 原型模式的复制分为浅复制和深复制。浅复制中,对象的基本数据类型及其封装类会被复制,而引用类型,如对象、数组和集合类等不被复制;深复制就是复制所有数据,当然包括引用类

2017-04-12 18:31:15 653

原创 Android四大组件之Service

Service:是一个可以在后台执行长时间运行操作而不使用用户界面的Android应用组件。启动Service有两种方式:startServie和bindService。通过startService开启的服务.一旦服务开启, 这个服务和开启他的调用者之间就没有任何的关系了. 调用者不可以访问 service里面的方法. 调用者如果被系统回收了或者调用了ondestroy方法, service还会

2017-04-11 11:25:33 822 1

原创 Activity横竖屏切换后的生命周期

Activity的生命周期包括:onCreate,onStart,onResume,onPause,onStop,onDestroy.onReStart。默认情况下,Activity横竖屏切换后,Activity会被销毁并重新创建。因为Activity中的onSaveInstanceState和onRestoreInstanceState和生命周期密切相关,因此讨论生命周期时,将两者加入其中一起讨论

2017-04-05 21:55:59 1059 4

原创 Android的事件分发机制

Android的事件有点击事件、滑动事件等,这些都是由触摸事件组成的,如点击事件就是由触摸ACTION_DOWN(按下屏幕事件)和ACTION_UP(离开事件)组成。 以下分析一下Android事件分发机制,先post上一些代码: 父类View,继承ViewGroup,重写了dispatchTouchEvent(MotionEvent ev),onInterceptTouchEvent(M

2017-04-01 23:26:17 797 3

原创 Handler机制

Handler机制中涉及到几个比较重要的类:Handler、Looper、Message、和MessageQueue。UI主线程初始化第一个Handler时会通过ThreadLocal创建一个Looper。使用ThreadLocal的目的是保证每一个线程只创建唯一一个Looper。之后其他Handler初始化的时候直接获取第一个Handler创建的Looper。Looper初始化的时候会创建一个消息

2017-03-31 15:54:50 961 5

原创 Android中如何加载一张大图?

Android中加载大图片往往导致内存溢出,也就是OOM,这是为什么呢?因为android操作系统给每个应用程序分配了有限的内存,比如笔者测试的真机为应用程序分配的最大内存为96M(可以通过Runtime.getRuntime().maxMemory()函数获取到 ),而Bitmap对象在内存中所占空间大小与图片本身的像素有关的。默认情况下,bitmap是ARGB_8888类型的,ARGB_888

2017-03-30 18:11:30 1879 3

原创 java常见的算法

一、 排序 1.冒泡排序:数组中越大或越小的元素会经由交换慢慢“浮”到数列的顶端,故名冒泡排序。// 冒泡排序 public int[] bubbleSort(int[] a) { int temp = 0; for (int i = 0; i < a.length; i++) { for (int j = i + 1; j < a.

2017-03-29 23:29:51 795 2

原创 android基本数据结构

Java基本的数据结构和算法也是Android基本的数据结构和算法。Android常见的数据结构是数组和集合类。集合类分为:1.List结构的集合类:ArrayList、LinkedList、Vector、Stack;Arraylist是线性顺序数据结构,而LinkedList是线性链表数据结构。也就是说,Arraylist集合中的元素内存地址是一个挨着一个,当知道第一个元素的内存地址

2017-03-28 15:52:55 3423 3

Java原型模式

java 设计模式之原型模式

2017-04-12

startService

通过startService的方式播放音乐

2017-04-11

bindService的demo

bindService的demo

2017-04-11

测试Android事件分发机制的demo

测试Android事件分发机制的demo

2017-04-01

自定义Handler

通过自定义Handler、Looper、 MessageQueue和 Message类,让大家更深入地理解Android 的Handler机制

2017-03-31

stack(栈)在android 中的运用

stack(栈)在android 中的运用:自定义了一个Activity栈管理Activity

2017-03-28

Android UDP 服务端和客户端的demo

Android UDP 服务端和客户端的demo

2016-02-22

swipelistview

关于swipelistview的很好的demo

2016-01-18

Socket 长连接

关于socket的长连接,希望对你有启发

2016-01-16

植物大战僵尸(简单版)

植物大战僵尸(简单版),对于学习android案例有帮助

2016-01-10

ImageLoader demo

关于ImageLoader的demo,免费提供,希望对你有用。

2016-01-10

Fragment demo

关于Fragment的demo,希望对大家有用

2016-01-10

VolleyDemo

VolleyDemo,内容强大,知识全面,Volley的request内容如下:ImageLoader,JsonObjectRequest,StringObjectRequest,Gson Request和SSl Connection

2015-06-22

Volley.jar

Volley.jar,volley网络通讯框架的jar包,希望对你有用

2015-06-22

空空如也

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

TA关注的人

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