自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(149)
  • 资源 (5)
  • 收藏
  • 关注

原创 Android使用OkHttp框架下载网络图片

一、OkHttp简介OkHttp是一款优秀的HTTP框架,它支持get请求和post请求,支持基于Http的文件上传和下载,支持加载图片,支持下载文件透明的GZIP压缩,支持响应缓存避免重复的网络请求,支持使用连接池来降低响应延迟问题。OkHttp官网地址:http://square.github.io/okhttp/ OkHttp GitHub地址:https://github.com/squ

2016-11-04 11:42:38 13824 3

原创 Android之打造ListView的万能适配器

一、Android适配器简介在Android中,适配器扮演者重要的角色,是UI与Data实现绑定的一个桥梁。Adapter负责创建和显示每个项目的子View和提供对下层数据的访问。支持Adapter绑定的UI控件必须扩展AdapterView抽象类。二、传统的ListView适配器写法我们一向写的自定义适配器,就是继承ArrayAdapter,或者继承自BaseAdapter,然后重写4个方法,前三

2016-11-02 22:46:12 1331

原创 Android之使用HttpURLConnection进行网络访问

一、概述在Android 上发送HTTP 请求的方式一般有两种:HttpURLConnection 和HttpClient。因为在Android 5.0之后,HttpClient被HttpURLConnecetion替代,后来在Android 6.0完全被舍弃,所以本文重点讲解HttpURLConnecetion。二、HttpURLConnecetion的使用步骤(1)首先需要获取到HttpURLC

2016-11-01 16:34:54 5683 1

原创 Android之异步消息处理机制详解

一、在子线程中更新UI概述和许多其他的GUI 库一样,Android 的UI 也是线程不安全的。也就是说,如果想要更新应用程序里的UI 元素,则必须在主线程中进行,否则就会出现异常。但是有些时候,我们必须在子线程里去执行一些耗时任务,然后根据任务的执行结果来更新相应的UI 控件,这该如何是好呢?对于这种情况,Android 提供了一套异步消息处理机制,完美地解决了在子线程中进行UI 操作的问题。二、

2016-11-01 14:52:22 937

原创 Android之AsyncTask详解

一、AsyncTask介绍AsyncTask:异步任务,从字面上来说,就是在我们的UI主线程运行的时候,异步的完成一些操作。AsyncTask允许我们在后台执行一个耗时的异步的任务,并随时将任务执行的结果返回给我们的UI线程来更新我们的UI控件。AsyncTask 背后的实现原理是基于异步消息处理机制的,只是Android 帮我们做了很好的封装而已。AsyncTask允许在UI线程上执行后台操作和发

2016-10-30 19:56:02 1616

原创 Android之内容提供器Content Provider详解(二)

上一篇 Android之内容提供器Content Provider详解(一)讲解了Content Provider之访问其他程序中的数据,本篇继续讲解创如何建自己的内容提供器本博文是《第一行代码 Android》的读书笔记/摘录。三、创建自己的内容提供器在上一篇中,我们学习了如何在自己的程序中访问其他应用程序的数据。总体来说思路还是非常简单的,只需要获取到该应用程序的内容URI,然后借助Conten

2016-10-30 09:36:12 1129

原创 Android之内容提供器Content Provider详解(一)

一、Content Provider简介内容提供器(Content Provider)主要用于在不同的应用程序之间实现数据共享的功能,它提供了一套完整的机制,允许一个程序访问另一个程序中的数据,同时还能保证被访数据的安全性。目前,使用内容提供器是Android 实现跨程序共享数据的标准方式。不同于文件存储和SharedPreferences 存储中的两种全局可读写操作模式,内容提供器可以选择只对哪一

2016-10-28 21:10:29 1331 1

转载 Android之数据存储详解(三)之网络存储数据

前面介绍的几种存储都是将数据存储在本地设备上,除此之外,还有一种存储(获取)数据的方式,通过网络来实现数据的存储和获取。我们可以调用WebService返回的数据或是解析HTTP协议实现网络数据交互。【以下案例转载自http://blog.csdn.net/liranke/article/details/7670595】 下面是一个通过地区名称查询该地区的天气预报,以POST发送的方式发送请求到w

2016-10-27 18:56:19 1591

原创 Android之数据存储详解(二)之SQLite数据库存储数据

上一篇 Android之数据存储详解(一)讲解了文件存储数据和使用SharedPreferences存储数据,接下来讲解 SQLite数据库存储数据。一、SQLite数据库简介SQLite是一款轻型的数据库,是遵守ACID的关联式数据库管理系统,它的设计目标是嵌入 式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。它能够支持 Windo

2016-10-27 12:28:58 1701 2

原创 Android之数据存储详解(一)之文件存储和SharedPreferences存储

数据存储被广泛应用在Android中,这里主要介绍Android中实现数据存储的5种方式,分别是:1 、文件存储数据2 、使用SharedPreferences存储数据3、 SQLite数据库存储数据4 、网络存储数据5、使用ContentProvider存储数据 这几种方式各自有各自的优点和缺点,要根据不同的实际情况来选择,下面就各种方式进行详细介绍。 一、文件存储数据文件存储是Android 中

2016-10-26 19:31:54 1669

原创 Java IO操作详解

在Java编程中,IO(输入输出)是重要的组成部分,Java应用常常需要从外界输入数据或者把数据输出到外界。Java IO的核心用一句话概括:抽象类或接口之中的抽象方法会根据实例化子类的不同,会完成不同的功能。所有的IO操作都在java.io包之中进行定义,而且整个java.io包实际上就是五个类和一个接口: (1)五个类:File、InputStream、OutputStream、Reader、

2016-10-26 13:03:01 7044 6

原创 Android之BroadcastReceiver详解

本博文是《第一行代码 Android》的读书笔记摘录。一、广播机制简介Android中的广播机制设计的非常出色,很多事情原本需要开发者亲自操作的,现在只需等待广播告知自己就可以了,大大减少了开发的工作量和开发周期。而作为应用开发者,就需要数练掌握Android系统提供的一个开发利器,那就是BroadcastReceiver。Android 中的广播主要可以分为两种类型,标准广播和有序广播。标准广播(

2016-10-25 21:33:41 895

原创 Android之IntentService

我们知道,服务中的代码都是默认运行在主线程当中的,如果直接在服务里去处理一些耗时的逻辑,就很容易出现ANR(Application Not Responding)的情况。所以这个时候就需要用到Android 多线程编程的技术了,我们应该在服务的每个具体的方法里开启一个子线程,然后在这里去处理那些耗时的逻辑。因此,一个比较标准的服务就可以写成如下形式:public class MyService ex

2016-10-25 16:59:38 463

原创 Android之Service详解(二)

上一篇Android之Service详解(一)讲解了Service的定义、开启和关闭以及生命周期,接下来讲解Service与Activity间的通信,以及IntentService等内容。一、Service与Activity间的通信在上一篇中我们学习了启动和停止服务的方法,不知道你有没有发现,虽然服务是在活动里启动的,但在启动了服务之后,活动与服务基本就没有什么关系了。确实如此,我们在活动里调用了s

2016-10-25 16:42:41 501

原创 Android之Service详解(一)

一、Service简述Service是Android四大组件之一,通常称之为“后台服务”,其中“后台”一词是相对于前台而言的,具体是指其本身的运行并不依赖于用户可视的UI界面,使用Service可以在后台执行长时间的操作,Service并不与用户产生UI交互。其他的应用组件可以启动Service,即便用户切换了其他应用,启动的Service仍可在后台运行。一个组件可以与Service绑定并与之交互,

2016-10-25 11:17:31 598

转载 Android Studio 代码检查Lint工具

Android Studio作为Google官方推荐的IDE,功能非常强大,其中提供了一套静态代码分析工具,它可以帮助我们检查项目中存在的问题,让我们更有规范性的开发App。它可以检查出:xml文件中是否存在hardcode硬编码、unused resources没有使用到的资源、probable bug可能的bug等等。那么现在我们来测试使用它看看:Android Lint的使用

2016-10-19 17:34:35 666

原创 强烈推荐的几个Android studio插件

1、GenymotionGenymotion是测试Android应用程序,使你能够运行Android定制版本的旗舰工具。它是为了VirtualBox内部的执行而创建的,并配备了一整套与虚拟Android环境交互所需的传感器和功能。使用Genymotion能让你在多种虚拟开发设备上测试Android应用程序,并且它的模拟器比默认模拟器要快很多。如果你想要确保你开发的应用程序能

2016-10-19 17:24:23 1337

原创 Java 正则表达式详解

一、正则表达式的引出先完成一个简单的程序:判断一个字符串是否全部由数字组成。public class TestDemo { public static void main(String[] args) throws Exception { String str = " 13412a 4124214141232"; if (isNumber(str)) {

2016-10-17 15:00:30 914

原创 Java 异常的捕获与处理详解(二)

上一篇Java 异常的捕获与处理详解(一)讲了异常的产生、处理以及处理流程,接下来讲其他内容。一、throws关键字thrwos关键字主要是在方法定义上使用的,表示的是此方法之中不进行异常的处理,而交给被调用处处理。例如:class MyMath { public int div(int x, int y) throws Exception { return x / y;

2016-10-17 12:00:54 12516 2

原创 Java 异常的捕获与处理详解(一)

一、异常的产生异常是程序之中导致程序中断的一种指令流,异常一旦出现并且没有进行合理处理的话,那么程序就将中断执行。 下面,通过两个程序来进行异常产生问题的对比。 (1)不产生异常的程序:public class Test { public static void main(String args[]) { System.out.println("1、除法计算开始。");

2016-10-17 10:45:05 24912 11

原创 Java 泛型详解(二)

上一篇 Java 泛型详解(一)介绍了泛型的引出、定义和使用,已经泛型的通配符。下面继续介绍泛型接口和f泛型方法。一、泛型接口使用泛型定义的接口可以称为泛型接口。例如:interface Message<T> { // 泛型接口 public String getInfo(T msg) ;}泛型接口的实现,在Java之中有两种方式:(1)在子类上继续定义泛型,同时此泛型在接口上继续使用、

2016-10-16 23:53:01 907

原创 Java 泛型详解(一)

一、泛型的引出假设要求定义一个表示坐标的操作类(Point),这个类可以表示三种类型的坐标: (1)整数坐标:x = 10、y = 20; (2)小数坐标:x = 10.1、y = 20.3; (3)字符串数据:x = “东经100度”、y = “北纬20度”。分析:类中如果想保存以上的数据,一定需要定义x和y两个属性,而这两个属性可以接收三种数据类型,这样的话,只能使用Object类来定义会

2016-10-16 23:28:49 2022 4

原创 Java 构造方法私有化与单例模式

先看一个程序:class Singleton { // 定义一个类 public void print() { System.out.println("Hello World"); }}public class Test { public static void main(String args[]) { Singleton inst = n

2016-10-16 19:30:05 3321

原创 Java 多线程详解(三)

一、线程的同步与死锁1、线程同步问题的引出所谓的同步问题指的是多个线程操作同一资源时所带来的安全性问题。例如,下面模拟一个简单的卖票程序,要求有5个线程,卖6张票。package com.wz.threaddemo;class MyThread implements Runnable { private int ticket = 6; @Override public void

2016-10-13 11:45:01 1019

原创 Java 多线程详解(二)

上一篇Java 多线程详解(一)讲解了线程的一些基本概念和多线程的实现方式。接下来将讲解实现多线程主要的两种方式的区别和多线程的常用操作方法等。一、Thread类和Runnable接口实现多线程两种方式的区别Thread类和Runnable接口都可以做为同一功能的方式来实现多线程,那么从Java的实际开发而言,肯定优先考虑使用Runnable接口,因为可以有效的避免单继承的局限,除了这个,这两种方式

2016-10-12 11:54:41 1067 1

原创 Java 多线程详解(一)

一、进程与线程1、进程是什么?狭义定义:进程是正在运行的程序的实例(an instance of a computer program that is being executed)。广义定义:进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动。它是操作系统动态执行的基本单元,在传统的操作系统中,进程既是基本的分配单元,也是基本的执行单元。2、线程是什么?线程,有时被称为轻量级进程(Li

2016-10-11 18:10:53 2185 3

原创 Java 覆写(Override)详解

一、覆写概念既然现在出现了继承的关系,那么就存在了子类和父类的联系,而在子类之中有可能定义和父类完全相同的方法或属性的名称,这个时候就称为覆写了。二、方法的覆写当子类定义了和父类在方法名称、返回值类型、参数类型及个数完全相同的方法的时候,称为方法的覆写。没有覆写的操作:package com.wz.overridedemo;class A { public vo

2016-10-11 13:13:03 15359 1

原创 Java 继承(extends)详解

一、继承问题的引出继承性是面向对象的第二大主要特征。 下面首先编写两个程序:Person类、Student类。Person类:class Person { private String name ; private int age ; public void setName(String name) {

2016-10-11 10:55:19 111386 14

原创 Java 内部类详解

一、前言内部类平时编写代码时可能用到的场景不多,用得最多的是在有事件监听的情况下。从开发的角度来讲,内部类能少用就少用,优先考虑普通类。二、内部类的基本概念在Java中,可以将一个类定义在另一个类里面或者一个方法里面,这样的类称为内部类。内部类形式如下:package com.wz.innterclassdemo;class Outer { // 外部类 private String msg

2016-10-10 16:29:21 1314

原创 Java 代码块详解

在程序编程中,可以直接使用“{}”定义一段语句。根据定义的位置以及声明关键字的不同,可以分为四种:普通代码块、构造代码块、静态代码块和同步代码块。一般来说代码块是不能单独运行的,它必须要有运行主体。一、普通代码块普通代码块是定义在方法之中的代码块。我们先观察一下代码:package com.wz.thisdemo;public class TestDemo { public static v

2016-10-09 19:53:13 1156

原创 Java 关键字static详解

一、static基本描述对于关键字static ,大家应该不会陌生,因为一直编写: public static void main(String args[]) {...}那static表示什么呢?static表示“全局”或者“静态”的意思,用来修饰成员变量和成员方法,也可以形成静态static代码块,但是要注意一点:Java语言中没有全局变量的概念。 二、使用static定义属性我们先来看一个表

2016-10-09 15:57:16 6248 3

原创 Java 关键字this详解

在整个Java中,只要是代码开发,几乎都离不开this。在Java中this可以完成三件事情:表示本类属性、表示本类方法、当前对象。一、“this.属性”表示本类属性讲解之前,我们先看一段代码:package com.wz.thisdemo;class Person { private String name ; private int age ; public Person

2016-10-09 11:52:48 6915 5

原创 Java String类详解(二)

上一篇Java String类详解(一)讲了String类对象的两种实例化方式及其区别,字符串比较,以及String类的特点,我们接着来讲String类的常用方法。一、字符串的常用方法 — 字符与字符串很多编程语言利用了字符数组的概念来描述字符串的概念,在String类的方法上也有所体现。一个例子:字符串和字符数组转换,完成一个小写字符串变为大写字符串的操作public class StringDe

2016-10-08 23:22:35 2348 1

原创 Java String类详解(一)

String类是一个字符串类型的类,使用“XXXX”定义的内容都是字符串,虽然这个类在使用上有一些特殊,但是String本身是一个类。一、String的实例化两种方式1、直接赋值实例化:String StringName= "xxx";以上是String对象的直接赋值,以上的代码并没有使用关键字new进行。String类也是类,所以也有构造方法。2、使用构造方法实例化:public String(S

2016-10-08 22:11:03 12005 5

原创 Java类和对象 详解(二)

上一篇Java类和对象 详解(一)讲解了类和对象的基本概念,定义和使用,以及对象引用传递的初步分析,下面接着来讲其他内容。一、面向对象的封装性封装(encapsulation)又叫隐藏实现(Hiding the implementation)。就是只公开代码单元的对外接口,而隐藏其具体实现。比如手机,手机的键盘,屏幕,听筒等,就是其对外接口。你只需要知道如何按键就可以使用手机,而不需要了解手机内部的

2016-10-07 17:52:38 20471 13

原创 Java类和对象 详解(一)

一、面向对象简述面向对象是一种现在最为流行的程序设计方法,几乎现在的所有应用都以面向对象为主了,最早的面向对象的概念实际上是由IBM提出的,在70年代的Smaltalk语言之中进行了应用,后来根据面向对象的设计思路,才形成C++,而由C++产生了Java这门面向对象的编程语言。但是在面向对象设计之前,广泛采用的是面向过程,面向过程只是针对于自己来解决问题。面向过程的操作是以程序的基本功能实现为主,实

2016-10-06 20:48:02 180274 126

原创 Java接口 详解(二)

上一篇Java接口 详解(一)讲到了接口的基本概念、接口的使用和接口的实际应用(标准定义)。我们接着来讲。一、接口的应用—工厂设计模式(Factory)我们先看一个范例:package com.wz.factoryDemo;interface Fruit{ public void eat();}class Apple implements Fruit{ @Override p

2016-10-06 12:16:01 7697 3

原创 Java接口 详解(一)

一、基本概念接口(Interface),在JAVA编程语言中是一个抽象类型,是抽象方法的集合。接口通常以interface来声明。一个类通过继承接口的方式,从而来继承接口的抽象方法。如果一个类只由抽象方法和全局常量组成,那么这种情况下不会将其定义为一个抽象类。只会定义为一个接口,所以接口严格的来讲属于一个特殊的类,而这个类里面只有抽象方法和全局常量,就连构造方法也没有。范例:定义一个接口interf

2016-10-06 00:46:42 125978 37

原创 Java抽象类 详解

一、抽象类的基本概念普通类是一个完善的功能类,可以直接产生实例化对象,并且在普通类中可以包含有构造方法、普通方法、static方法、常量和变量等内容。而抽象类是指在普通类的结构里面增加抽象方法的组成部分。那么什么叫抽象方法呢?在所有的普通方法上面都会有一个“{}”,这个表示方法体,有方法体的方法一定可以被对象直接使用。而抽象方法,是指没有方法体的方法,同时抽象方法还必须使用关键字abstract做修

2016-10-05 00:06:35 186342 67

原创 Java反射机制 详解

一、什么是反射机制JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。“程序运行时,允许改变程序结构或变量类型,这种语言称为动态语言”。Java不是动态语言。但是Java有着一个非常突出的动态相关机制:Reflection,用在Java身上指的是

2016-10-03 23:39:46 1388 3

OkhttpDemo

一个使用Okhttp框架下载网络图片的demo,具体讲解请移步到博客http://blog.csdn.net/wei_zhi/article/details/53033299

2016-11-04

万能适配器项目案例

本案例详细讲解请移步到http://blog.csdn.net/wei_zhi/article/details/53010351

2016-11-02

AsyncTaskDemo

AsyncTaskDemo,具体讲解见http://blog.csdn.net/wei_zhi/article/details/52972230

2016-10-30

使用Content Provider案例

这是使用Content Provider案例源码,详细讲解请移步http://blog.csdn.net/wei_zhi/article/details/52960073

2016-10-30

viewpager+fragment.zip

使用ViewPager+Fragment实现页面点击切换和手势滑动; 具体描述和讲解请移步博客http://blog.csdn.net/wei_zhi/article/details/50609119

2016-01-29

空空如也

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

TA关注的人

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