自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

stven_king的专栏

自信人生两百年、会当击水三千尺

原创 InstantRun从2.0到3.0,历史解毒

个人博客地址 http://dandanlove.com/ InstantRun从2.0到3.0,历史解毒 前言 Instant Run已经出来3年了,为什么现在会想写这篇文章。从Instant Run 发布就已经有文章做了详细的介绍,但主要分为两类:一类是讲其主要实现原理或是讲...

2018-05-18 15:32:05

阅读数 1693

评论数 0

原创 Android系统的编舞者Choreographer

个人博客地址 http://dandanlove.com/ 前言 上一篇文章 Android的16ms和垂直同步以及三重缓存 解释了手机流畅性的问题,并在文章中提到了在Android4.1中添加的Vsync。Choreographer机制,用于同Vsync机制配合,实现统一调度界面绘图。 ...

2018-04-26 19:59:20

阅读数 2329

评论数 0

原创 Android的16ms和垂直同步以及三重缓存

个人博客地址 http://dandanlove.com/ 前言 手机屏幕是由许多的像素点组成的,每个像素点通过显示不同的颜色最终屏幕呈现各种各样的图像。手机系统的类型和手机硬件的不同导致UI的流畅性体验个不一致。 屏幕展示的颜色数据 在GPU中有一块缓冲区叫做 Frame...

2018-04-26 19:55:30

阅读数 1559

评论数 0

原创 Picasso源码分析和对比

前面的Android-Universal-Image-Loader源码分析和Glide源码阅读理解一小时分别讲述了五年前和现在最受欢迎的`Android`图片加载库。今天讲述的picasso是Square公司开源的一个Android图片加载

2019-12-30 17:50:18

阅读数 100

评论数 1

原创 Glide源码阅读理解一小时

这篇图、文、表、代码一起组成的Glide源码分析。这篇Glide的代码分析量可以说至少是ImageLoader的3倍多,本来想对Glide代码进行拆分,细化每个部分进行讲解这个每个部分讲的更加清楚一些。但最终还是打算整体一篇文章讲完,因为我觉得整体性的学习能更深的的了解到Glide的框架的设计之美...

2019-12-20 19:27:01

阅读数 119

评论数 0

原创 Android-Universal-Image-Loader源码分析

前言 ImageLoader 是 android 使用中出现比较早(PS:即的刚接触安卓项目的时候就用的是这个图片加载图,算算已经快5年了),使用最多的一个开源图片加载库了。随着glide , fresco 和 picasso等图片加载的库出现,ImageLoader使用变得越来越少。最近在看其他...

2019-11-26 15:11:38

阅读数 1085

评论数 2

原创 Android数据库开源框架GreenDao分析

前段时间写Demo的时候遇到了数据库的并发问题 Android数据库多线程并发操作异常 ,然后研究了一下 Android中的数据库连接池 。在看相关代码的时候阅读了我们项目使用的数据库框架GreenDao 。哈哈,挺有意思的^ _ ^。 Android原始数据库的使用 创建数据库 public c...

2019-11-06 20:52:47

阅读数 159

评论数 0

原创 Android数据库多线程并发操作异常

在我们做项目的过程中经常会有多线程异步处理的情况,那么Android中多线程操作数据我们一般会遇到什么样的问题? 多个数据库对象执行并发 指由不同的SQLiteOpenHelper打开的相同数据库对象,默认enableWriteAheadLogging=false。 多线程 单进程和多进程结果一样...

2019-11-06 20:47:06

阅读数 116

评论数 0

原创 Android中的数据库连接池

最近在看数据库相关的三方库的时候,我发现在Android应用开发的时候是可以并行操作数据库的读写,但Android默认的数据连接池中只有一个数据库链接。一个数据库连接能实现并发么?要是一个数据库链接可以实现并发,那么为什么需要数据库连接池? 数据库连接池介绍 每次提到连接池我们很快能想到线程池。线...

2019-11-02 20:20:31

阅读数 405

评论数 0

原创 View的postDelayed方法深度思考

前言 突然某天好友老瑞问我 “View的postdelayed方法,延迟时间如果设置10分钟或者更长的时间有什么问题吗?“ 。当时听到这个问题时候我只能联想到 Handle.postDelay ,与此同时让我回想起了之前的一些疑问? View的postDelayed方法,延迟时间如果设置1...

2019-10-25 16:26:29

阅读数 105

评论数 0

原创 从JVM到Dalivk再到ART(class,dex,odex,ELF)

个人博客地址 http://dandanlove.com/ 现在市面上的Android手机大部分都是运行的是ART虚拟机了。还记得自己一部Android手机(HUWEIg520),Android4.1系统。那时候还是没有ART虚拟机的。作为Android开发者,我们应该对Android的发展历史有...

2019-10-18 10:34:13

阅读数 78

评论数 0

原创 ERROR: Conflicting configuration : 'arm64-v8a' in ndk abiFilters cannot be present when split...

Android 官网通知,从 2019 年 8 月 1 日开始,您在 Google Play 上发布的应用必须支持 64 位架构。64 位 CPU 能够为您的用户提供更快、更丰富的体验。添加 64 位的应用版本不仅可以提升性能、为未来创新创造条件,还能针对仅支持 64 位架构的设备做好准备。 按照...

2019-10-16 17:22:29

阅读数 486

评论数 2

原创 Java版的7种单例模式

前言 Java 中的单例模式是我们一直且经常使用的设计模式之一,大家都很熟悉,所以这篇文章仅仅做我自己记忆。 Java版七种单例模式写法 一:懒汉,线程不安全 这种写法lazy loading很明显,但是致命的是在多线程不能正常工作。 public class Singleton{ p...

2019-09-30 11:19:20

阅读数 10200

评论数 17

原创 Dart和Java通信源码分析和实践

前言 Dart 和 Java 通信这块的知识点涵盖了 Dart&C 以及 Java&C 的通信,我们先有简单的业务组件的定义再到底层实现原理进行分,我们现在从Flutter定义的三种 Channel 中的 MethodChannel 使用进行剖析。 Dart和Java通信的实践 ...

2019-08-06 16:03:26

阅读数 95

评论数 0

原创 从JNI_OnLoad看so的加载

前言 最近在看 Flutter 中 Dart 和 Java 使用 MethodChannel 进行通信相关的代码,有上层一直跟到了底层。最后看到了 MethodChannel 的注册是在 JNI_OnLoad 的方法中。这个方法是在 so 被加载的时候调用的。今天主要从so 的加载看一下 JNI_...

2019-07-29 10:05:38

阅读数 121

评论数 0

原创 Flutter路由管理和页面参数的传递(源码分析)

前言 上一篇 Flutter路由管理和页面参数的传递(获取&返回) 文章中我们讲述了这么用代码实现 Flutter 中页面参数的传递,这一篇我们用源码分析一下 Navigator 为什么可以进行页面参数传递。 从页面跳转入口的代码进行分析: Navigator.of(context).pu...

2019-07-20 09:56:33

阅读数 203

评论数 0

原创 Flutter路由管理和页面参数的传递(获取&返回)

前言 在做 Flutter 开发的时候所有的页面以及页面上的元素都变成了 Widget ,创建一个页面或者视图直接 new 一个新的 widget 就可以,相关的参数我们可以直接通过构造函数直接传递。 我们做 Android 开发的人员都知道 Android 应用程序在进行页面跳转的时候可以利用I...

2019-07-20 09:54:48

阅读数 1327

评论数 0

原创 Flutter混合开发:启动黑屏处理

上一篇 [Flutter混合开发:Android接入Flutter](https://dandanlove.blog.csdn.net/article/details/96565543) 我们讲到在 Flutter混合开发 中主要有、有 addView (页面局部Flutter) 和 setCon...

2019-07-20 09:50:59

阅读数 1243

评论数 0

原创 Flutter混合开发:Android接入Flutter

前言 Flutter Google推出已经已经一年多了,单个 Flutter 项目的开发流程已经很成熟了。对与个人开发者来说使用 Flutter 开发一个跨平台的App挺有意思。但是对于现有的项目改造来说还是不建议,Flutter 中的控件还没有完全能满足我们的要求,我们需要解决这个问题会消耗我...

2019-07-20 09:49:17

阅读数 109

评论数 1

原创 细说InputStream和OutputStream

前言 我们进行Android开发的时候经常会遇到各种 io 操作, 比如网络请求,文件操作,数据传输等。 Java中的 InputStream 和 OutputStream 都是 io 包中面向字节操作的顶级抽象类,关于java同步 io字节流的操作都是基于这两个的。 网络数据传输:Socke...

2019-06-14 20:22:47

阅读数 119

评论数 0

原创 byte&0XFF的基础

前言 最近在做代码相关的优化,找到了一个二进制转十六进制的方法: /** * 二进制转16进制 * @param bin * @return 16进制字符串 */ public static String asHex(byte[] bin) { //一个byte为8位,一个十六进制...

2019-06-04 14:11:10

阅读数 372

评论数 0

原创 解决6.5.16及以上版本微信内部M页不能唤起APP

背景 最近微信唤起app的数据急速下降,产品同学告诉我们大事来了,微信不能唤起Android的App了!! 微信语录 为提升微信 webivew 中网页打开其他应用的体验,防止诱导点击、强制跳出等不合理行为, 我们的“唤起外部客户端”的能力统一调整为: 1、 在 6.5.16 及以上版本的微...

2019-02-21 21:01:24

阅读数 632

评论数 0

原创 小明要吃冰淇淋之RxJava:lift原理

个人博客地址 http://dandanlove.com/ 前言 关于RxJava的基础心法解析 我们在使用 RxJava 的时候必不可少的会使用一些基础的操作符, map 、 flatMap 、 filter 等。这些都是对 Obserbable 进行各种各样的变化,我们查看其实现都能看到一个叫...

2019-01-14 21:58:41

阅读数 1165

评论数 1

原创 一次Observable的empty和never方法的rx源码笔记

我们在用 RxJava 的时候,如果需要在某个地方需要中断事件流,那么直接返回一个 Observable.empty() ,与它有类似功能的有 Observable.never 。 Observable.just(1,2,3,4,5) .flatMap((Func1<Int...

2019-01-07 21:07:07

阅读数 328

评论数 0

原创 Android:Base64生产Bitmap压缩和转byte[]

最近在做微信分享的时候遇到了分享图片的大小限制问题,需要对图片进行压缩。在过程中遇到几个有趣的地方在此记录。 Bitmap.getByteCount的大小和转化为byte[]的大小差很多不是8倍,而是几十倍,我自测的为67倍 压缩Bitmap直接根据长宽比进行调用 createScaledB...

2019-01-07 20:41:55

阅读数 615

评论数 0

原创 关于RxJava的基础心法解析

前言 我接触Rxjava是在2015年底,已经过去4年的时间了。 2016年学习过一阵子RxJava的操作符也做过一些笔记,我们项目的网络请求框架也替换成了Okhttp+Retrofit,所以使用RxJava做线程间切换就非常好用。 一开始接触RxJava感觉除了线程切换之外很能发现其实际的作用,...

2019-01-07 20:18:18

阅读数 295

评论数 0

原创 Android关于微信小程序的唤起和分享

个人博客地址 http://dandanlove.com/ 最近做了一些有关于微信小程序的项目,涉及了微信小程序的唤起和分享微信小程序。 所有的内容都来源于 微信开放平台 public class WXProxy { private IWXAPI mShareAPI; /** ...

2018-11-30 10:57:31

阅读数 896

评论数 2

原创 Okhttp拦截器Interceptor学习和使用

前言 前年的这个时候我们项目将网络框架替换为okhttp+retrofit ,然后我对 retrofit 源码进行了学习和分享,写了几篇相关的文章同时更新了项目的网络框架。 Android网络之Retrofit2.0使用和解析 Retrofit2.0中注解使用套路 Retrofit2.0+Okht...

2018-11-25 18:20:53

阅读数 1283

评论数 0

原创 Android更新资源文件浅思考

前言 最近在看 《深入探索Android热修复技术原理7.3Q.pdf》 时,遇到一个之前没有注意过的问题:关于资源修更新的Android的版本兼容?作为程序员我们需要非常严谨的思路,是什么导致了资源的修复更新需要做版本兼容? 这个问题是使我写下这边文章的原因,下边我们带着问题来找答案!!~! 这...

2018-10-27 18:07:54

阅读数 556

评论数 0

原创 Multidex记录三:源码解析

个人博客地址 http://dandanlove.com/ Multidex记录一:介绍和使用 Multidex记录二:缺陷&解决 Multidex记录三:源码解析 记录Multidex源码解析 为什么要用记录呢,因为我从开始接触Android时我们的项目就在65535的边...

2018-10-22 10:57:00

阅读数 583

评论数 0

原创 Multidex记录二:缺陷&解决

个人博客地址 http://dandanlove.com/ Multidex记录一:介绍和使用 Multidex记录二:缺陷&解决 Multidex记录三:源码解析 记录Multidex缺陷&解决 为什么要用记录呢,因为我从开始接触Android时我...

2018-10-22 10:55:53

阅读数 486

评论数 0

原创 Multidex记录一:介绍和使用

个人博客地址 http://dandanlove.com/ Multidex记录一:介绍和使用 Multidex记录二:缺陷&解决 Multidex记录三:源码解析 记录Multidex介绍和使用 为什么要用记录呢,因为我从开始接触Android时我们的项目就在65535的...

2018-10-22 10:53:59

阅读数 488

评论数 0

原创 Android6.0动态权限适配&XMPermissions

Android6.0动态权限 简介 从 Android 6.0(API 级别 23)开始,用户开始在应用运行时向其授予权限,而不是在应用安装时授予。此方法可以简化应用安装过程,因为用户在安装或更新应用时不需要授予权限。它还让用户可以对应用的功能进行更多控制;例如,用户可以选择为相机应用提供相机访...

2018-09-29 18:10:57

阅读数 550

评论数 0

原创 Android平台JSON预览(JSON-handle)

Chrome常用的插件JSON-handle,用过的都知道。 最近在做接口加密,所有的数据(request和response)都是加密数据,无法沟通fildder或者Charles抓包查看。那么自己做一个查看json``格式的View:支持动态的放大,缩小,支持所有数据格式~! 效果图: ...

2018-09-10 20:29:26

阅读数 306

评论数 0

原创 python3错误:dyld: Library not loaded: @executable_path/../.Python

dyld: Library not loaded: @executable_path/../.Python Referenced from: /usr/local/bin/python3 Reason: image not found [1] 888 abort pytho...

2018-07-30 20:52:58

阅读数 3414

评论数 0

原创 Android动画绘制原理(源码解析)

Android 平台提供了三类动画,一类是 Tween 动画-Animation,即通过对场景里的对象不断做图像变换 ( 平移、缩放、旋转 ) 产生动画效果;第二类是 Frame 动画,即顺序播放事先做好的图像,跟电影类似。最后一种就是3.0之后才出现的属性动画PropertyAnimator。 ...

2018-05-01 00:02:16

阅读数 290

评论数 0

原创 红黑树的操作揭秘手册

前言 二叉树知识点回忆以及整理这篇文章中我们说过“二叉树是一个简单的二分查找,但其性能取决于二叉树的层数”。 - 最好的情况是O(logn),存在于完全二叉树情况下,其访问性能近似于折半查找; - 最差的情况是O(n),比如插入的元素所有节点都没有左子树(右子树),这种情况需要将二叉树的全部...

2018-03-18 22:11:52

阅读数 284

评论数 0

原创 【可视化教程】iTerm2+oh-my-zsh+solarized配色方案

【可视化教程】iTerm2+oh-my-zsh+solarized配色方案,自己Mac的terminal配色;

2018-03-07 18:41:28

阅读数 3887

评论数 0

原创 Android项目解耦--路由框架ARouter的使用

Android项目解耦–路由框架ARouter源码解析前言随着业务量的增长,客户端必然随之越来越业务和功能模块耦合越来越生,开发人员代码维护成本越来越高。 App一般都会走向组件化、插件化的道路,而组件化、插件化的前提就是解耦,那么我们首先要做的就是解耦页面之间的依赖关系。

2018-02-06 14:16:13

阅读数 613

评论数 0

原创 Android项目解耦--路由框架ARouter源码解析

前言 上一篇文章Android项目解耦–路由框架ARouter的使用讲述了ARouter在项目中的使用,这边文章主要对ARouter的源码进行学习和分析。 ARouter的结构 ARouter主要由三部分组成,包括对外提供的api调用模块、注解模块以及编译时通过注解生产相关的类模块。 ...

2018-02-06 14:14:42

阅读数 371

评论数 0

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