5 下位子

尚未进行身份认证

我的个人主页 http://xiaweizi.cn

等级
TA的排名 10w+

『Android Tip』-- Shortcuts 快捷方式

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

2019-05-14 18:15:05

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

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

2019-01-20 12:42:49

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

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

2018-12-01 15:32:14

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

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

2018-12-01 15:31:47

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

底层存储结构与 数组 对比,数组需要一块 连续的内存空间 来存储,对内存要求很高。如果我们申请 50MB 的内存,即便内存的剩余内存大于 50MB,但是如果内存不是连续的,也是很有可能申请失败。而 链表 与之相反,它并不需要一块连续的内存,通过 指针 将一组 零散的内存块 串联起来使用。下面的图片可以看出两者之间的区别:链表分类单链表单链表每个节点有两部分组成,数据 和 后继指针 n...

2018-12-01 15:31:14

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

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

2018-12-01 15:29:46

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

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

2018-12-01 15:28:48

『进阶之路』—— 线程池

线程概念说到线程池,不得不说一下线程。无论是 java 还是 Android ,线程都是一个非常重要的概念,它是所有基础操作的载体,无论是更新 UI,或是请求网络等耗时操作,都需要在线程中完成。众所周知,Android 中将线程分为 主线程 和 工作线程。那主线程和工作线程有什么区别的,其实本质上没太大区别,主线程因为是要跟用户直接打交道,实时交互性强,不能有其他的耗时操作阻塞...

2018-08-01 16:02:38

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

前言之前利用自己的业余时间入门了微信小程序,并写了一个入门项目 我的第一个微信小程序-趣闻 ,整体效果和之前写的 kotlin-android 版的 趣闻 模块和功能上没有什么区别。不得不说,相比较 Android ,小程序开发起来真的是很舒服,完善的 API和封装全面的组件,安装官方详细的开发文档,很快就可以开发出一款简单便捷的应用。我们都知道,微信小程序的开发运用的大部分是前端的知识,...

2018-06-26 17:40:14

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

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

2018-06-15 15:35:54

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

平时 Android 开发中总会遇到奇葩的功能或者需求,这里做个记录和积累,以便后面开发过程中遇到类似的问题,可以快速的解决。Android tips前言这个版本终于快结束了,历时一个月的时间,这段时间里重复着开发、找 BUG 和解 BUG 的工作,人已经快麻木了,不过最后看到 自己的开发成果还是蛮欣慰的,这可能就是程序员最简单的乐趣吧。这里看一下整体的效果图,一些细节不方便展...

2018-05-29 21:55:45

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

Thinking in java 读书笔记 运行时类型信息使得你可以在程序运行时发现和使用类型信息。 Java 通过两种方式在运行时识别对象和类信息的,一种是 传统的RTTI,(RunTime Type Identification 运行时类型定义),假定我们在编译时已经知道了所有的类型。第二种是 反射机制,它允许在运行时发现和使用类信息。为什么需要 RTTI啥叫多...

2018-04-15 16:36:10

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

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

2018-04-15 16:34:09

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

Thinking in java 读书笔记 Java 的基本理念是 「结构不佳的代码不能运行。发现错误的理想时机是在编译阶段,也就是在你试图运行程序之前。然而,编译期间并不能找出所有的错误,余下的问题必须在运行期间解决。这就需要错误源通过某种方式,把适当的信息传递给某个接受者—接收者将知道如何正确处理这个问题。基本异常异常情形是指阻止当前方法或作用域继续执行的问题。除...

2018-04-15 16:32:30

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

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

2018-03-31 16:41:23

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

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

2018-03-24 21:23:02

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

在工作中难免遇到自定义 View 的相关需求,本身这方面比较薄弱,因此做个记录,也是自己学习和成长的积累。自定义View实战## 前言最近项目需要接入环信客服 SDK ,我配合这同事完成,其中我负责文件下载这部分。因为时间比较紧张,8 天的时间完成 环信客服模块 的接入,就直接用了环信提供的 UI 控件,但是一些细节的部分, UI 还是会给出设计图,按照设计图完成最终效果。...

2018-03-23 20:36:31

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

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

2018-03-17 16:26:56

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

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

2018-03-16 20:58:15

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

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

2018-03-16 20:57:12

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!