自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

小一的专栏

坚持、努力、谦逊

  • 博客(607)
  • 资源 (8)
  • 收藏
  • 关注

原创 HarmonyOS第一课-对比Kotlin,快速入门TypeScript

在 TypeScript 和 Kotlin 中,函数的定义都包括函数名、参数列表和函数体。TypeScript 函数定义示例kotlin函数定义在 TypeScript 中,类定义包括类名、构造函数和成员变量或方法。构造函数在 TypeScript 中被命名为 constructor。greet() {${this// 输出 "Hello, my name is Alice" // 输出 "I work in Engineering"`);

2023-11-21 11:44:57 2521

原创 2021年度总结&&2022年展望

前言因为疫情关系,第一年在北京过除夕和生日,幸运的是今年的除夕和生日是有媳妇和甜宝一起陪伴的,非常开心。因为有爱我的人想让我变成更优秀的自己,所以今年的总结和规划就不拖欠了,在我生日当天进行一下21年总结和22年规划。2021年度总结21年整体是一个美好的年份,相比于20年的忙碌、19年的攀爬、18年的低谷,今年整体是平稳且幸福的。按照工作和生活分别总结一下21年工作和生活做的好的和不好的地方吧。工作上做的好的:搭建合理的人员梯队,北京和重庆两地同学齐心协力,共同支撑懂车帝的业务发展;A

2022-02-01 18:28:45 6642 2

原创 2021年6月感悟

前言说实话,去年的年终总结一直没写,不是不想写,确实是没时间已经作为Android负责人一周年了,今天还是有些想法,随手记录一下感悟研发负责人一定要对自己的决策负责,千万不能用战术上勤奋去掩盖战略上的懒惰,不然容易得不偿失;研发负责人深入一线需要把控尺度,否则容易陷入细节,难以抽身;大家习惯性抢功劳,推锅,不担当。我始终认为这是错的,Leader一定要敢于担当,承担责任,并且要把成果共享;你必须很努力,才能积攒一定的运气,让工作和生活步入正轨。但是工作和生活永远都不是一帆风顺的,因此你不能做

2021-06-16 18:26:18 3617 3

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

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

2020-01-31 14:28:16 2559

原创 2019年度总结

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

2020-01-26 22:40:13 872 3

原创 Android源码解析-ViewModel

前言最近一个月主要实现了IM功能,其中UI框架使用了ViewModel和LiveData的存储和通知机制,实现后代码简洁易于维护。感慨于Android arch components控件强大同时,需要顺带分析一波其中源码实现。今天先来分析一下ViewModel的源码实现。ViewModel简介ViewModel是通过关联生命周期的方式来存储和管理跟UI相关的数据。即使configurati...

2019-09-27 16:30:52 1103

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

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

2019-07-04 11:32:55 907 2

原创 2018年终总结

前言2018年对我来说真的是跌宕起伏,难以忘怀的一年。先对2018做个总结吧。2018回顾工作:2018是我工作角色转变的一年,由一线研发工程师进化为小组leader。虽然工资没有太大变化,但是担心和顾虑的事情却成倍的增加。每个组员的状态、发展,整个业务线的情况,都需要我去关注、去了解。2018我给自己打85分,2019希望自己更加努力,带好整个团队,并且关注前沿技术,把UGC的播放器和发布...

2019-02-04 17:11:12 1067 1

转载 RecyclerView的缓存机制

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

2018-08-10 19:58:23 10267 5

原创 Java泛型类继承实现

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

2018-08-07 22:22:24 12381 3

原创 LeakCanary源码分析

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

2018-08-05 17:34:36 1038

原创 今日头条内推

今日头条懂车帝招Android研发我的邮箱:[email protected],简历来来来。

2018-07-20 13:39:29 3065

原创 2017年终总结

距离2017年结束仅剩几个小时的时间了,这一年感慨万千,对照去年的目标说一下今年的进展吧。每年我都会提前给自己许下要完成的事情,2016年的目标如下:事业上,需要有更明确的奋斗目标和更具有挑战性的工作内容,且能让我的薪资足以承担起北京的房价压力。身体上,顺利的完成膝盖前叉韧带重建手术,最好能在一个半月之内恢复,不耽误以后的工作。经济上,计划下半年出手,北京的房子长远还是看涨的,希望能拿下一个合

2017-12-31 18:57:46 1901

原创 Android Intent Flag实现singleTask模式

Android Intent FlagAndroid Intent 常用的Flag有以下几种:FLAG_ACTIVITY_NEW_TASKFLAG_ACTIVITY_CLEAR_TOPFLAG_ACTIVITY_SINGLE_TOPFLAG_ACTIVITY_CLEAR_TASKFlag一般是组合使用。本文的结论需要增加一个前提,所有添加Flag启动的Activity本身的launch m

2017-10-15 14:47:34 10363 2

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

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

2017-07-29 10:43:09 1338

原创 PagerSlidingTabStrip源码解析

PagerSlidingTabStrip源码解析集成使用导包在Android Studio中,直接在build.gradle文件中增加如下依赖:dependencies { compile 'com.astuetz:pagerslidingtabstrip:1.0.1' }XML文件布局在XML文件中使用时,PagerSlidingTabStrip通常声明在ViewPager的上方.<c

2017-06-27 17:44:54 1019

原创 无序数组中求中位数

题目现有一些随机生成的数字要将其依次传入,请设计一个高效算法,对于每次传入一个数字后,算出当前所有传入数字的中位数。(若传入了偶数个数字则令中位数为第n/2小的数字,n为已传入数字个数)。 给定一个int数组A,为传入的数字序列,同时给定序列大小n,请返回一个int数组,代表每次传入后的中位数。保证n小于等于1000。 测试样例:[1,2,3,4,5,6],6返回:[1,1,2,2,3,3]思

2017-06-08 16:34:15 7991

原创 ThreadLocal的实现原理

ThreadLocal的实现原理ThreadLocal是线程内部的数据存储类,通过它可以指定的线程中存储数据,数据存储以后,只有在指定线程中可以获取到存储的数据,对于其他线程来说则无法获取数据. 这里基于JDK7进行ThreadLocal的源码实现分析.自定义ThreadLocal实现如何让大家去实现一个ThreadLocal,我相信很多同学第一时间会写出如下代码:public class Thr

2017-05-22 13:07:24 4613 2

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

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

2017-04-21 19:38:15 2817

原创 VUE训练营——Todo List

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

2017-04-19 18:46:49 1845

原创 近况

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

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

原创 2016年终总结

回首过去一年我还是习惯过农历年,总觉得春节假期还没过去,新的一年就不算开始。鸡年了,首先祝自己和看我博客的朋友们新年快乐,鸡年大吉(ps:说鸡不说吧,文明你我他)。事业终于在去年6月底顺利晋升到P6,算是了却了自己的一桩心愿,毕竟一路走来颇不容易,从服务端开发转型客户端开发,也是费心费力,好在结果不差,晋升面试由于准备的比较充分,也没出什么问题。不过晋升加薪确实有点食之无味,弃之可惜啊。房子如果说1

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

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

RxJava入门系列四,Android中的响应式编程在入门系列1,2,3中,我基本介绍了RxJava是如何使用的.但是作为一名Android开发人员,你怎么让RxJava能为你所用呢?这篇博客我将针对Android开发来介绍一下RxJava的使用场景.RxAndroidRxAndroid是为Android打造的RxJava扩展.通过RxAndroid可以让你的Android开发变得更轻松.首先,Rx

2016-12-29 12:39:29 2725

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

RxJava入门系列三,响应式编程在RxJava入门系列一,我向你介绍了RxJava的基础架构.RxJava入门系列二,我向你展示了RxJava提供的多种牛逼操作符.但是你可能仍然没能劝服自己使用RxJava,这一篇博客里我将向你展示RxJava提供的其他优势,没准了解了这些优势,你就真的想去使用RxJava了.异常处理直到目前为止,我都没有去介绍onComplete()和onError()方法.这

2016-12-28 13:28:28 2770

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

RxJava入门系列二,操作符篇在RxJava入门系列一基础篇中,我介绍了RxJava的基础框架,同时也介绍了map()操作符的使用.然而我知道你现在对RxJava的了解还不够深入,所以你不能让自己去在实际代码中使用RxJava.但是通过这篇文章,通过更多操作符的介绍,你将见识到RxJava的强大,没准你会开始愿意使用RxJava. 让我们先通过一个例子来介绍一下RxJava的操作符.准备工作假设

2016-12-26 19:05:36 1548

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

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

2016-12-24 18:29:51 1372

原创 ActiveAndroid源码分析

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

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

原创 Volley超时重试机制详解

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

2016-12-03 17:01:49 10289

翻译 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 provides a consistent development environment acros

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

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

Select基础知识我们在实现select语句的时候,通用的sql格式如下: select *columns* from *tables* where *predicate* group by *columns* having *predicate* order by *columns* limit *start*, *offset*;很多同学想

2016-10-21 17:53:27 38023 11

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

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

2016-09-27 14:47:42 17824

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

前言今天带大家过一遍ListView常用的优化方案,重点在于解决ListView的item中包含异步加载图片时遇到的图片闪烁和显示错乱等情况.ListView的item回收和重用Android系统为了使得ListView性能优化,会为ListView增加item行缓存.简单来说,假设ListView有1万个item,但是Android只为其创建n个item(n为当前屏幕能显示的item的数量).Li

2016-09-27 14:37:45 1223

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

思路今天带大家实现一个上拉加载更多的ListView.GitHub传送门:PulmListView, 欢迎大家fork&&star.先带大家看一下示例效果: 然后带大家理一下实现思路, 如果我们要实现一个上拉加载更多的ListView, 我们需要实现的功能包括: 一个自定义的ListView, 并且该ListView能够判断当前是否已经处于最底部.一个自定义的FooterView, 用于在Li

2016-09-13 21:18:54 5317

转载 使用LeakCanary检测内存泄露

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

2016-09-06 14:26:34 2926

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

前言我相信很多Android开发同学都遇到过这样的需求:实现一个Splash界面,界面上有应用相关的背景图片和一个开始按钮.点击按钮之后进入主页,以后用户再打开应用就不显示这个Splash界面了.也相信很多同学都遇到了这样的困惑:第二次进入应用,尽管你在Splash界面已经直接跳转到首页了,但是还是有个白屏或者黑屏或者带ActionBar的白屏闪现一下.如果你也遇到这个问题,那就继续阅读这

2016-08-30 17:16:36 4142

翻译 掌握CoordinatorLayout

原文链接Mastering the Coordinator Layout在Google I/0 2015大会上,Google发布了一个与Material Design相关的控件支持库,在这个控件库中我们可以找到很多新的ViewGroup控件,例如 AppBarLayout,CollapsingToolbarLayout和CoordinatorLayout. 考虑到这些新的控件非常有用,因此我决定写

2016-08-22 15:34:59 2685

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

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

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

原创 LayoutInflater.inflate源码详解

LayoutInflater.inflate源码详解LayoutInflater的inflate方法相信大家都不陌生,在Fragment的onCreateView中或者在BaseAdapter的getView方法中我们都会经常用这个方法来实例化出我们需要的View. 假设我们有一个需要实例化的布局文件menu_item.xml:<LinearLayout xmlns:android="http:/

2016-08-02 16:22:44 1557

原创 开发机转成win7

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

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

原创 写在天气不错的日子

前言趁着还有感觉总结一下这次的晋升面试。虽然只是5-6的改变,但是于我而言依旧感触良多。两年前2年前的今天,我正式入职A,但是摆在眼前的事实就是我从一名优秀的LNMP后台开发被强制转成了Android开发工程师,而且还是与Android Framework打交道较多的工程师。作为Android零基础,Java基本零基础的菜鸟程序员,我并没有害怕,因为我知道自己已经入门了,自己也是能够在校招脱颖而出的

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

ActiveAndroid-3.0-JAR包

ActiveAndroid 3.0版本的jar包.

2016-12-02

Android打包boot.img工具mkbootfs

用于Android打包boot.img文件,主要是针对ramdisk

2014-07-08

ExpandableListView小项目展示

博客里讲解了自己利用ExpandableListView实现的一个Demo,大家可以下载参考。

2014-06-21

windows scoket编程

windows socket编程,两个程序,一个客户端,一个服务器端,实现了服务器端监听客户端的请求,客户端发送数据包,服务器段接收并返回。说白了,就是中国传媒大学研究生计算机网络的第7次实验

2011-11-28

LAMP基础学习

这是我四个月来总结的lamp的经验,非常适合初学者阅读,请大家尽情下载,支持开源

2011-10-10

apt-mirror搭建ubuntu本地仓库源

我自己总结的如何搭建ubuntu本地仓库源,非常具有参考价值,和大家共享一下

2011-08-22

关于ntp服务器搭建

我自己总结的如何搭建ntp服务器,希望大家也能从中学到知识.

2011-08-22

空空如也

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

TA关注的人

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