自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

小一的专栏

坚持、努力、谦逊

原创 10分钟带你入门NestedScrolling机制

一、从一个简单的DEMO看什么是嵌套滚动## 我们先来看一下DEMO的效果,直观的感受一下什么是嵌套滚动: 在解释上图涉及到哪些嵌套滑动操作之前,我先贴一下嵌套布局的xml结构: <com.wzy.nesteddetail.view.NestedWebViewRecyclerViewGro...

2020-01-31 14:28:16 136 0

原创 2019年度总结

2019年度总结 今天春节被肺炎闹得是人心惶惶,而我也不凑巧的着凉感冒了。今天终于想起来19年年终总结还没写,赶紧补上。 2019年回顾 19年整体是一个从低谷向上攀爬的过程。 工作上:经历了小组人员调动,公司发展重心变化等种种事情,最终还是平稳的过渡到2020了。总结一下自己在工作上做的好的和不...

2020-01-26 22:40:13 319 2

原创 Android源码解析-ViewModel

前言 最近一个月主要实现了IM功能,其中UI框架使用了ViewModel和LiveData的存储和通知机制,实现后代码简洁易于维护。 感慨于Android arch components控件强大同时,需要顺带分析一波其中源码实现。今天先来分析一下ViewModel的源码实现。 ViewModel简...

2019-09-27 16:30:52 282 0

原创 Java面试题目-单链表翻转(递归+非递归实现)

前言 个人在最近2年一直担任一面面试官,平时长问的题目就是单链表的翻转。发现很多面试同学只知道非递归实现,提到递归实现都是一脸懵逼。这里普及一下具体实现方案。 链表数据结构 我们这里就定义一个最简单的单链表: class Node { Node next; int val; } 非递归 pu...

2019-07-04 11:32:55 375 1

原创 2018年终总结

前言 2018年对我来说真的是跌宕起伏,难以忘怀的一年。先对2018做个总结吧。 2018回顾 工作:2018是我工作角色转变的一年,由一线研发工程师进化为小组leader。虽然工资没有太大变化,但是担心和顾虑的事情却成倍的增加。每个组员的状态、发展,整个业务线的情况,都需要我去关注、去了解。20...

2019-02-04 17:11:12 690 0

转载 RecyclerView的缓存机制

原文链接 原文出处:基于滑动场景解析RecyclerView的回收复用机制原理 前言 之前优化Feed流框架的时候,看到过一篇基于滑动场景分析RecyclerView回收复用的文章,感觉十分经典,因此转载复习之。 正题 RecyclerView 的回收复用机制的内部实现都是由...

2018-08-10 19:58:23 5277 2

原创 Java泛型类继承实现

项目中经常会碰到泛型继承实现,这里讲解一下Java是如何实现泛型继承的。 泛型父类声明 泛型父类声明如下: public class Father&lt;T, M&gt; { public void test(T t, M m) { // do s...

2018-08-07 22:22:24 6229 0

原创 LeakCanary源码分析

基本使用 LeakCanary是用来检测Android内存泄漏的工具。 在gradlew文件中引入: dependencies { debugCompile 'com.squareup.leakcanary:leakcanary-android:1.5.4' ...

2018-08-05 17:34:36 608 0

原创 今日头条内推

今日头条懂车帝招Android研发 我的邮箱:wzyll1314@gmail.com,简历来来来。

2018-07-20 13:39:29 2600 0

原创 2017年终总结

距离2017年结束仅剩几个小时的时间了,这一年感慨万千,对照去年的目标说一下今年的进展吧。每年我都会提前给自己许下要完成的事情,2016年的目标如下: 事业上,需要有更明确的奋斗目标和更具有挑战性的工作内容,且能让我的薪资足以承担起北京的房价压力。 身体上,顺利的完成膝盖前叉韧带重建手术,最好能在...

2017-12-31 18:57:46 1486 0

原创 Android Intent Flag实现singleTask模式

Android Intent FlagAndroid Intent 常用的Flag有以下几种: FLAG_ACTIVITY_NEW_TASK FLAG_ACTIVITY_CLEAR_TOP FLAG_ACTIVITY_SINGLE_TOP FLAG_ACTIVITY_CLEAR_TASK Flag...

2017-10-15 14:47:34 3382 0

原创 Android查看应用方法数-65536限制

前言当一个项目快速迭代时,难免引进各种依赖,从而导致单个apk超过65k的限制。如何查询apk的方法数也是每个Android Developer必备技能。我使用的是dex-method-counts,这里跟大家分享一下它的使用。下载&&编译下载dex-method-counts到本...

2017-07-29 10:43:09 979 0

原创 PagerSlidingTabStrip源码解析

PagerSlidingTabStrip源码解析集成使用导包在Android Studio中,直接在build.gradle文件中增加如下依赖:dependencies { compile 'com.astuetz:pagerslidingtabstrip:1.0.1'...

2017-06-27 17:44:54 718 0

原创 无序数组中求中位数

题目现有一些随机生成的数字要将其依次传入,请设计一个高效算法,对于每次传入一个数字后,算出当前所有传入数字的中位数。(若传入了偶数个数字则令中位数为第n/2小的数字,n为已传入数字个数)。 给定一个int数组A,为传入的数字序列,同时给定序列大小n,请返回一个int数组,代表每次传入后的中位数。...

2017-06-08 16:34:15 4737 0

原创 ThreadLocal的实现原理

ThreadLocal的实现原理ThreadLocal是线程内部的数据存储类,通过它可以指定的线程中存储数据,数据存储以后,只有在指定线程中可以获取到存储的数据,对于其他线程来说则无法获取数据. 这里基于JDK7进行ThreadLocal的源码实现分析.自定义ThreadLocal实现如何让大家...

2017-05-22 13:07:24 3068 1

原创 Vue训练营-自定义组件

项目截图GitHub地址由于这次作业比较简单,所以代码集成到上次的TodoList的项目中.主界面通过路由进行界面切换.技术点只要技术点包括: Vue自定义组件 Vue组件间通信 自定义组件就不多说了,直接看官网即可.Vue组件间通信方式包括: 父->子,使用props传值. 子->父...

2017-04-21 19:38:15 2468 0

原创 VUE训练营——Todo List

VUE训练营——Todo List 简易的Todo List-github地址. 项目截图项目技术点项目比较简单,主要包括: vue-cli vue基本指令 vue-router 关键代码关键代码均在TodoList.vue中,这里只贴出js相关处理:<script> let ...

2017-04-19 18:46:49 1288 0

原创 近况

技术最近由于内部工作方向的关系,开始接触JS,同时自己也学习使用了vue框架。生活妈蛋,房价是要上天的节奏。无奈准备放弃北京,准备回青岛买一套房子,也不便宜,均价2万多,无奈啊

2017-03-26 19:45:28 1209 3

原创 2016年终总结

回首过去一年我还是习惯过农历年,总觉得春节假期还没过去,新的一年就不算开始。鸡年了,首先祝自己和看我博客的朋友们新年快乐,鸡年大吉(ps:说鸡不说吧,文明你我他)。事业终于在去年6月底顺利晋升到P6,算是了却了自己的一桩心愿,毕竟一路走来颇不容易,从服务端开发转型客户端开发,也是费心费力,好在结果...

2017-02-03 16:29:09 1040 2

翻译 RxJava入门系列四,Android中的响应式编程

RxJava入门系列四,Android中的响应式编程在入门系列1,2,3中,我基本介绍了RxJava是如何使用的.但是作为一名Android开发人员,你怎么让RxJava能为你所用呢?这篇博客我将针对Android开发来介绍一下RxJava的使用场景.RxAndroidRxAndroid是为And...

2016-12-29 12:39:29 2412 0

翻译 RxJava入门系列三,响应式编程

RxJava入门系列三,响应式编程在RxJava入门系列一,我向你介绍了RxJava的基础架构.RxJava入门系列二,我向你展示了RxJava提供的多种牛逼操作符.但是你可能仍然没能劝服自己使用RxJava,这一篇博客里我将向你展示RxJava提供的其他优势,没准了解了这些优势,你就真的想去使用...

2016-12-28 13:28:28 2551 0

翻译 RxJava入门系列二,操作符篇

RxJava入门系列二,操作符篇在RxJava入门系列一基础篇中,我介绍了RxJava的基础框架,同时也介绍了map()操作符的使用.然而我知道你现在对RxJava的了解还不够深入,所以你不能让自己去在实际代码中使用RxJava.但是通过这篇文章,通过更多操作符的介绍,你将见识到RxJava的强大...

2016-12-26 19:05:36 1281 0

翻译 RxJava入门系列一,基础篇

RxJava入门系列一,基础篇RxJava在Android开发者中变得越来越流行(ps:2016年底才用的我表示自己太out了).使用RxJava唯一的问题就是当你第一次接触RxJava时,你会觉得RxJava特别难上手,特别是当你之前只使用同步式编程语言,没有接触过响应式编程理念.但是一旦你真正...

2016-12-24 18:29:51 1152 0

原创 ActiveAndroid源码分析

基本使用ActiveAndroid集成在AndroidStudio中,我们可以通过两种方式集成ActiveAndroid.第一种是使用Gradle配置依赖:repositories { mavenCentral() maven { url "https://oss.son...

2016-12-09 16:09:15 1628 1

原创 Volley超时重试机制详解

Volley超时重试机制基础用法Volley为开发者提供了可配置的超时重试机制,我们在使用时只需要为我们的Request设置自定义的RetryPolicy即可. 参考设置代码如下:int DEFAULT_TIMEOUT_MS = 10000; int DEFAULT_MAX_RETRIES = ...

2016-12-03 17:01:49 8815 0

翻译 Supporting Multiple Screens(支持Android各种屏幕尺寸)

Supporting Multiple ScreensAndroid runs on a variety of devices that offer different screen sizes and densities. For applications, the Android system...

2016-10-31 16:34:05 4958 4

原创 Mysql获取每组前N条记录

Select基础知识 我们在实现select语句的时候,通用的sql格式如下: select *columns* from *tables* where *predicate* group by *columns* having *predicate* ord...

2016-10-21 17:53:27 25433 9

原创 解决Volley的javax.net.ssl.SSLHandshakeException异常

问题复现步骤在我开发的应用中,获取数据的协议是通过https.因为我们这边的证书都是通过CA认证的,所以不需要对Volley进行额外的网络配置.但是,今天测试同学突然找到我,说网络请求不通连不上网络了.吓得我赶紧出了一个debug版本,发现在自己的机器上是ok的,但是去测试同学那边莫名其妙的就跪了...

2016-09-27 14:47:42 9604 2

原创 Android ListView滑动过程中图片异步加载优化(配合Volley使用)

前言今天带大家过一遍ListView常用的优化方案,重点在于解决ListView的item中包含异步加载图片时遇到的图片闪烁和显示错乱等情况.ListView的item回收和重用Android系统为了使得ListView性能优化,会为ListView增加item行缓存.简单来说,假设ListVie...

2016-09-27 14:37:45 916 0

原创 Android上拉加载更多ListView——PulmListView

思路今天带大家实现一个上拉加载更多的ListView.GitHub传送门:PulmListView, 欢迎大家fork&&star.先带大家看一下示例效果: 然后带大家理一下实现思路, 如果我们要实现一个上拉加载更多的ListView, 我们需要实现的功能包括: 一个自定义的L...

2016-09-13 21:18:54 4750 0

转载 使用LeakCanary检测内存泄露

前言刚才在项目里使用LeakCanary检测出了一个使用NotificationBuilder导致的内存泄露,发现LeakCanary真是神器啊.这里转载一篇介绍LeakCanary使用的博客,里面的视频也非常不错,还可以用来学习英语.在项目中集成LeakCanary非常简单,只需要如下两步.添加...

2016-09-06 14:26:34 2394 0

原创 Android Splash界面解决白屏、黑屏等问题

前言我相信很多Android开发同学都遇到过这样的需求: 实现一个Splash界面,界面上有应用相关的背景图片和一个开始按钮. 点击按钮之后进入主页,以后用户再打开应用就不显示这个Splash界面了. 也相信很多同学都遇到了这样的困惑: 第二次进入应用,尽管你在Splash界面已经直接跳转到首页了...

2016-08-30 17:16:36 3166 0

翻译 掌握CoordinatorLayout

原文链接Mastering the Coordinator Layout在Google I/0 2015大会上,Google发布了一个与Material Design相关的控件支持库,在这个控件库中我们可以找到很多新的ViewGroup控件,例如 AppBarLayout,CollapsingTo...

2016-08-22 15:34:59 2321 0

原创 Android使用tcpdump和wireshark抓取并分析网络数据包

前言由于对技术的好奇心,我想使用tcpdump来抓取浏览微信朋友圈的数据包.这里简要介绍一下实现过程.准备工作 一台root的手机.(ps: 推荐使用刷机精灵一键root工具) tcpdump工具. wireshark工具. 抓包实践下载android版本的tcpdump适合Android手机版的...

2016-08-17 13:19:39 4156 1

原创 LayoutInflater.inflate源码详解

LayoutInflater.inflate源码详解LayoutInflater的inflate方法相信大家都不陌生,在Fragment的onCreateView中或者在BaseAdapter的getView方法中我们都会经常用这个方法来实例化出我们需要的View. 假设我们有一个需要实例化的布...

2016-08-02 16:22:44 949 0

原创 开发机转成win7

不舍自从我研究生入学开始,就一直和Ubuntu系统打交道。从最初的Ubuntu10.04一直到我现在的Ubuntu13.10,Ubuntu系统伴随了我的技术成长。替换原因最主要的原因,加入BAT任何一家公司,基本只支持window和mac,使用Ubuntu显得非常异类。而且公司很多办公软件均没有适...

2016-07-24 10:23:37 797 1

原创 写在天气不错的日子

前言趁着还有感觉总结一下这次的晋升面试。虽然只是5-6的改变,但是于我而言依旧感触良多。两年前2年前的今天,我正式入职A,但是摆在眼前的事实就是我从一名优秀的LNMP后台开发被强制转成了Android开发工程师,而且还是与Android Framework打交道较多的工程师。作为Android零基...

2016-07-01 17:55:03 1309 1

原创 Android Studio断点调试

Android Studio断点调试Android Studio包含一个debugger程序,可以帮助你在模拟器和真机上调试你的android应用.通过Android Studio的debugger,你可以: 选择你想调试的设备. 在代码上设置断点. 在运行时去检查变量和表达式的值. 可能平时大家...

2016-07-01 17:35:29 14527 0

原创 SparseArray源码解析

SparseArray源码解析Android官方推荐:当使用HashMap(K, V),如果K为整数类型时,使用SparseArray的效率更高.我们通过分析SparseArray的源码,来看一下为什么当K为整数类型时,使用SparseArray的效率更高.之前写过一篇Android Sparse...

2016-06-01 21:01:43 2612 0

原创 Volley HTTP 缓存机制

Volley HTTP 缓存规则在介绍Volley的HTTP缓存机制之前,我们首先来看一下HTTP HEADER中和缓存有关的字段有: 规则 字段 示例值 类型 作用 新鲜度 Expires Sat, 23 Jul 2016 03:34:17 GMT 响应 告...

2016-05-30 20:05:46 5976 0

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