自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 资源 (6)
  • 收藏
  • 关注

原创 ThreadLocal 工作原理

1.ThreadLocal 介绍首先,它是一个数据结构,有点像HashMap,可以保存"key : value"键值对,但是一个ThreadLocal只能保存一个,并且各个线程的数据互不干扰,它是一个以ThreadLocal对象为键、任意对象为值的存储结构。可以通过set(T)方法设置一个值,在当前线程下以get()方法获取到原先设置的值。ThreadLocal<String> threadLocal = new ThreadLocal();threadLocal.set("thre

2020-12-30 16:08:52 207 1

原创 进程间通信(IPC) 相关

通过引入相关问题来进行思考阐述:1.简述 IPC?IPC 就是指进程之间的通信机制,在 Android 系统中启动 Activity/Service 等都涉及跨进程调用的过程。2.Android中的IPC 方式有哪些:Bundle,文件共享,Messenger,AIDL,ContentProvider,Socket等3.如何开启Android中的多进程:(常规)在AndroidMenifest中给四大组件指定属性android:process。 (不常规)通过JNI在na

2020-12-30 14:19:34 118

原创 Okio原理解析

随着越来越多的应用使用OKHttp来进行网络访问,我们有必要去深入研究OKHTTP的基石,一套更加轻巧方便高效的IO库okio。一、OKIO的介绍:okio是大名鼎鼎的square公司开发出来的,其是okhttp的底层io操作库。其相对于原生的Java IO 读写,更具有(1)紧凑的封装 是对Java IO/NIO 的封装使用,支持文件读写,也支持Socket通信的读写,不需要再套上一系列的装饰类;(2) 使用简单 不用区分字符流或者字节流,也不用记住各种不同的输入/输出流,统统只有一个输入

2020-12-26 18:37:34 870

转载 Android深入理解RecyclerView的缓存机制

讲一下RecyclerView的缓存机制,滑动10个,再滑回去,会有几个执行onBindView。缓存的是什么?cachedView会执行onBindView吗?这两个问题都是关于缓存的,我就一起说了。1)首先说下RecycleView的缓存结构:Recycleview有四级缓存,分别是mAttachedScrap(屏幕内),mCacheViews(屏幕外),mViewCacheExtension(自定义缓存),mRecyclerPool(缓存池) mAttachedScrap(屏幕内).

2020-12-24 21:33:54 1261 1

原创 RecyclerView的局部更新

RecyclerView的刷新可以分为列表重新加载刷新、item刷新、item中局部刷新。对于前两种的刷新,都会是的列表刷新的时候闪烁一下,而后者则看不出列表有任何闪烁,并且,局部刷新能在一定程度上减少不必要的UI绘制渲染RecyclerView 数据刷新的几种方式,RecyclerView 真正的布局刷新的正确方式notifyDataSetChanged()刷新全部可见的itemnotifyItemChanged(int position)更新列表position位置上的数据可以调用n..

2020-12-24 14:08:49 1551 1

转载 Android View 滑动冲突解决方式以及原理

一. 滑动冲突场景以及产生原因产生滑动冲突的场景主要有两种:父ViewGroup和子View的滑动方向一致 父ViewGroup和子View的滑动方向不一致那为什么会产生滑动冲突呢,例如在父ViewGroup和子View的滑动方向一致的情况,我需要让两者都可以滑动。在事件分发机制中,ViewGroup的onInterceptTouchEvent方法默认情况下是返回false,也就是ViewGroup默认情况下是不会拦截事件的。当ViewGroup接收到事件时,由于不拦截事件,会去寻找能够处理事件

2020-12-24 10:27:27 590

转载 将Eclipse代码导入到AndroidStudio的两种方式

说到使用AndroidStudio,除了新建的项目,我们都会面临的问题是原先Eclipse的代码该怎么导入到AndroidStudio中使用。这方面相关的资料还比较少,自己摸索了一下,总结出这篇博客,希望能让开发者少走些弯路。OK,进入正题。Google为了让我们更加方便的使用AndroidStudio,提供了两种导入Eclipse代码的方式:一种兼容Eclipse,一种是全新的Android Gradle Project.这里,我们先从兼容模式说起。兼容模式这种模式下,保证了Eclips

2020-12-23 10:26:09 1457

转载 OkHttp原理解析

系列文章目录提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加例如:第一章 Python 机器学习入门之pandas的使用提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录 目录 OkHttp介绍 使用流程 分发器 同步请求 异步请求 请求流程 分发器线程池 拦截器责任链 责任链模式 拦截器流程 拦截器详情 一、重试及重定向拦截器 二、桥接拦截器 三、缓存拦截器 四、连接...

2020-12-21 18:33:34 520

转载 详细解析 HTTP 与 HTTPS 的区别

详细解析 HTTP 与 HTTPS 的区别

2020-12-17 23:46:18 790

转载 彻底弄懂 Http 缓存机制 - 基于缓存策略三要素分解法

转载自“腾讯Bugly(http://bugly.qq.com)”,个人日常记录学习使用导语Http 缓存机制作为 web 性能优化的重要手段,对从事 Web 开发的小伙伴们来说是必须要掌握的知识,但最近我遇到了几个缓存头设置相关的题目,发现有好几道题答错了,有的甚至在知道了正确答案后依然不明白其原因,可谓相当的郁闷呢!!为了确认下是否只是自己理解不深,我特意请教了其他几位小伙伴,发现情况也或多或少和我类似。为了不给大家卖关子,下面我贴出2道题,大家可以尝试解答下:以下为page.html.

2020-12-13 22:35:00 102

转载 Cookie、Session、Token那点事儿

前言:新公司项目中使用到了Cookie,在各大Android技术讨论群向前辈们取经讨论这cookie、session、token这仨哥们的时候,很多开发者说法不一各抒已见,所以是时候回顾下http基础以及总结开发经验了。本文重在科普分析Cookie、Session、Token的基本概念和应用场景;Okhttp框架下对Cookie的管理使用。文章如果写的不好请各位开发者老司机私聊或者在评论区指点提出issue。什么是Cookie?Cookie 技术产生源于 HTTP 协议在互联网上的急速发展。随着互联

2020-12-13 19:52:16 99

原创 StaticLayout的使用详解

在Android开发中,Canvas.drawText不会换行,即使一个很长的字符串也只会显示一行,超出部分会隐藏在屏幕之外。StaticLayout是android中处理文字的一个工具类,StaticLayout 处理了文字换行的问题。在Staticlayout的中构造参数有三个: public StaticLayout(CharSequence source, TextPaint paint, int width,

2020-12-10 15:32:58 1588 1

转载 第三方开源库 EventBus 源码分析和手写

EventBus官方介绍为一个为Android系统优化的事件订阅总线,它不仅可以很方便的在同线程中传递事件或者对象,还可以在不同线程中实现事件或对象的传递,用法比较简单,可以很好地完成一些在原生系统中的Intent,Handler等可以完成的工作,在Android开发过程中用途及其广泛。当然这里不介绍它的具体用法,只走源码,然后自己动手写一下加深映象。很多人都说用了观察者设计模式,如果非得要往上靠,只能说不是正常的观察者。当然我们也不用太关注,你就认为它是反射加注解。如果你会 RXjava 也可以用 RxB

2020-12-09 22:56:24 175

原创 Java异常简单处理

1.直接throw 抛出,不往下执行 /** * 直接throw 抛出 */ public static void main(String[] args) { String str = null; System.out.println("before"); checkNotNull(str); //1.直接抛出异常,不往下执行 System.out.println("after"); } p.

2020-12-07 23:29:23 136

原创 Android里循环执行定时常用两种方法

第一种:Handler+Runnable实现方式实现循环执行定时//1,首先创建一个Handler对象Handler handler=new Handler(); //2,然后创建一个Runnable对像Runnable runnable=new Runnable(){ @Override public void run() { // TODO Auto-generated method stub //要做的事情,这里再次调用此Runnable对象

2020-12-07 23:17:09 7672 1

原创 Gson & 对象

日常工作中,在调用相关接口时候,常会要求将一个对象封装成json字符串作为参数传递过去给服务端:往往使用方法如下: public String toJsonString(Object object) { if (object != null) { Gson gson = new Gson(); return gson.toJson(object); } return null; }为方便创建一个简单对象举例:public class Person { p

2020-12-07 23:09:18 279 1

转载 Android解惑之Handler为什么需要是static的

我们先来看一张Android Studio中的warning截图handler内存泄漏.png上面这段代码会引起内存泄漏(Memory Leak)。 为什么会引起内存泄漏? 我们都知道,非static的内部类会持有外部类的引用,举个类子来说,我们经常在一些内部类中显示跳转activity的时候,给Intent赋值的时候,第一个参数会写 外部类名.this ,这就是持有外部类的引用的很好表现。 同样,其他地方需要用到这个内部类的时候,也不能是直接new出来,因为为非static的,必

2020-12-02 18:42:12 641

转载 Java 泛型和object比较

方法返回值前的<T>的左右是告诉编译器,当前的方法的值传入类型可以和类初始化的泛型类不同,也就是该方法的泛型类可以自定义,不需要跟类初始化的泛型类相同我们通过一段代码比较来看下就明白了class Show<T> { public void print1(T t) { System.out.println(t); } public <T> void print2(T t) { System.out.println(t); }} pu.

2020-12-01 15:47:34 485

ffmpeg-3.2(arm).zip

适合androidstuido,想要调用研究ffmpeg音视频的开发人员使用

2021-01-30

扫描SD卡的浏览应用

解压直接运行,扫描手机SD卡,并进行音乐、视频、图片的分类,点击并可以播放,内部使用Intent传递数据,适合初学者入门学习。

2019-03-16

Java 入门word笔记

Java 学习入门基础笔记积累,基本语法的总结,xml解析笔记。

2018-12-05

Maven+SSM上传下载源码实现

Maven管理jar包,SSM搭建上传下载源码实现,直接加载可运行。

2018-11-12

2018.1版本 idea- mybatis plugin插件

2018.1版本 idea- mybatis plugin插件 本人亲测可使用。

2018-08-23

企业论坛系统

关于企业登录用户上传、下载,主题分析,主题评论,主题发布;采用mysql作为数据库,内有数据库代码

2018-04-22

空空如也

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

TA关注的人

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