李可乐的专栏

分享开发经验

Android-怎样实现一个非阻塞的超时重试任务队列

起因 最近接手一个项目,要把其中的阻塞任务队列,重构成非阻塞。在客户端很少有机会直接处理任务队列。项目完成需要总结经验。 阻塞的发生 我这里先说明我遇到的阻塞问题,我这里的阻塞不是多线程访问的阻塞,概念上是任务执行的阻塞。具体是: 任务开始客户端准备数据,通过socket向服务器发送...

2018-04-11 15:23:36

阅读数 708

评论数 0

Android开发-从源码分析Fragment嵌套PagerAdapter生命周期,解决重建问题

介绍 众所周知在Android开发中Fragment的生命周期非常复杂,复杂得甚至让Square公司提出了我为什么主张反对使用Android Fragment转而提倡使用自定义View组合替代Fragment。但是没办法公司项目还是使用了很多Fragment嵌套。遇到问题还是需要自己去处理的。 ...

2017-07-06 00:51:06

阅读数 1408

评论数 0

MVP架构-Android官方MVP项目和响应式MVP-RxJava项目架构分析对比解读

介绍MVP这个架构一直是Android开发社区讨论的焦点,每个人都有自己的分析理解众说纷纭。直到GitHub上Google官方发布用MVP架构搭建的项目。感觉是时候分析了。MVP架构简介这不是本文重点,所以摘抄自李江东的博文MVP架构简介  对于一个应用而言我们需要对它抽象出各个层面,而在MVP架...

2016-05-27 17:45:11

阅读数 15405

评论数 5

线程池运行机制分析-线程复用原理

介绍 我们在涉及到多线程开发时,必然就涉及到线程池的使用,在阿里巴巴-Java开发手册中说到: 【强制】线程资源必须通过线程池提供,不允许在应用中自行显示创建线程 说明:使用线程池的好处是减少在创建和销毁线程上所花费的时间以及系统资源的开销,解决资源不足的问题,如果不使用线程池,有...

2018-05-29 11:49:40

阅读数 818

评论数 0

ReverseSuper:优雅的重构,一键生成动态代码,支持生成接口/抽象类

ReverseSuper 引用 implementation 'com.licola:reversesuper-annotation:1.0.0'//注解库 annotationProcessor 'com.licola:reversesuper-compiler:1.0....

2018-04-16 15:12:13

阅读数 220

评论数 0

Android-怎样计算Bitmap的内存占用和Bitmap加载优化

介绍 在Android开发中Bitmap肯定是绕不过去的,很多时候我们只是使用图片框架加载图片,具体细节的Bitmap对内存的使用图片框架已经帮我们封装好了。但是对Btimap对内存的影响我们还是需要了解的。 内存占用 首先要清楚Bitmap的文件大小肯定不是实际的内存加载大小。因为文件...

2018-04-12 17:05:49

阅读数 467

评论数 0

VirtualData-快速生成虚拟数据辅助开发

VirtualData 引用 implementation 'com.licola:virtual:1.0.2' 主要目的是辅助开发阶段的测试,不建议在发布版引用,所以一般应该这样配置 testImplementation 'com.licola:virtual...

2018-03-15 18:05:50

阅读数 188

评论数 0

Android开发-备忘录模式在Android的应用和模拟实验

介绍在上一篇设计模式-备忘录模式(Memento)的详解中,使用文字和示例代码解释了备忘录模式。对于备忘录模式的理解是本文基础。如果还不了解备忘录模式还请参考上一篇 首先我们都知道Android移动设备因为内存大小问题,会经常发生GC内存回收操作。关于GC内存回收的发生时机有多种,以后再详解。这...

2017-07-05 16:48:23

阅读数 686

评论数 0

设计模式-备忘录模式(Memento)的详解

介绍稍微了解一些java设计模式的都知道,设计模式中有一种备忘录模式,关于作用应该看名字就知道应该和状态保存有关。本文就从定义到示例代码到实际应用一步步说明详解。定义备忘录模式定义:在不破坏封装性的前提下,捕获对象的内部状态。 本质:保存和恢复内部状态 作用:在不暴露内部状态不破坏封装完整性的...

2017-07-04 18:25:17

阅读数 405

评论数 0

Android开发者-对Java和编程的一点总结

介绍Java基础是每个Android程序员必备的,因为语法糖和封装以及编译器优化的存在我们可以不用关心一些细节的实现,但是一旦发生bug或者代码的优化,Java的细节基础就很关键。本文来自日常开发和随时随地的coding灵感不时更新。前提本文代码基于Win64位版本Java8,使用intellij...

2017-05-16 19:02:42

阅读数 793

评论数 0

Android开发-状态栏着色原理和API版本兼容处理

介绍先上实际效果图,有三个版本请注意区分API版本 API>=20 API=19 API<19 以上的效果我们称之为对状态栏的着色,而非沉浸式状态栏,那是另外的东西。 想要实现以上的效果并不难,阅读本文了解原理后,就会觉得想要以上的效果真的很简单。 本文...

2017-03-11 16:54:27

阅读数 2348

评论数 1

Android开发-BottomSheet的使用和说明

Android开发-BottomSheetDialogFragment的使用和封装介绍在官方提供的android.support.design.widget包中,加入bottom sheet能够很方便的实现一些酷炫的功能。官方blog说明得比较简单,中文博客上也有一些介绍和说明 Android ...

2016-12-09 12:54:56

阅读数 6830

评论数 3

Android开发-优雅的实现动态图片排版(类似微信图片展示效果)

介绍效果展示 说明上面的图片排版 - 实现了动态布局,针对不同图片的数量展示不同的排版布局。效果类似微信朋友圈的图片排版,效果略有不同。 - 正方形的图片控件,高度会随着宽度一起变化。实现这样的布局有很多种思路,只是什么样的方式更优雅。本文提供一种相对优雅的方式供大家参考。思路 首先,...

2016-11-04 00:42:46

阅读数 8449

评论数 3

Android开发-事件分发机制实验分析ViewGroup、View事件分发,结合职责链模式

介绍上一篇博客职责链/责任链模式(Chain of Responsibility)分析理解和在Android的应用 介绍了职责链模式,作为理解View事件分发机制的基础。 套用职责链模式的结构分析,当我们的手指在屏幕上点击或者滑动,就是一个事件,每个显示在屏幕上的View或者ViewGroup...

2016-06-01 18:01:20

阅读数 4835

评论数 1

设计模式-职责链/责任链模式(Chain of Responsibility)分析理解和在Android的应用

介绍我一直感觉Android源码不能只简单的看,结合设计模式的思想再去看源码会有更深的理解。但是源码中应用某个设计模式,会根据实际情况会有一些差异。所以需要先透彻地理解设计模式。熟悉设计模式的应用场景就可以在Android源码的场景中找到相应的实现,熟悉设计模式就能够透过浩瀚的源码看到本质。 今...

2016-06-01 01:17:07

阅读数 2584

评论数 0

Android官方说明-Activity任务栈

任务和返回栈 本文内容 保存 Activity 状态管理任务 定义启动模式处理关联清理返回栈启动任务 文章 Android 多任务运行机制 另请参阅 Android 设计:导航 清单文件元素概览屏幕 应用通常包...

2016-05-30 23:35:48

阅读数 2295

评论数 0

Java语言一些记录

介绍这篇博文用来记录我平常想到的有关Java有趣或者重要的东西有序集合打乱我做过一道面试题,Java语言设计一个扑克牌游戏,发牌,洗牌。 我写Android客户端代码,数据集合一般都是服务器已经处理好了的。还从来没想过怎么把有序的集合打乱。 当时脑子里面就想到for循环里,一个Random随机...

2016-05-29 00:42:27

阅读数 636

评论数 0

Android开发-Handler引起的内存泄漏-实验、分析、总结。

介绍最近在恶补Handler的知识,其中就涉及到了Handler引起的内存泄露问题,网络上有很多的分析文章。我就按照这些文章的思路,写代码验证,主要是验证和记录。 使用的内存检测工具是:LeakCanary 中文使用说明 英文原文: http://www.androiddesignpa...

2016-05-24 20:39:46

阅读数 3746

评论数 9

View的两种更新方法-从源码角度分析invalidate()和postInvalidate()的区别

介绍最近在看各种Android多线程开发的各种知识,网上看到有关线程和View的东西,其中View的两种更新方法invalidate()和postInvalidate()。记得当时在深圳去面试其中有个题目就是说明这两个的区别。今天突然又看到就需要把不懂得总结出来。分析invalidate首先不管这...

2016-05-24 01:15:25

阅读数 2942

评论数 1

Android内存泄露检测工具和实际开发中遇到的内存泄露问题解析

介绍内存泄露是平常开发中经常遇到的,有些时候稍不注意就会发生,而且还不易察觉,这就需要工具来帮助检测。本文主要介绍内存检测工具和我在开发中遇到的内存泄露问题和解决方案。内存泄露的原理具体的原理涉及到虚拟机垃圾回收机制知识,这里只为下文作介绍说明基本原理。想深度了解的请google。 内存泄露是...

2016-05-23 17:41:18

阅读数 3236

评论数 0

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