自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

下位子的博客

本人开发经验和积累

原创 『Android Tip』-- Shortcuts 快捷方式

开篇 Shortcuts 功能跟随着 Android7.1 Nougat 一起诞生,其主要目在于用户可以定义一些常用的操作路径,以快捷方式的形式存在,这些快捷方式展示在可以支持的设备上,帮助用户快速启动常用或者推荐的页面和行为。 最近也是有 Shortcut 相关的需求需要开发,特此进行了总结,希...

2019-05-14 18:15:05 34 0

原创 『技术分享』-- 使用极光 IM 构建聊天功能

前言 距离上次极光征文不知不觉已经过了将近一年的时间,先感谢上次的征文比赛,通过 《我和 Android 推送的时间简史》 这篇文章获奖,这次又厚着脸皮再次参与,因为项目一直很忙,只得利用周末时间准备 demo 素材和写文章,不好之处,多多见谅。 上一篇文章主要讲述了 我跟 极光推送 的关系,以...

2019-01-20 12:42:49 3227 0

原创 『数据结构与算法』——栈

定义 先入后出,有点类似将书放在抽屉里,先放进去的书,如果想拿到他,必须将他上面书拿完才可以,粗俗的形容可以这么比喻:“吃了吐”叫栈,“吃了拉”叫队列,话粗理不粗。栈是一种“操作受限”的线性表,只允许一段插入和删除数据。 从功能上看,数组或链表确实可代替栈,但是在特定的情况中,数组和链表暴露的接口...

2018-12-01 15:32:14 82 0

原创 『数据结构与算法』——数组

定义 数组(Array)是一种线性表数据结构。它用一组连续的内存空间,来存储一组具有相同类型的数据。 线性表 顾名思义,线性表就是数据排成像一条线一样的结构。每个线性表上的数据最多只有前和后两个方向。其实除了数组,链表、队列、栈等也是线性表结构。 连续内存,类型相同 我们知道,计算机会给每个...

2018-12-01 15:31:47 49 0

原创 『数据结构与算法』——链表

底层存储结构 与 数组 对比,数组需要一块 连续的内存空间 来存储,对内存要求很高。如果我们申请 50MB 的内存,即便内存的剩余内存大于 50MB,但是如果内存不是连续的,也是很有可能申请失败。 而 链表 与之相反,它并不需要一块连续的内存,通过 指针 将一组 零散的内存块 串联起来使用。 下面...

2018-12-01 15:31:14 75 0

原创 『数据结构与算法』—— 队列

定义 有一定的业务需求就会有对应的技术或数据结构产生。我们都知道 CPU 的资源是有限的,任务的处理速度与线程个数并不是线性正相关。相反过多的线程反而会导致 CPU 频繁切换,处理性能下降。所以线程池的大小一般都是综合考虑处理任务的特点和硬件环境,来事先设置的。 队列的特点 先进先出,可以想象成排...

2018-12-01 15:29:46 55 0

原创 『数据结构与算法』—— 复杂度

重要性 复杂度分析是整个算法学习的精髓,只要掌握了它,数据结构和算法的内容基本上就掌握了一半。 测试结果非常依赖测试环境 测试结果受数据规模的影响很大 我们需要一个不用具体的测试数据来测试,就可以粗略地估计算法的执行效率的方法。 大 O 复杂度表示法 int cal(int n) {...

2018-12-01 15:28:48 51 0

原创 『进阶之路』—— 线程池

线程 概念 说到线程池,不得不说一下线程。无论是 java 还是 Android ,线程都是一个非常重要的概念,它是所有基础操作的载体,无论是更新 UI,或是请求网络等耗时操作,都需要在线程中完成。众所周知,Android 中将线程分为 主线程 和 工作线程。那主线程和工作线程有什...

2018-08-01 16:02:38 76 0

原创 『技术分享』-- 我的第一个 RN 项目-趣闻

前言 之前利用自己的业余时间入门了微信小程序,并写了一个入门项目 我的第一个微信小程序-趣闻 ,整体效果和之前写的 kotlin-android 版的 趣闻 模块和功能上没有什么区别。不得不说,相比较 Android ,小程序开发起来真的是很舒服,完善的 API和封装全面的组件,安装官方详细的开...

2018-06-26 17:40:14 188 0

原创 『技术分享』—— 我的第一个微信小程序-趣闻

前言 我去年3月份写了一个小项目 快毕业了,撸一个小项目(趣闻) 作为自己的毕设项目,当时接触 Android 也才半年的时间,所以写的略简单,偏入门级别的,有兴趣的话可以 clone 看一下。趣闻 小程序 的火热程度我就不多说了,我之前对这个就蛮有兴趣的,于是花了大概5天的时间,完成了 学...

2018-06-15 15:35:54 673 0

原创 『Android Tip』-- 模拟手势操作

平时 Android 开发中总会遇到奇葩的功能或者需求,这里做个记录和积累,以便后面开发过程中遇到类似的问题,可以快速的解决。Android tips 前言 这个版本终于快结束了,历时一个月的时间,这段时间里重复着开发、找 BUG 和解 BUG 的工作,人已经快麻木了,不过最后看到...

2018-05-29 21:55:45 840 0

原创 Thinking-in-Java-读书笔记-14-类型信息

Thinking in java 读书笔记 运行时类型信息使得你可以在程序运行时发现和使用类型信息。 Java 通过两种方式在运行时识别对象和类信息的,一种是 传统的RTTI,(RunTime Type Identification 运行时类型定义),假定我们在编译时已经知道了所...

2018-04-15 16:36:10 100 0

原创 Thinking-in-Java-读书笔记-13-字符串

Thinking in java 读书笔记 不可变 String String 对象是不可变的,具有只读特性。 public class Immutable { public static String upcase(String s) { r...

2018-04-15 16:34:09 86 0

原创 Thinking-in-Java-读书笔记-12-通过异常处理错误

Thinking in java 读书笔记 Java 的基本理念是 「结构不佳的代码不能运行。 发现错误的理想时机是在编译阶段,也就是在你试图运行程序之前。然而,编译期间并不能找出所有的错误,余下的问题必须在运行期间解决。这就需要错误源通过某种方式,把适当的信息传递给某个接受者—接收者...

2018-04-15 16:32:30 67 0

原创 『自定义View实战』—— 客服好评View

在工作中难免遇到自定义 View 的相关需求,本身这方面比较薄弱,因此做个记录,也是自己学习和成长的积累。自定义View实战. 前言 这个版本主要的任务就是完成环信客服系统的集成,上一篇文章 仿IOS下载View 也是这个版本开发需求中的一小部分,那今天介绍一下另一个小需求 客服好...

2018-03-31 16:41:23 133 0

原创 『程序员必备软件』—— 短小精悍的GIF录制软件LICEcap

平时学习和开发的过程中,总有一些软件可以提高工作或者开发效率,特此记录一下,并附上简单的入门教程,方便自己查找,但愿也可以帮助到您 程序员必备软件 前言 想必经常写博客的小伙伴经常会需要上传运行的效果图,也就是 GIF 动态图,目前有很多方式可供选择。 先使用视频录制软件(比如...

2018-03-24 21:23:02 139 0

原创 『自定义View实战』—— 仿ios图标下载view

在工作中难免遇到自定义 View 的相关需求,本身这方面比较薄弱,因此做个记录,也是自己学习和成长的积累。自定义View实战 ## 前言 最近项目需要接入环信客服 SDK ,我配合这同事完成,其中我负责文件下载这部分。 因为时间比较紧张,8 天的时间完成 环信客服模块 的接入,就直接...

2018-03-23 20:36:31 307 0

原创 『程序员必备软件』—— 编辑预览于一身的 Typora

前言 作为程序员,相信对 MarkDown 语法并不陌生,平时知识的积累,博客的编写或者是工作的报告都或多或少会用到。 Markdown 是一种可以使用普通文本编辑器编写的标记语言,通过简单的标记语法,它可以使普通文本内容具有一定的格式。 那具体的介绍和使用语法就不用过多介绍,较为简...

2018-03-17 16:26:56 697 0

原创 Thinking-in-Java 读书笔记-11-持有对象

原文地址 如果一个程序只包含固定数量的且其生命期都是已知的对象,那么这是一个非常简单的程序。 通常,程序总是根据运行时才知道的某些条件去创建新对象,在此之前,不会知道所需对象的数量,甚至不知道确切的类型。为解决这个普遍的编程问题,需要在任意时刻和任意位置创建任意数量的对象。所以,就不能...

2018-03-16 20:58:15 77 0

原创 Thinking-in-Java 读书笔记-10-内部类

原文地址 可以将一个类的定义放在另一个类的定义内部,这就是内部类。 前言 内部类非常的有用,因为它允许你把一些逻辑相关的类组织在一块,并控制位于内部的类的可视性,内部类和组合是完全不同的概念,这点很重要。 class Outer { int a =2; i...

2018-03-16 20:57:12 76 0

原创 Thinking-in-Java 读书笔记-9-接口

原文地址 接口和内部类为我们提供一种将接口与实现分离的更加结构化的方法。 接口 interface关键字使抽象的概念更买进一步,abstract关键字允许人们在类中创建一个或者多个没有任何定义的方法,但是没有提供任何相应的具体实现,这些实现是由此类创建者创建。interface这...

2018-03-16 20:56:28 81 0

原创 Thinking-in-Java 读书笔记-8-多态

原文地址 前言 记得刚接触Java的时候,整天被老师灌输的就是「封装」、「继承」、「抽象」和「多态」,因为这是面向对象语言基本的特征。尴尬的是,直到大学毕业了也没有彻底搞懂… 多态通过分离「做什么」和「怎么做」,从另一个角度将接口和实现分离开来。多态不但能够改善代码的组织结构和可读性,还...

2018-03-16 20:55:42 48 0

原创 Thinking-in-Java 读书笔记-7-复用类

原文地址 复用代码是 Java 众多引人注目的功能之一。但要想成为极具革命性的语言,仅仅能够复制diamante并对之加以改变是不够的,它还必须能够做更多的事情。 组合用法 这个用户最为常用,即在新建的类中,持有别的对象的引用。假设你需要某个对象,它要具有多个 String 对象...

2018-03-16 20:54:49 127 0

原创 Thinking-in-Java 读书笔记-6-访问权限控制

原文地址 前言 我还记得第一次面试的时候,就是问 public、protected和private的区别,当时技术很渣,虽然知道是什么意思,但是表述的不是那么清楚,当时搞得自己很紧张,后面的问题也没有回答的很好。。。 访问控制(或隐藏具体实现)与“最初的实现并不恰当”有关 ...

2018-03-16 20:53:29 63 0

原创 Thinking-in-Java-读书笔记-5-初始化与清理

随着计算机革命的发展,不安全的编码方式逐渐成为编程代价高昂的主因之一。 前言 初始化和清理是涉及程序安全的了两个问题,如果处理不好的话,很容易在运行的时候出现奔溃,造成很不好的用户体验。首先初始化,在开发的过程中,每当创建基本类型或者是其他对象,都会下意识的初始化,虽然全局变量会默...

2018-03-03 17:07:13 66 0

原创 Thinking-in-Java-读书笔记-4-控制执行流程

就像有知觉的生物一样,程序必须在执行过程中控制它的世界,并做出选择。在 Java 中,你要使用执行控制语句来做出选择。 作为一名程序员,尤其经常接触业务需求的开发人员,那流程的接触是必不可少的,基本的用法也是很熟练,所以在这就不介绍流程的基础知识了,直接看代码。 if else ...

2018-03-03 17:06:30 52 0

原创 Thinking-in-Java-读书笔记-3-操作符

在最底层,Java 中的数据是通过使用操作符来操作的。 作为一个开发将近一年的程序员,对这些基本的操作符的掌握还是算熟练的,因此就不过多介绍了,毕竟大家基本上都知道,但是还是把内容过了一遍,笔记就不赘述了。一切的理论都不如实践来的实际,遇到模棱两可的,不如直接通过程序跑一下进行验证。 ...

2018-03-03 17:05:20 50 0

原创 Thinking-in-Java-读书笔记-2-一切都是对象

如果我们说另一种不同的语言,那么我们就会觉得一个有些不同的世界。 —Luduing Wittgerstein(1889-1951) 1. 用引用操作对象 尽管一切都是对象,但是操纵的标识符实际上是对象的一个「引用」,可以看做成日常生活中电视机和遥控器的关系。只要拥有遥控器,...

2018-03-03 17:04:41 81 0

原创 Thinking-in-Java-读书笔记-1-对象导论

前言 从本章开始,逐渐记录笔者在阅读「Thinking in Java」时,内容的积累、代码的实践和个人编程的心得,重要的是个人的成长。正式工作将近一年的我,有必要重新温故一下Java的核心基础,巩固自身的硬实力,从根本感受Java语言的魅力,而不是局限于敲代码,完成产品需求。更重要的是领悟每种...

2018-03-03 17:03:33 109 0

原创 hexo 博客小功能添加-评论、萌妹纸、相册、字数统计...

前言 前段时间 个人博客全新上线(阿里域名+GitPages+hexo+Yelee) 搭建的博客 我的博客,基础的功能已经实现了,想着既然有了自己的博客就要好好的维护(折腾)一下,于是便参考着别人的博客添加一些额外的小功能。 首先我的博客是基于yelee风格,作者也是在 Hexo-Theme-...

2018-02-27 20:51:59 5569 8

原创 个人博客全新上线(阿里域名+GitPages+hexo+Yelee)

前言 新年新气象,狗年也是本命年,因此决定将博客重新搞一波。其实之前已经搭好过博客,因为前段时间换了mac,之前的环境和博客的内容都没有备份,索性就重新开始吧。那展示一下我的新的博客地址: http://xiaweizi.cn 在来一波动态图演示: 电脑端: 手机端: 整个的搭...

2018-02-14 13:09:19 182 0

原创 Android 分享会:Material Design 在 Android 中的应用

前言 我刚来这个公司的时候,每个周三都会有分享会,主题自定,分享对象尽量是面向大众,一开始觉得不错,但是到后面发现分享的内容不是那么有营养,而且积极性不是很高,都是当做任务进行分享。 程序员因为较为腼腆,分享的人较少,大部分都是客户部、分析部或者推广部的分享,久而久之,氛围就比较消极。 为了提...

2018-02-08 21:10:08 70 0

原创 Android 自定义跑马灯

前言 最近公司接到小需求–「可以滚动的提示」,其实就是跑马灯。这让我想到了大学时专业物联网,当时学的单片机入门教程就是跑马灯,很是亲切。其实就是灯(或文字)按照某个方向循环滚动。 Android 原生的跑马灯 其实,Android中的TextView自带跑马灯效果,只需要通过简单的配置,...

2018-02-08 21:09:43 349 0

原创 Google 最新模拟器重磅来袭!秒开并还原到之前工作状态!

前言 12月18日,Google 官方Quick Boot博客的发布,给我们带来了最新的Android模拟器,其中最突出的特点技术 快速启动。声称可以在 6 秒之内便可启动模拟器,在此之下,模拟器通过保存关闭之前的快照,实现数秒内便可恢复到之前的工作状态。 废话不多说,来看一下效果: 正...

2018-02-08 21:09:17 4844 0

原创 我和极光的那些事 | 我和 Android 推送的时间简史

2017 年 3 月 3 日 「极光」跟我的渊源真的是极深的,说到极光,不得不追溯到 2017 年 3 月 3 日,当时正做毕设项目趣闻。基本的预期功能已经实现了,开始考虑集成推送功能,鉴于水平和时间的约束,决定还是集成第三方推送最为保险。 然后百度了一下「第三方推送」,映入眼帘的便是「极光推...

2018-02-08 21:08:55 56 0

原创 自定义银行种类选择器

前言 年前的最后一个开发需求,将之前H5开卡界面转变成native。意思就是开卡这个需求做成Android原生的界面,就这单单一个界面需要请求 8 个接口!可想逻辑是有多复杂,其中中间有个小需求-「选择银行卡」。来看一下UI出图。 大致就是点击「银行」弹出popupWindow,在里面嵌套...

2018-02-08 21:08:22 658 0

原创 Android 冷兵器 之 tools

前言 Android开发在所难免的就是UI的预览和调整,一般情况下都是直接run看效果,或者是使用AS的preview预览,但这同样带来个小问题,就是你的测试内容会跟随着代码被打包到apk中,如果没做容错的处理很有可能将测试内容展示给用户。 还有就是像一些列表是不支持预览效果的,比如ListV...

2018-02-08 21:07:23 77 0

原创 MVVM之DataBinding入门

MVVM DataBinding 介绍MVVM框架类似于早期的MVC和最热的MVP,但是比起这两个更为强势。MV-VM相比于MVP,其实就是将Presenter层替换成了ViewModel层,我们都知道,MVP的好处就是将逻辑代码从View层抽离出来,做到与UI层的低耦合,但是无形中会创造出许多的...

2017-08-30 18:28:09 648 0

原创 使用Glide实现圆角效果

上周接到个小需求,就是让一张图片的右下角为圆角,然后百度了一下,发现 Glide 直接支持对图片进行操作,只要继承 BitmapTransformation,或者实现 Transformation的接口,就可以获得原图的 Bitmap对象,通过 Canvas对图片重新绘制,最后 Glide.wit...

2017-08-22 12:32:58 3331 1

原创 如何做个依赖库让别人依赖使用

前言在我们的项目开发中经常会使用别人的第三方依赖库,在之前的 Eclipse 的时代,是通过拷贝 jar 包,引入到工程中去使用,比较麻烦。现如今,大部分 Android 开发者,都开始使用 AndroidStudio 工具进行开发,只需要在 module 下的 build.gradle 文件添加...

2017-03-15 15:35:18 227 0

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