自定义博客皮肤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)
  • 问答 (1)
  • 收藏
  • 关注

原创 自定义CreateChooser,实现携带附件邮件的发送。

场景当我们的应用需求里面,需要发送邮件的时候。我们通常并不会自己去实现一个邮件App,而是通过隐式Intent的方式转发到其他App,我们只是需要添加一些相应的数据而已。Android的官方文档告诉我们,发送邮件我们可以通过如下三个Action: ACTION_SENDTO(适用于不带附件) ACTION_SEND(适用于带一个附件) ACTION_SEND_MULTIPL

2018-01-16 21:22:48 517

原创 Failed to resolve问题的解决

问题:今天在引入GreenDao的DaoSample时,总是会出现Failed to resolve包的问题。 最后经大神解救,发现是需要在build.gradle里面添加如下代码,表示所有都依赖这两个库:allprojects { repositories { jcenter() google() }}

2017-12-27 16:29:52 14549

原创 OkHttp3之缓存应用

1、概论在上一篇文章里面,我们详细的剖析了HTTP协议的缓存机制。但那主要是从服务器端进行分析的,这有助于我们理解HTTP的缓存机制,并为我们用好OkHttp3这一客户端的封装库提供更为清晰的思路。知其原理,才能事半功倍。如果对于HTTP协议的缓存机制还不是很不清楚,可以去看下上一篇博客HTTP协议进阶之缓存本篇文章主要从客户端的缓存控制出发,探讨如何利用OkHttp3是如何对缓存进行控制的。2、请

2017-11-01 23:41:33 681

原创 HTTP协议进阶之缓存

1、概论1.1、 什么是缓存?Web缓存是可以自动保存常见文档副本的HTTP设备。当Web请求抵达缓存时,如果本地有“已缓存的”副本,就可以从本地存储设备而不是原始服务器中提取这个文档。因此,可以这样理解,缓存拦截了客户端的请求,代替服务器端做出响应。1.2、缓存的作用使用缓存主要有如下几个有点:缓存减少了冗余的数据传输,节省了你的网络费用。缓存缓解了网络瓶颈问题。不需要更多的带宽就能够更快的加

2017-10-30 18:09:25 328

原创 HTTP协议基础

概述HTTP协议全称为超文本传输协议(HyperText Transfer Protocol),它使得网络上的Web浏览器、服务器和相关的Web应用程序之间的通信成为可能。HTTP是现代全球因特网中使用的公共语言。 上图是表示了Web客户端和服务器通信的大致过程。客户端对HTTP发送一个获取资源的请求,服务器端返回该资源给客户端,并且附加一些额外信息,这有利于客户端采取合理的方式解析资源。在这一过

2017-10-29 14:48:07 439

原创 Android Studio升级到3.0,抛出Aapt2Exception异常

问题描述昨天把Android Studio 升级到了3.0。一打开项目或者新建项目都会抛出Aapt2Exception异常。具体log如下: 解决方案最后在万能的stackoverflow上面找到了答案,只需要在gradle.properties中加入下行代码:android.enableAapt2=false附上原文地址:stackoverflow解决Aapt2Exception异常

2017-10-27 09:33:05 15112 4

原创 Gson完全教程:基础篇

Gson是google推出的用于Java对象和JSON之间序列化和反序列化的公开库。使用Gson可以使我们的JSON解析工作更加方便。 如果你还不懂得JSON是什么,请查看它的JSON官方文档,我觉得这是最言简意赅的说明。 如果你想从大体上知道Gson用法而不追究细节,那么你可以先大体的浏览一下Gson的官方用户指南。它的原址在这里Gson User Guide。如果你不喜欢看英文,我也为你提供

2017-10-25 16:49:34 799

原创 Gson教程十三:模型版本化、日期格式化、漂亮输出

由于Gson Tutorial Series系列教程关于这三部分没有开放,因此自己完成本部分内容,有些内容翻译自相关API,有些内容自己所创,由于能力有限,如有错误还请指出,以后网站相关内容公布后,再行翻译至此模型版本化Gson可以通过@Since注解以及@Until注解来为你的Java对象设置版本控制,如此,则你的模型类里面被以上两个注解标记了的成员变量,将只有符合特定版本范围内时才会被序列化和反

2017-10-25 15:38:40 393

翻译 Gson教程十二(译):Float和Double类型的特殊值

该文章翻译自Gson Tutorial Series系列教程。该篇主要阐述了Gson如何处理Float和Double类型的特殊值。上一篇博客中,我们探讨了如何使得JSON的转换具有仁慈性。仁慈性意味着允许JSON某些地方不遵循标准而Gson依然能够解析。在这篇博客中,我们将探究一种允许非标准输入的情况:Gson如何处理Float和Double类型的特殊值(比如**Float.NEGATIVE_IN

2017-10-25 14:26:57 1536

翻译 Gson教程十一(译):轻松使用仁慈的Gson(容错机制)

该文章翻译自Gson Tutorial Series系列教程。该篇主要阐述了当JSON为按标准书写时,Gson会以什么方式应对。注:文中的“仁慈的”一词翻译自英文Lenient,其大意是具有一定的容错机制,因为不好翻译,所以暂且如此 JSON内容的格式必须完全遵守一些标准规则。该标准是在RFC4627规范描述的。它所依赖的基础是键和值的分离,数组是如何结构化的等等。在这篇博客中,我们将会探索Gs

2017-10-25 12:21:37 2222

翻译 Gson教程十(译):Exclusion Strategies

该文章翻译自Gson Tutorial Series系列教程。该篇主要阐述如何自定义Gson的排除策略(Exclusion Strategies)。在之前发表的博客中,你已经学习了一些关于控制某些属性是否会被序列化和反序列化的技术。到目前为止,这还处于属性层级。你可以在同一时间改变序列化和反序列化的某一要素。在本篇博客,我们将探讨一种如何设置更多普遍规则的方式来空值属性的转换。 比transie

2017-10-25 11:40:15 2813

翻译 Gson教程九(译):强制序列化null值

该文章翻译自Gson Tutorial Series系列教程。该篇主要阐述了强制序列化null值。在上一篇博客中,我们已经向你展示了GsonBuilder的基础。GsonBuilder可以用于自定义Gson的行为,从而影响序列化和反序列化的方方面面。在这篇博客中,你将学会如何使用强制Gson序列化空值。空值的序列化还记得之前发布的关于空值映射的博客吗?它通过很多例子向我们展示了,当值为空时Gson

2017-10-25 10:32:30 1391

翻译 Gson教程八(译):GsonBuilder基础和命名策略

该文章翻译自Gson Tutorial Series系列教程。该篇主要阐述了如何使用GsonBuilder以及命名策略。 在这一系列之前发布的博客中,你已经学会了使用Gson将Java对象转换为JSON或与之相反。到目前为止,我们已经向你展示如何建构一个模型,对于得到正确的映射来说什么是重要的。从这篇博客开始,我们将会发表这一系列教程中的多篇博客,这会使你知道如何使用GsonBuilder去自定

2017-10-25 09:50:06 740

翻译 Gson教程七(译):@SerializedName和@Expose

该文章翻译自Gson Tutorial Series系列教程。该篇探究的是如何使用如何使用@Expose忽略某些域以及使用@SerializedName改变域名。使用@Expose忽略某些域@Expose注解模型在阅读了之前关于处理空值的教程后,你可能会想,你能够将一个Java对象设置为空值,但如何才能够使之不出现在JSON中呢?这在你不想传送你的私有或者敏感数据到网络上时是必要的。不用担心,Gs

2017-10-24 11:09:06 3057

翻译 Gson教程六(译):空值的映射

该文章翻译自Gson Tutorial Series系列教程。该篇主要阐述了如何使用Gson映射空值。值为空时将会发生什么?我们假设你已经阅读了我们关于Gson的首篇博客,里面介绍了UserSimple类以及它的成员变量。在我们之前的例子中,所有的值都设置了。如果某个值为空将会发生什么?例如,我们创建了一个user,他拥有邮件,年龄而且是一名开发者,但是名字为空。UserSimple userOb

2017-10-23 17:45:58 650

翻译 Gson教程五(译):Sets的映射

该文章翻译自Gson Tutorial Series系列教程。该篇主要阐述了如何使用Gson映射Sets。序列化Java SetsJava的集合框架包括大量的数据结构。我们已经讨论过lists和maps,它们在JSON的表达中有些许不同。这周,我们探究Sets。HashSet可以使你的数据集合例子中的值保持唯一性。因为sets有其存在的理由并且应用有现实世界,Gson也需要有能力去处理它们。 因

2017-10-23 17:23:29 279

翻译 Gson教程四(译):Maps的映射

该文章翻译自Gson Tutorial Series系列教程。该篇主要阐述了如何使用Gson映射Maps。Java Maps的序列化Java maps是一种非常具有弹性数据类型,它可以用于各种各样的场景。它使得我们开发者运用Java程序语言可以实现很多真实世界的场景。因为Java maps的使用范围如此之广,因此这里可能不会和你的用例相同,但方法时适合所有用例的。 让我们从这样一个场景开始,你的

2017-10-23 16:51:22 311

翻译 Gson教程三(译):Arrays和Lists的映射

该文章翻译自Gson Tutorial Series系列教程。该篇主要阐述了如何使用Gson映射Arrays和List集合对象。Arrays和Lists之间的不同在进入正题之前,我们想阐述一下Arrays和Lists这两种Java数据结构。他们的Java实现是不同的并且各有各的优势。在你的用例中采取哪种方式取决于软件需求以及你个人的喜好。有趣的是,什么是选择list还是array结构映射到JSON

2017-10-23 13:39:14 614

翻译 Gson教程二(译):嵌套对象的序列化和反序列化

该文章翻译自Gson Tutorial Series系列教程。该篇主要阐述了如何使用Gson映射嵌套类。嵌套对象的序列化我们希望通过实际的例子来阐述功能,因此让我们来扩展我们的UserSimple模型。在之前的发布中,user模型仅仅有一些基本的Java类型:public class UserSimple { String name; String email; boo

2017-10-23 09:52:45 3271

翻译 Gson教程一(译):Java-JSON的序列化和反序列化

之前翻译了Gson User Guide,觉得很多用法还不是很清楚,特翻译Gson Tutorial Series这一系列不错的教程。这里是该系列的首篇。开始Java-JSON的序列化和反序列化之旅Gson依赖该指南是实践性的并会立刻实现一些序列化。因为大部分的读者来自Android开发者,因此这是专门为你们定制的,但是Gson可以用于任何的Java环境。在我们开始之前,我们得将Gson库引进项目

2017-10-22 21:15:45 886

翻译 Gson用户指南(中文翻译)

为了更好的学习Gson,特将Gson User Guide翻译如下。由于本人英文水平有限,如有错误,还请指正,谢谢!Gson用户指南概述Gson是这样一个Java类库,它可以将Java对象转换为相应的JSON形式,也可以将JSON字符串转换为对应的Java对象。Gson是一个开源库,其地址为:http://code.google.com/p/google-gson。 Gson可以使用任意Java

2017-10-22 14:42:14 565

转载 Android模拟器联网

在命令行中输入:emulator  @模拟器名称启动Android 模拟器后, 输入:adb shell进入adb shell模式:通过setprop命令进行设置设置dns,一般如果是通过路由器上网,可以把 dns设置为路由器的默认网关。192.168.1.1。setprop net.dns1 192.168.1.1另外就是设置代理了

2017-05-31 20:10:29 639

原创 如何分两个文件写友元成员函数

如何分两个文件写友元成员函数 在C++ primer(第五版)一书中,讲到友元函数的时候,对于友元成员函数的使用做了如下声明: 1.首先定义Window_mgr类,其中声明了clear函数,但是不能定义它。在clear使用Screen的成员之前必须先声明Screen。 2.接下来定义Screen,包括对于clear的友元声明。 3.最后定义clear,此时它才可以使用Scree

2017-04-08 10:49:45 2234 6

原创 Java中正则表达式中反斜杠的作用

在Think In JAVA第13章中有这么一句话用来解释Java语言中反斜杠'\'的作用原文:在其他语言中,\\表示“我想要在正则表达式中插入一个普通的(字面上的)反斜杠,请不要给它任何特殊的意义。”而在Java中,\\的意思是“我要插入一个正则表达式的反斜线,所以其后的字符具有特殊的意义。”解释:由上段文字可见,在其他的语言中,一个反斜杠\就足以具有转义的作用,而在正则表达式中则需要有

2017-03-29 15:10:28 5039 2

原创 C程序设计语言——例子1.13

#include #define LENGTH 10  /*规定,输出为直方图的单词数只能为LENGTH个*/#define OUT 0 /*输入非字母时候的状态*/#define IN 1 /*输入为字母时候的状态*//**该函数最基本的思想是,*定义一个数组用于保存从第一个出现的单词到最后一个或者规定限度为止的单词的长度,*定义一个变量用于保存最长的单词的长

2017-03-18 11:00:43 479

原创 Android Studio升级到2.3版本后出现gradle解压错误

这些天来用Android Studio做程序开发。当升级到2.3版本再打开的时候,出现了下图这样的错误。心情很不美丽啊,于是在网上找各种资料,有的说把project structure里面的gradle版本换成以前的版本,可是加载的以前的APP项目本来就是以前的gradle版本。还有说,把原项目里面的.gradle文件给删了,Android studio将会重建这个文件。这两种说法都有

2017-03-12 14:51:54 2022 1

空空如也

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

TA关注的人

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