7 静默加载

尚未进行身份认证

优秀的判断力来自于经验,但经验来自于错误的判断。在看着别人走过的路时,思考怎么走自己的路。无私奉献不是天方夜谈,有时候,我们也可以做到。

等级
TA的排名 7k+

Android-Universal-Image-Loader源码分析

前言ImageLoader 是 android 使用中出现比较早(PS:即的刚接触安卓项目的时候就用的是这个图片加载图,算算已经快5年了),使用最多的一个开源图片加载库了。随着glide , fresco 和 picasso等图片加载的库出现,ImageLoader使用变得越来越少。最近在看其他图片加载库的源码,顺便补补之前错过的一些事情。代码仓库地址:Android-Universal-Im...

2019-11-26 15:11:38

Android数据库开源框架GreenDao分析

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

2019-11-06 20:47:55

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

在我们做项目的过程中经常会有多线程异步处理的情况,那么Android中多线程操作数据我们一般会遇到什么样的问题?多个数据库对象执行并发指由不同的SQLiteOpenHelper打开的相同数据库对象,默认enableWriteAheadLogging=false。多线程单进程和多进程结果一样。同时进行数据库的读操作不会产生任何问题;如果都需要创建表,那么多次创建可能会出现问题;...

2019-11-06 20:44:50

Android中的数据库连接池

最近在看数据库相关的三方库的时候,我发现在Android应用开发的时候是可以并行操作数据库的读写,但Android默认的数据连接池中只有一个数据库链接。一个数据库连接能实现并发么?要是一个数据库链接可以实现并发,那么为什么需要数据库连接池?数据库连接池介绍每次提到连接池我们很快能想到线程池。线程池的创建可以减少了创建和销毁线程的次数,每个工作线程都可以被重复利用,可执行多个任务。数据库连接...

2019-11-02 20:19:14

View的postDelayed方法深度思考

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

2019-10-25 16:25:15

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

个人博客地址 http://dandanlove.com/现在市面上的Android手机大部分都是运行的是ART虚拟机了。还记得自己一部Android手机(HUWEIg520),Android4.1系统。那时候还是没有ART虚拟机的。作为Android开发者,我们应该对Android的发展历史有些了解为什么Android会经历这么多的变化。Android是先有JVM然后是Dalvik,接着是现在...

2019-10-18 10:33:08

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

Android官网通知,从2019年8月1日开始,您在GooglePlay上发布的应用必须支持64位架构。64位CPU能够为您的用户提供更快、更丰富的体验。添加64位的应用版本不仅可以提升性能、为未来创新创造条件,还能针对仅支持64位架构的设备做好准备。按照Android官网提示进行配置本来很简单的一件事,但是确话费了我好长时间。在这里记录一下这个错误,...

2019-10-16 17:21:55

Java版的7种单例模式

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

2019-09-30 11:18:22

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

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

2019-08-06 16:03:26

从JNI_OnLoad看so的加载

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

2019-07-29 10:05:38

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

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

2019-07-20 09:56:33

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

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

2019-07-20 09:54:48

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

上一篇 [Flutter混合开发:Android接入Flutter](https://dandanlove.blog.csdn.net/article/details/96565543) 我们讲到在 Flutter混合开发 中主要有、有 addView (页面局部Flutter) 和 setContentView (整个页面Flutter)两种方式。这两种方式在启动页面的时候都会遇到 Flutte...

2019-07-20 09:50:59

Flutter混合开发:Android接入Flutter

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

2019-07-20 09:49:17

细说InputStream和OutputStream

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

2019-06-14 20:22:47

byte&0XFF的基础

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

2019-06-04 14:11:10

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

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

2019-02-21 21:01:24

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

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

2019-01-14 21:58:41

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

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

2019-01-07 21:07:07

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

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

2019-01-07 20:41:55

查看更多

CSDN身份
  • 博客专家
勋章 我的勋章
  • GitHub
    GitHub
    绑定GitHub第三方账户获取
  • 签到新秀
    签到新秀
    累计签到获取,不积跬步,无以至千里,继续坚持!
  • 新人勋章
    新人勋章
    用户发布第一条Blink获赞超过3个即可获得
  • 专栏达人
    专栏达人
    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。