自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(5)
  • 资源 (1)
  • 收藏
  • 关注

原创 JVM内存模型

程序计数器(线程私有):也有称作PC寄存器。每个线程都有一个私有的程序计数器,程序计数器存放的是当前线程所执行的字节码的行号指示器。当CPU需要执行指令时,需要从程序计数器中得到当前需要执行的指令所在存储单元的地址,然后根据得到的地址获取到指令,在得到指令之后,程序计数器便自动加1或者根据转移指针得到下一条指令的地址,如此循环,直至执行完所有的指令。程序计数器也控制着程序的分支、循环、跳转...

2019-02-25 23:09:25 216

原创 Glide4缓存机制源码解析

这篇文章基于Glide4,只分析Glide4的缓存机制,如果大家还不了解Glide4源码,可以去看一下下面这两篇做一下铺垫:Glide4初始化Glide4数据模型转换与数据获取好了,直接进入正题~~这里以加载一张网络图片来讲解缓存过程,从前面的文章中可以知道,当第一次加载一张新的网络图片时,本地是没有这张网络图片的缓存的。所以会进入到SourceGenerator类的start...

2019-02-22 23:18:08 585 1

原创 关于AsyncTask的onPostExcute方法是否会在Activity重建过程中调用的问题

假设下面一种情况:当前Activity中持有一个fragment对象,且fragment中有一个AsyncTask异步任务正在执行,当配置发生改变时(比如屏幕旋转),假设消息队列的情况如下1.配置改变,用户旋转屏幕,但是此时AsyncTask已经运行2.Fragment的onDetach方法被调用3.AsyncTask的doInBackground方法完成,也就是后台任务执行完毕4....

2019-02-08 13:31:23 553

原创 初学Flutter基础:关于InheritedWidget的理解

InheritedWidget是Flutter的一个功能型的Widget基类,它能有效地将数据在当前Widget树中向它的子widget树传递。它的子Widget树可以通过 BuildContext.inheritedFromWidgetOfExactType()方法获得最近的指定类型的Inherited widget,进而获取它的共享数据。在介绍State生命周期时,我们说到State对象...

2019-02-03 23:20:43 6931 1

原创 使用BottomSheet和BottomSheetDialog实现嵌套滑动效果

先看效果: 这就是我们要实现的嵌套滑动效果,即在同一个事件序列中,先滑动外部控件,当外部控件滑到设定的高度时,滑动内部空间。我们都知道,在传统的时间分发机制中,某个View一旦决定拦截,那么这一个事件序列都只能由它来处理(如果事件序列能够传递给它的话)并且它的onInterceptTouchEvent不会再被调用。所以上面的效果用传统的事件分发是无法实现的。这时候就要用到我们的Nest...

2019-02-01 16:30:21 5782 1

Android逆向助手_v2.2

亲测,可用于apk的反编译、重打包、反编译、dex转jar等

2019-01-24

空空如也

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

TA关注的人

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