自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

晴天的博客

记录自己的学习进程

  • 博客(19)
  • 资源 (1)
  • 收藏
  • 关注

原创 Retrofit+RxJava 解析返回为null 的情况 Null is not a valid element

开发的时候碰见一种情况,使用Rxjava+Retrofit请求一个接口,返回成功有两种情况,一种是正常返回实体类,http响应码为200,这个时候可以正常解析,另一种是响应码为200,响应体什么都没有,为null。这个时候再去解析的时候就会报如下的错误。Rxjava 当响应体为null 的时候会直接回调 onError 方法java.lang.NullPointerException: Nul...

2020-01-14 19:34:16 4997

原创 Activity 的启动流程源码分析(Android 9.0)

本篇的源码分析基于Android 9 ,targetSdkVersion 为28首先,分析启动流程就要先找到源头,也就是程序的入口,Android启动流程的入口就在 ActivityThread的 main方法中,简短的贴下,省略的一些代码public static void main(String[] args) { // 开启一个主线程的Looper Looper.pr...

2019-11-26 22:12:19 224

原创 谈谈TCP协议的三次握手和四次挥手

TCP协议Transmission Control Protocol 传输控制协议,属于传输层通信协议,基于TCP的应用层协议有Http,smtp,ftp等TCP的特性面向连接: 传输数据之前会先建立连接,数据传输完毕之后释放连接全双工通信:连接建立以后,通信双方能互相发送数据安全可靠:通过TCP传送的数据不丢失,无差错,按序到达TCP 使用校验和,确认和重传机制...

2018-10-25 12:38:09 324

原创 关于Http协议你了解多少,有多少说多少

Http协议超文本传输协议,构建与TCP/IP协议之上,默认端口号为80,处于网络体系结构的最顶层应用层上,Http协议采用的是请求/响应的工作方式。Http是无连接无状态的。Q1:怎么理解Http是无连接无状态的无连接是指限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。无状态是指协议对于事务处理没有记忆能力,服务器不知...

2018-10-24 08:26:45 1599

原创 单例模式的几种实现与在Android源码中的应用

更多的关于设计模式与源码的内容都在我的github 我的博客单例模式 核心原理: 将构造函数私有化,并且通过静态方法获取一个唯一的实例,在这个过程中必须保证线程安全、防止反序列化导致重新生成实例对象等问题。UML 单例模式实现的几种方式饿汉式/** * 饿汉式 */public class Singleton { private ...

2018-04-17 17:37:09 391

原创 Android端“被挤下线”功能的实现

单点登录(被挤下线)所谓的被挤下线功能,即一个账号在A客户端保持登陆状态,然后又在B客户端进行了登陆操作,那么A客户端就会被挤下线。 服务端需要返回Token,每次在app登录时为app分配一个新的token,如果在某次请求中app传递token不是最新的,则视为需要重新登录,在token失效的情况下,返回约定好的codeApp如何知道该账户已经在其他设备上登陆了呢?有三种实现方式 api请求

2017-11-09 10:35:02 4991

原创 常用设计模式---代理模式

概述 为目标对象提供一个代理对象,然后让代理对象控制对目标对象的引用。静态代理:代理类在编译时就已实现好,Java编译完成后代理类就是一个.class文件动态代理:代理类在运行时生成,在运行时动态生成class文件并加载到jvm中使用场景 生活中很多场景都会用到代理模式,最直观的例子就是代购,比如你想要买一款最新的电子产品,但是国内没有,只能找代购到国外淘宝,那么“你”就是一个目标对象,

2017-07-31 19:00:33 363

原创 Android-上传Emoji表情到服务器的问题

先上效果 一开始在做仿微信发朋友圈或评论的时候表情一直上传不上去,和服务端哥们探讨了一下,发现是MySQL数据库存入不了表情符号,Google了一下,有人说当MySQL的版本大于5.6的时候可以通过修改编码还是字符集什么的就可以插入了,但是对我们还是不起作用。所以考虑了一段时间决定另辟蹊径,其实特别简单,只要对上传的内容进行Base64编码就好了,然后请求下来的时候再解码,这样问题就迎刃而解了。上

2017-04-07 22:53:33 5242 2

原创 解决ListView的getView()方法中View设置监听position错乱的问题

最近在项目中遇到了类似微信朋友圈的功能,可以点赞,评论和分享。类似这样的 这是ListView的一个item,点击右下角的view弹出一个popupWindow,然后popupWindow上面还有三个按钮可点击。不管是点赞还是评论,必须的获得当前条目的位置,然后根据这个位置再去获取一系列的参数信息。但是问题来了。当我为这个item点赞或评论的时候,本item没有反应,而其他的item得到了赞或评论

2017-04-07 22:49:16 2775

原创 Android-构建全局的异常捕捉类

整体思路构建Android应用全局的异常信息捕捉类,当App Crash的时候,能够获取崩溃信息,包括ExceptionMessage,手机信息,版本信息等。然后写入文件存到手机sd卡中。当应用下次开启的时候读取文件上传服务器,为后期的热修复做准备。首先新建一个ExceptionCrashHandler类实现Thread.UncaughtExceptionHandler接口,并重写uncaughtE

2017-04-07 22:41:20 364

原创 Handler 机制 源码分析

看之前先问自己下面几个问题:Message 是怎么获取到消息对象的消息是怎么加入到消息队列中的,又是怎么被取出来的到底是怎么实现子线程和主线程的通信的Handler sendMessage 是把消息发送到哪里了Handler 处理消息的方法有几种消息传递机制的核心类: Handler Message MessageQueue Looper 下面是自己看

2016-10-27 23:21:41 420

原创 Android MVP 模式初探

MVP 模式

2016-10-22 21:40:09 303

原创 ListView的头部视差效果的实现

ListView的头部视差效果的实现

2016-10-06 12:40:04 1109 2

原创 Android.线程池的原理和线程池管理类的使用

##线程池的原理 线程池使用来管理线程的,之所以称为池,是因为其可以管理多条线程,所以需要用一个集合来管理线程,然后线程池是有大小的,当一个线程池管理的线程数目为计算机的cup数*2+1个的时候,效率为最高。当使用线程池来执行异步任务的时候,线程池会先将这个任务添加到集合中,然后为其创建一个线程,线程方法中有一个while true一直在循环,当集合的size大于0的时候,也就是集合中有异步任务

2016-08-26 21:08:17 1679

原创 ButterKnife Android studio初试:配置环境,解决空指针问题

早就听说ButterKnife非常的方便,今天有机会自己实践一下,看着别人的教程在studio上搞了一遍,可是到运行的时候总是出现空指针异常,经过搜索,最后找到了问题所在。就是环境没有配好,可能是因为随着版本的更新每次配置也都不一样了。我所用的ButterKnife的版本是com.jakewharton:butterknife-compiler:8.2.1。我会把具体的代码贴到文章的最后。

2016-08-23 18:08:16 2539

原创 Android studio 1.2开发环境下配置AIDL,生成相应的.java文件

最近学习Android要从eclipse的开发环境转到Android studio下,各种不适应,不过Android studio酷炫的界面一直吸引着我,另外据说这是早晚的事,所以早点适应就好,自己就硬着头皮摸索着使用Android studio。今天学习了Android访问远程服务中的方法。所谓访问远程服务中的方法,就是进程之间的通信,一个应用要访问另外一个应用中的一个方法。明显为了保障一些隐私这

2015-09-28 15:50:38 1045

原创 win10配置java环境变量,解决javac不是内部或外部命令等问题

昨天重装了win10系统,发现以前配好的java环境变量和tomcat环境变量全都清空了,在重新配置的时候总是出现问题,即在cmd命令窗口下,输入java,显示正常,输入java -version 也是显示正常,唯独输入javac,显示“javac不是内部或外部命令,布拉布拉一些的问题”,然后我就开始各种百度各种谷歌,终于在大半夜把这个问题搞定了。。。来看看我的新博客下面来说说这个问题的解...

2015-09-12 10:39:22 152588 198

原创 Activity的生命周期和Activity的四种启动模式

Activity的七种生命周期方法void onCreate();Activity已经被创建void onStart();Activity已经显示在屏幕,但是还没有得到焦点(不能交互)void onresume();Activity得到焦点,可以和用户交互void onPause();Activity失去焦点,无法与用户交互,但是还可见void onStop();Activity不

2015-09-08 10:49:57 1384

原创 Android网络编程之使用get方式向服务端提交数据和乱码问题的解决

学习javaweb的时候都知道向服务端提交数据有两种方式,get和post。今天学习了在Android客户端使用get方式提交登录数据的小案例。步骤:先新建一个web项目,搭建一个简单的登录表单界面设置好用户名和密码,点击登录的时候会显示登录成功或者失败,这里就不在贴Servlet和jsp的代码了。在这里我设置用户名为”小强”,密码为123.设置安卓的布局,两个EditView和一个Button

2015-08-30 14:04:23 1873

volley源码和jar包

最新的

2016-08-26

空空如也

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

TA关注的人

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