自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(71)
  • 资源 (2)
  • 收藏
  • 关注

原创 AppBarLayout原理分析

一、AppBarLayout为什么可以滑动AppBarLayout滑动分为两种情况:滑动AppBarLayout引起的滑动滑动底部的列表引起的滑动1、滑动AppBarLayout引起的滑动我们分别继承了MyCoordinatorLayout、MyAppbarLayout、MyAppbarBehavior,在onInterceptTouchEvent和onTouchEvent中打印日志。MyCoordinatorLayout重写如下,其他类类似。 @Override public

2020-10-30 11:46:17 19

原创 NestedScrollView嵌套RecyclerView导致RecyclerView复用失效的原因?

一、问题描述使用NestedScrollView嵌套RecyclerView导致RecyclerView复用失效,RecyclerView会将所有数据一次性全部加载。布局文件如下:<androidx.core.widget.NestedScrollView xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" an

2020-10-27 11:55:28 89

原创 2020-10-27

null

2020-10-27 11:33:33 3

原创 2020-10-17

null

2020-10-17 16:55:41 4

原创 深入理解JVM内存区域

一、运行时数据区域

2020-08-12 21:20:16 58

原创 Android多线程开发详解

一、volatile1、内存模型Java内存模型规定所有的变量都是存在主存当中,每个线程都有自己的工作内存。线程对变量的所有操作都必须在工作内存中进行,而不能直接对主存进行操作。并且每个线程不能访问其他线程的工作内存。变量的值何时从线程的工作内存写回主存,无法确定。2、volatilevolatile关键字的作用:保证了变量的可见性(visibility)。被volatile关键字修饰的变量,如果值发生了变更,其他线程立马可见,避免出现脏读的现象。volatile使用场景:一个线程写,多个线程读。

2020-08-06 21:59:41 107

原创 Android 9.0适配指北

一、刘海屏适配1、layoutInDisplayCutoutMode属性Android 9.0系统中提供了3种layoutInDisplayCutoutMode属性来允许应用自主决定该如何对刘海屏设备进行适配。LAYOUT_IN_DISPLAY_CUTOUT_MODE_DEFAULT这是一种默认的属性,在不进行明确指定的情况下,系统会自动使用这种属性。这种属性允许应用程序的内容在竖屏模式...

2020-04-26 18:04:11 193

原创 Android 8.0适配指南

一、为什么要适配从 2018 年 8 月 1 日起,所有向 Google Play 首次提交的新应用都必须针对 Android 8.0 (API 等级 26) 开发; 2018 年 11 月 1 日起,所有 Google Play 的现有应用更新同样必须针对 Android 8.0。国内情况:为保障华为用户的使用体验,华为应用市场已在7月份启动Android P版本应用适配检测工作,针对未做适...

2020-04-23 17:05:37 96

原创 Android7.0应用内安装apk适配

一、为什么要适配从 2018 年 8 月 1 日起,所有向 Google Play 首次提交的新应用都必须针对 Android 8.0 (API 等级 26) 开发; 2018 年 11 月 1 日起,所有 Google Play 的现有应用更新同样必须针对 Android 8.0。国内情况:为保障华为用户的使用体验,华为应用市场已在7月份启动Android P版本应用适配检测工作,针对未做适...

2020-04-22 19:32:50 141

原创 一篇文章帮你搞定ANR

一、什么是ANRANR(Application Not responding),是指应用程序未响应,Android 系统对于一些事件需要在一定的时间范围内完成,如果超过预定时间能未能得到有效响应或者响应时间过长,都会造成 ANR。一般地,这时往往会弹出一个提示框,告知用户「当前 xxx 未响应」,用户可选择继续等待或者 Force Close。二、什么情况会发生ANR输入事件(按键和触摸事...

2020-03-14 17:16:49 49

原创 彻底理解android中的内部存储与外部存储

我们先来考虑这样一个问题:打开手机设置,选择应用管理,选择任意一个App,然后你会看到两个按钮,一个是清除缓存,另一个是清除数据,那么当我们点击清除缓存的时候清除的是哪里的数据?当我们点击清除数据的时候又是清除的哪里的数据?读完本文相信你会有答案。在android开发中我们常常听到这样几个概念,内存,内部存储,外部存储,很多人常常将这三个东西搞混,那么我们今天就先来详细说说这三个东西是怎么

2020-03-01 21:47:30 1089

原创 Android热修复技术-Tinker源码分析

一、使用Patch合成新的dex我们收到后台返回的补丁包后合成调用的是如下代码:TinkerInstaller.onReceiveUpgradePatch(getApplicationContext(), Environment.getExternalStorageDirectory().getAbsolutePath() + "/patch_signed_7zip.apk");Envi...

2019-12-11 15:08:10 91

原创 Android热修复技术-Tinker

dfas

2019-12-05 17:24:35 169

原创 Android热修复技术-自己动手实现热修复

一、基本概念定义:动态的修复或者更新app的行为热修复的好处:在用户没有感知的情况下完成bug修复和一些小功能的更新流行的热修复技术:QQ空间的超级补丁方案微信的Tinker阿里的AndFix美团的Robust、ele的migo、百度的hotfix技术对比:...

2019-11-25 17:29:19 208

原创 Android热修复技术-基本知识

一、class文件1、什么是class文件能够被JVM识别,加载并执行的文件格式。除了Java,Scala、Python等也可以生产class文件。2、怎么生成class文件通过IDE自动帮我们build通过javac去生成3、class文件的作用记录一个类文件的所有信息,注意是所有信息。多于在java源代码中看到的信息(如java类中并没有this、super等关键字。那为什...

2019-11-22 15:50:57 60

原创 MVVM最佳实践

一、什么是MVVMMVP中随着业务逻辑的增加,UI的改变多的情况下,会有非常多的跟UI相关的情况,这样就会造成View的接口会很庞大。而MVVM就解决了这个问题,通过双向绑定的机制,实现数据和UI内容,只要想改其中一方,另一方都能够及时更新的一种设计理念,这样就省去了很多在View层中写很多case的情况,只需要改变数据就行。MVVM 由下面三层组成:View:主要进行视图控件的一...

2019-09-07 20:35:06 337

原创 Android Architecture Components

一、简介Android Architecture Components 是谷歌在Google I/O 2017发布一套帮助开发者解决Android 架构设计的方案。使用Google 提供的处理数据持久化和管理组件生命周期的类,有助于应用开发者们构建更加鲁棒性,可测的,稳定可靠的应用。二、LifecycleLifecycle 组件指的是 android.arch.lifecycle 包下...

2019-08-26 16:18:03 57

原创 一篇文章学会MVP

一、MVCMVP是由MVC演变过来的,所以在学习MVP之前我们先看看MVC。MVC介绍部分转载自天码营-《Android App的设计架构:MVC,MVP,MVVM与架构经验谈》。地址为https://www.tianmaying.com/tutorial/AndroidMVC1、MVC简介MVC全名是Model View Controller,如图,是模型(model)-视图(v...

2019-05-08 15:44:08 59

原创 全面理解Gradle

一、简介Gradle是一个基于JVM的构建工具,是一款通用灵活的构建工具,支持maven, Ivy仓库,支持传递性依赖管理,而不需要远程仓库或者是pom.xml和ivy.xml配置文件,基于Groovy,build脚本使用Groovy编写。Gradle不单单是一个配置脚本,它的背后是三门语言。1)、Groovy LanguageGroovy 也是一门语言,Groovy是一门jvm语言,它最...

2019-03-27 11:18:19 91

原创 Groovy基础

1、声明变量的方法在Groovy中,通过 def 关键字来声明变量和方法。// 定义变量def a = 1;def int b = 1;def c = "hello world";def helloWorld(){ println("hello world"); return 0;}在Groovy中,很多东西都是可以省略的,比如1)、语句后面的分号是可以省略的...

2019-03-09 16:26:56 80

原创 Gradle常用高级自定义总结

一、在Gradle中指定签名文件1、首先自定义一个签名文件的配置代码如下:signingConfigs{ config{ storeFile file("D:\\wangheng\\project\\LiguoKeystore\\android.jks") storePassword "1qaz2wsx" keyAlias "s...

2018-12-24 15:52:37 117

原创 RxJava2.x 源码解析(二)线程切换

一、分析observeOn()方法的线程切换1、示例代码public static void changeThread() { Log.d("TAG", "当前程序所在的线程 " + Thread.currentThread().getName()); Observable<Integer> observable = Observable.create(new...

2018-12-15 15:14:23 90 1

原创 RxJava2.x 源码解析(一)订阅流程

一、示例代码public static void create() { Observable<Integer> observable = Observable.create(new ObservableOnSubscribe<Integer>() { @Override public void subscribe(Observa...

2018-12-10 14:36:24 82

原创 Retrofit 2.0 源码分析

一、简介Retrofit是一个RESTful的HTTP网络请求框架的封装。网络请求的工作本质上是 OkHttp 完成,而Retrofit仅负责网络请求接口的封装。App应用程序通过Retrofit请求网络,实际上是使用Retrofit接口层封装请求参数、Header、Url 等信息,之后由OkHttp完成后续的请求操作。在服务端返回数据之后,OkHttp将原始的结果交给Retrofit,Retrofi根据用户的需求对结果进行解析。

2018-10-23 10:00:46 77

原创 Android DataBinding使用详解

在Google I/O 2015上,伴随着 Android M 预览版发布了DataBinding兼容函数库。DataBinding可以帮开发者节省大量无脑力代码,包括findViewById(),setText(),setOnClick()等。

2018-08-06 14:55:55 143

原创 OkHttp源码分析

一、整理思路整体流程如下:二、源码分析我们按照OkHttp的使用一步一步分析源码1、创建OkHttp对象OkHttpClient client = new OkHttpClient();OkHttpClient的构造函数如下:public OkHttpClient() { this(new Builder());}Builder的构造函数如下public Builde...

2018-08-03 10:16:08 464

原创 Android消息机制(Handler、Looper、MessageQueue)

1、什么是ThreadLocal ThreadLocal 是一个线程内部的数据存储类,通过它可以在指定的线程中存储数据,数据存储以后,只有在指定线程中可以获取到存储的数据,对于其他线程来说则无法获取到数据。

2018-05-02 17:08:41 164

原创 Android常用加密算法

欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I...

2018-03-21 17:24:55 146

原创 Android使用注解处理器实现ButterKnife

欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I...

2018-02-26 21:07:00 196

原创 Android注解详解

一、什么是注解?注解是一种元数据, 可以添加到java代码中。类、方法、变量、参数、包都可以被注解,注解对注解的代码没有直接影响。注解并没有什么魔法, 之所以产生作用, 是解析注解后做了相应的处理。注解仅仅只是个标记罢了。例如@Override就是注解,它的作用是:1、检查是否正确的重写了父类中的方法。2、标明代码,这是一个重写的方法。注解使用@interface定义,@Ove...

2018-02-08 10:44:35 511

原创 Android Binder详解

一、简介Binder是Android中重要的进程间通信方式(IPC)。我们开发中使用的AIDL最终都是通过Binder实现。同时Android中提供很多系统服务(如AMS、PMS等),系统服务和我们的应用运行在不同的进程中,那么我们应用怎么使用系统提供的服务呢?其实简单点说这就是一个进程间通信,也是使用Binder实现。可见Binder在Android中是多么重要。二、为什么使用Binde...

2017-11-04 10:41:01 5047

原创 Retrofit使用详解

一、简介Retrofit是一个RESTful的HTTP网络请求框架的封装,RESTful介绍见博客《RESTful API 最佳实践》。网络请求的工作本质上是OkHttp 完成,Retrofit仅负责网络请求接口的封装。App应用程序通过 Retrofit 请求网络,实际上是使用Retrofit接口层封装请求参数、Header、Url 等信息,之后由OkHttp 完成后续的请求操作。在服务端返...

2017-10-10 17:57:27 335

原创 OkHttp使用详解

一、介绍OkHttp是一个第三方类库,用于android中请求网络。这是一个开源项目,是安卓端最火热的轻量级框架,由移动支付Square公司贡献。用于替代HttpUrlConnection和Apache HttpClient,HttpUrlConnection使用较复杂,android API23 里已移除HttpClient。OkHttp 处理了很多网络疑难杂症:会从很多常用的连接问题中自动...

2017-09-28 23:37:13 230

转载 利用tomcat服务器配置https双向认证、https单向认证-ssl、tls

关键字:利用tomcat服务器配置https双向认证、https单向认证-ssl、tls 首先推荐另一篇不错的文章:http://lixor.iteye.com/blog/1532655 很多朋友、同事问过一个问题,https/ssl怎么做,干什么用的等,今天写出来供大家参考,希望对大家有所帮助. 背景讲述: 1.单向认证,就是传输的数据加密过了,但是不会校验客户端的来源 2.

2017-09-03 21:26:46 396

转载 使用Fiddler抓取android应用http数据

1.首先先下载fiddler,这个直接百度就有啦。2.打开fiddler ,可以看到这个界面还是挺帅的:3.选择Tools - Fiddler Options -Https选项卡将配置设置为如下:4.将Connections 设置为如下:5.现在就是设置手机的时候了,老外教程 以下内容摘自此:我使用的是genymotion:Go to Android set

2017-09-02 21:07:52 1473

原创 Android动画总结

一、动画的作用在Android开发的过程中,View的变化是很常见的,如果View变化的过程没有动画来过渡而是瞬间完成,会让用户感觉很不友好。二、插值器和估值器1、插值器对于补间动画:插值器(TimeInterpolator)的作用是根据时间流逝的百分比计算出动画进度的百分比。有了动画进度的百分比,就可以很容易的计算出动画开始的关键帧与将要显示的帧之间的差异(通过Transform...

2017-08-04 11:53:18 217

原创 Android权限管理

一、自定义权限1、自定义权限的作用自定义权限,一般是考虑到应用共享组件时的安全问题。我们知道在四大组件 AndroidManifest中注册的时候,添加 exported = "true" 属性,这样就可以使其被其他 App 所调用。但是我们希望只有被允许的App才能调用,这个时候可以考虑使用”自定义权限“来实现。我们定义提供组件的App为开放端,使用开放组件的App为接入端,用这两个概念...

2017-07-19 09:16:32 480

原创 Android四大组件之ContentProvider

一、简介ContentProvider是android四大组件之一的内容提供者,它主要的作用就是将程序的内部的数据和外部进行共享,为数据提供外部访问接口,被访问的数据主要以数据库的形式存在(可以是任意数据),而且还可以选择共享哪一部分的数据。这样一来,对于程序当中的隐私数据可以不共享,从而更加安全。ContentProvider是android中一种跨程序共享数据的重要组件。二、基本知识...

2017-07-11 23:14:04 4598

原创 android四大组件之BroadcastReceiver

一、作用BroadcastReceiver是一个全局监听器,实现了系统中不同组件之间的通信。OnXxxListener只是程序级别的监听器,运行在同一进程中。BroadcastReceiver属于系统级别的监听器,拥有自己的进程,即使app没有运行,只要存在与之匹配的Intent被广播出来,BroadcastReceiver就会被激发。应用场景:1、Android不同组件间的通信(含 ...

2017-02-24 17:37:15 216

原创 Android AIDL使用解析

一、简介AIDL 即 Android Interface Definition Language,翻译就是Android接口定义语言,用于定义服务器和客户端通信接口的一种描述语言,可以拿来生成用于IPC的代码。从某种意义上说AIDL其实是一个模板,因为在使用过程中,实际起作用的并不是AIDL文件,而根据AIDL生成的一个IInterface的实例代码,AIDL其实是为了避免我们重复编写代码而出...

2017-02-15 16:53:24 225

图解HTTP.pdf高清完整版 带目录

图灵经典日本畅销丛书。本书对互联网基盘——HTTP 协议进行了全面系统的介绍。作者由 HTTP 协议的发 展历史娓娓道来,严谨细致地剖析了 HTTP 协议的结构,列举诸多常见通信场景及实战 案例,最后延伸到 Web 安全、最新技术动向等方面。本书的特色为在讲解的同时,辅以 大量生动形象的通信图例,更好地帮助读者深刻理解 HTTP 通信过程中客户端与服务 器之间的交互情况。读者可通过本书快速了解并掌握 HTTP 协议的基础,前端工程师分 析抓包数据,后端工程师实现REST API、实现自己的HTTP服务器等过程中所需的 HTTP 相关知识点本书均有介绍。 本书对互联网基盘——HTTP协议进行了全面系统的介绍。作者由HTTP协议的发展历史娓娓道来,严谨细致地剖析了HTTP协议的结构,列举诸多常见通信场景及实战案例,最后延伸到Web安全、最新技术动向等方面。本书的特色为在讲解的同时,辅以大量生动形象的通信图例,更好地帮助读者深刻理解HTTP通信过程中客户端与服务器之间的交互情况。读者可通过本书快速了解并掌握HTTP协议的基础,前端工程师分析抓包数据,后端工程师实现REST API、实现自己的HTTP服务器等过程中所需的HTTP相关知识点本书 均有介绍。, 本书适合Web开发工程师,以及对HTTP协议感兴趣的各层次读者。 图灵经典日本畅销丛书。本书对互联网基盘——HTTP 协议进行了全面系统的介绍。作者由 HTTP 协议的发 展历史娓娓道来,严谨细致地剖析了 HTTP 协议的结构,列举诸多常见通信场景及实战 案例,最后延伸到 Web 安全、最新技术动向等方面。本书的特色为在讲解的同时,辅以 大量生动形象的通信图例,更好地帮助读者深刻理解 HTTP 通信过程中客户端与服务 器之间的交互情况。读者可通过本书快速了解并掌握 HTTP 协议的基础,前端工程师分 析抓包数据,后端工程师实现REST API、实现自己的HTTP服务器等过程中所需的 HTTP 相关知识点本书均有介绍。 本书对互联网基盘——HTTP协议进行了全面系统的介绍。作者由HTTP协议的发展历史娓娓道来,严谨细致地剖析了HTTP协议的结构,列举诸多常见通信场景及实战案例,最后延伸到Web安全、最新技术动向等方面。本书的特色为在讲解的同时,辅以大量生动形象的通信图例,更好地帮助读者深刻理解HTTP通信过程中客户端与服务器之间的交互情况。读者可通过本书快速了解并掌握HTTP协议的基础,前端工程师分析抓包数据,后端工程师实现REST API、实现自己的HTTP服务器等过程中所需的HTTP相关知识点本书 均有介绍。, 本书适合Web开发工程师,以及对HTTP协议感兴趣的各层次读者。

2018-08-06

SQL必知必会

SQL经典畅销书,麻省理工学院、伊利诺伊大学等众多大学的参考教材! 由浅入深地讲解SQL的基本概念和语法,内容丰富,简洁实用,数据的排序、过滤和分组、表、视图、联结、子查询、游标、存储过程和触发器等核心知识点一应俱全。 内涵丰富精彩实例,实例已根据新版本更新,同时便于查阅!

2018-08-04

空空如也

空空如也

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

TA关注的人 TA的粉丝

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