咕咚

因为热爱

如何用好 github 中的 watch、star、fork

在每个 github 项目的右上角,都有三个按钮,分别是 watch、star、fork,但是有些刚开始使用 github 的同学,可能对这三个按钮的使用却不怎么了解,包括一开始使用 github 的我也是如此。这篇博客,结合自己的理解和使用,说说这三个按钮的用法以及一些个人见解。 如下图所示这是我们经常看到的三个按钮。 从左至右,依次是 watch star fork,下面分别说下...

Java 虚拟机与 Dalvik 虚拟机

该篇文章主要分享记录一下自己对 Java 虚拟机这个概念以及 Dalvik 虚拟机的理解,同时也会对他们做一个简单的对比。对于 Java 虚拟机自己也在不断学习认识中,如果有什么描述有误的地方,还请指正。 虚拟机 从一开始学 Java,我们就知道,我们写的所有的 Java 代码最终都会编译为以 .class 结尾的字节码文件,然后最终被 Java 虚拟机执行,从而得到我们想要的结果。 ...

仅使用一张资源图片为 View 设置具有按下效果的背景 - OneDrawable

该篇文章主要分享介绍,如何使用一张资源图片为 View 设置具有按下效果的 Background Drawable. 开源地址 OneDrawable 缘起 前段时间在开发项目新版本的过程中,设计师出了一套项目的按下效果规范。规范大概是这样的。 对于一般的按钮,按钮按下的效果只有两种不同的实现。 1、按下后将前置背景图片变暗,具体就是在正常状态的 drawable 上面增加一层...

Android 项目开发清单

良好的开始是成功的一半,对于一个 Android 项目更是,一个好的项目基础架构可以对项目的后续发展有至关重要的作用。所以我们在项目开发之初,应该花费一些时间去调研、设计符合自己项目的基础架构。而且从项目长远的发展来看,这些时间花的非常值得。 下面就从项目的方方面面出发,介绍一下自己搭建项目时的一些经验。当然个人水平经历有限,自己的分享可能有片面性和不足性,欢迎指正补足。 代码质量保证 ...

关于易剪 - 手机端的剪报助手

易剪是自己最近开发的一个工具 App。 它的唯一功能就是帮助用户快速剪贴自己感兴趣的文章片段。 怎么理解呢? 缘由 当我们在手机上阅读文章时,对于自己感兴趣的片段,我们可能会想粘贴到便签或者印象笔记作为自己的笔记,方便日后查阅。 类似的场景就像小时候读作文时,经常在旁边放一个小本子,看到别人作文中有写的比较好的排比句或者拟人句,我们常常会把这些句子摘抄下来,作为自己的摘抄笔记。在以...

Android 6.0 设备上自定义文本操作栏

该篇文章主要讲解 Android 6.0 设备上自定义文本操作栏。 通过以下文章你会学习到以下几点。 什么是 Android 设备上的文本操作栏 如何在 Android 6.0 设备上为自己的 App 自定义文本操作 首先说说什么是 Android 设备上的文本操作栏。 文本操作栏 我们在平时使用手机的过程中,总是避免不了去操作一些文本,比如常见的复制、粘贴等功能。 ...

使用 Android 原生 API 开发设置界面

算是 17 年第一篇文章,初衷就是简单介绍下用 xml 配置设置界面,为自定义设置界面 UI 做一个铺垫。 场景介绍 为了更好的用户体验,现在的大多数的应用都会提供一个设置界面,供用户去设置一些应用属性,比如用户名、昵称等信息的修改,或者还会有一些消息开关等都会在设置界面中完成。如下所示就是一个常见的设置界面截图(from 咕咚翻译) 类似这样的设置界面在一个应用中都会或多或少的存...

Mac 上修改按键映射工具推荐

去年不知什么时候,自己 Mac 上的 G 键坏了,一开始只是不灵敏,到后来直接失效。很无奈,所以一开始去了苹果店,但是工作人员告诉我,是物理键损坏,只能换键盘,我问换键盘多少钱,3000 。。。 好吧,我还是回来了。 后来自己试着用软键盘解决了这儿问题,但是体验还是相当差啊, 你需要在打 G 的时候,用鼠标去屏幕软键盘选择 G 别提多麻烦了。不过到目前为止,我已经这样干快5个月了。说...

再见 2016 ,你好 2017 ~

不知不觉,就已经 2017 了,时间飞快,2016 很短暂,但是却很丰富,却也不想重来。 在 16 年三月时我最终离开了我的上家公司,尽管离开的过程有点不愉快,但是离开是一个 2016 做的第一个正确的决定。 同时也是在三月初,我发布了自己开发的咕咚翻译,一个划词翻译 App,从一开始推出就得到了很多同行的支持,自己在这个过程中也认识了一个非设计专业的 UI 设计爱好者,他帮我完成了咕咚...

ReView 一个辅助设计师方便 review UI 的 view 组件集合

ReView 是一个用于帮助程序员、设计师方便查看字体大小以及颜色等属性的 View 组件集合, 这篇文章简单介绍一下 ReView 的开发初衷及用途。 问题 在日常开发过程,程序员一般都需要根据设计师的设计图以及标注图来进行 UI 开发,一般来说,设计师往往会在标注图上标注清楚每个 View 的大小以及字体颜色等等属性,我们开发者需要严格按照设计师的标注进行界面开发。 开发完成后,设...

Android 复杂界面开发实践之 ViewController: 介绍

本人博客地址 http://gudong.name 本文简书地址:http://www.jianshu.com/p/e70c1478cd9e ViewController 是一种界面开发组件化的实现方式,利用它可以将一些复杂的 UI 界面开发组件化, 从而更好的组织代码结构,从而提高开发效率,降低维护成本。 ...

Android 复杂界面开发实践之 ViewController: 前言

本人博客地址 http://gudong.name 本文简书地址:http://www.jianshu.com/p/e3f86d5a4474 首先说明的是 ViewControler 并不是 Android 中存在的一个组件,而是在技术实践中总结创造出的一个开发理念,这是一种业务开发过程中的 UI 模块化思想的...

博客更新日志随想

今天终于有时间可以更新一下博客了。 之前,一次偶然的机会,在网上看到黄玄的博客,也就是现在自己博客的风格,第一眼便喜欢上了这种风格,不论是大背景的 Header 还是侧边栏的设计,都是自己非常喜欢的设计,但是苦于自己前端能力薄弱,自从去年选择了一个 Jekyll 的主题后,能做的也只是一些简单的修建,如果要按照自己的想法去设计一些个性化的 feature 还是太难了。直到遇到这个博客风格,...

读书清单

该篇博客用于记录自己读过的书。 关于读书,其实自己一直有很多话想说。从小没能养成一个好的读书习惯,到后来,尤其是工作之后,发现读书真的是一件特别有意义的事。 现在我正在把以前漏掉的掉下的书读起来,灵魂和脚本总要有一个在路上。 这里面会有不少技术相关的书籍,每一本书自己会简单写几句点评。其实读完每一本书写一篇读书笔记也是未尝不可的,而且会是一个非常好的读书习惯。 Java 相关 Ef...

ButterKnife 使用介绍

首先说点关于这篇文章的题外话。 公司项目重构,我建议老大使用 ButterKnife,因为自己使用了很久,而且自己跟周边的同事演示了一下 ButterKnife 的功能,都觉得很赞,所以就想自己要不彻底调研一次 ButterKnife,包括用法以及源码。 最终我给组长的结果是 这东西可用,也没有什么太大的性能问题,但是最终还是被老大给 kill 掉了,后来也没有理论过老大,好吧,那就继续...

使用 RxJava 重构一段判断逻辑

这么晚了我还在给咕咚翻译加在线发音功能!!还好有音乐作陪… 其实实现发音很简单,金山的 API 支持单词发音。访问 http://dict-co.iciba.com/api/dictionary.php?type=json&w=nice&key=3BE8E8ACA43FDA088E52EC05FA8FA203 即可在返回单词解释的同时,返回单词的发音 URL,如下所示,自...

使用 CheckStyle 检查代码

前言 最近在看廖祜秋的下拉刷新项目 android-Ultra-Pull-To-Refresh,就在今天做了一些精简操作后,准备加入项目准备使用时,发现 lib 根目录下有一个 checkstyle.xml 文件,很好奇它是干什么的,后来 Google 后,原来这东西可以用来检查代码,随即查询了一些资料,把它用了起来,下面简单记录下。 用途 先不说如何配置,先说它有什么用。 Andr...

Handler 之 ThreadLocal 相关

在上一篇文章Handler 之 源码解析中介绍 Handler 与 Looper 的关系时,半路出现了 ThreadLocal 这个类,他是什么呢,本想在 Handler 源码解析一文一起阐述了, 但是觉得这样篇幅太长,不好,况且他又是一个相对独立的概念,这里就把它单独拿出来,结合任玉刚的Android的消息机制之ThreadLocal的工作原理博文,为自己总结归纳下 ThreadLocal...

Handler 之 源码解析

上一篇博客Handler 之 初识及简单应用中介绍了 Handler 的作用,以及 Handler 的基本用法,同时也详细介绍了为什么子线程不能更新 UI 的原因,但是因为篇幅原因,所以对 Handler 的内部机制并没有展开叙述。这篇文章就从 Handler 开始解析与之相关的源码,从而更好的理解 Handler 以及 Looper MessageQueue。 Handler 机制 写...

Handler 之 初识及简单应用

这篇文章主要讲解和记录自己对 Handler 的理解。因为一开始接触 Android 就接触到了 Handler,所以对 handler 的了解应该比较多,加上项目中在消息传递以及异步控制方面都要用到 Handler。自己也不止一遍的看过 Handler 源码,不过每次看的时候都能明白,但是时间久了,就很容易忘记。所以这次就有了这个 Handler 系列。从 Handler 的使用场景,到具...