240 发简信
IP属地:上海
  • 240
    HandlerThread总结

    使用场景 程序需要执行一系列的耗时任务,这时候就需要启动额外的线程去执行耗时任务。如果每次遇到耗时任务都直接创建线程(new Thread() ),那么一系列耗时任务就要创建...

  • 240
    自定义View-绘制基础

    HenCoder 原文 关键点 自定义绘制方法的重写,其中最常用的是onDraw 绘制的关键是Canvas的使用Canvas的绘制类方法: drawXXX() (关键参数:P...

  • 单例模式

    确保类只有一个实例,并提供一个全局的访问点。 创建步骤 构造函数私有化 类持有一个静态实例instance 提供一个静态方法访问单例 一个私有的构造函数、一个静态变量、一个静...

  • 240
    Android 资源文件匹配

    一直以来对于系统选择资源文件的流程都模糊不清,每次定义资源的时候都战战兢兢,终于忍无可忍,无需再忍,决定掏出官方文档来仔细瞧一瞧。摘要记录,以防忘记。 官方文档 资源类型 一...

  • 装饰者模式

    业务场景: 火锅店有3种火锅底锅:鸳鸯锅,香辣锅,菌菇锅;有4种可加的菜:生菜,豆腐,羊肉,牛肉。如下图所示。顾客可以店一个底锅,配任任意菜(数量和种类都任意),那么顾客可能...

  • 任务和返回栈

    原始文档 docs/guide/components/tasks-and-back-stack.html 任务 任务(Task)是用户执行特定作业时的一系列交互活动(Acti...

  • 代码审查应该关注什么

    本文是“代码审查关注什么”系列文章的第一篇(共六篇)。 我们一起来讨论下代码审查。如果你花几秒钟时间搜索一下代码审查的信息,你会发现很多文章都在讲为什么代码审查是件好事(比如...

  • 240
    白话算法:时间复杂度和大O表示法

    每一个优秀的开发者脑中都有时间概念。他们想给用户更多的时间让用户做他们想做的事情。他们通过最小化时间复杂度来实现这一目的。 在你能理解程序的时间复杂度之前,你需要了解最常使用...

  • 240
    不要把你的Android应用搞得跟屎一样

    不要把你的Android应用搞得跟屎一样 没错,说的就是你,开发者。 这篇文章是为你准备的,没有设计师支持的独立开发者。你让我看到了年轻一点的我自己,你和我没什么不同。 希望...