咕咚

重要的事只有一件

开发 Intellij 插件(如AndroidStudio 插件)时如何在本地保存状态值

开发 Intellij 插件时,比如自己最近开发的一个 AndroidStudio 插件,需要存储一些状态值,方便做一些 UI 上的偏好设置。 比如这次选中了一个选项,希望下次打开插件时继续选中相应的选项,此时就需要做一些本地状态存储。就像 Android APP 常见的设置选项。 Intellij 也提供了响应的 API - PropertiesComponent ,使用方式如下所示:...

日常收集的精品技术文章

GreatArticles 收集最好的技术文章 具体原则: 1、只收集高质量有深度带有自己思考性的技术文章。 2、经典有深度的系列在线文章。 3、issue 中收集编辑自己整理一些文章片段。 文章地址: https://github.com/maoruibin/GreatArticles 个人主页: http:...

2017 年终总结

做好当下事,保持专注,制定一些长期短期的计划,并严格执行,同时应该保持宽的视线,不能把大部分精力花在一些事情上,工作不是全部,代码也不是全部,生活中有很多其他的东西值得自己认真对待,你怎么对待它,它也会怎么对待你,对生活保持热爱,认真对待生活。

有谁是单纯地喜欢编程吗?

在知乎看到了上面的问题 - 有谁是单纯地喜欢编程吗? 自己结合自己的情况写了一个答案,现在简单整理到这里。 知乎回答地址:https://www.zhihu.com/question/264288696/answer/284162359 博客文章地址:http://gudong.name/2017/12/27/why-programe-zhihu.html 小时候我是一个特...

2017 Movie List

记录一下这一年看过的电影,貌似今年看了比以前更多的电影

ImageView 中不同 scaleType 的对比介绍

在使用 ImageView 的时候,经常需要设置它的 scaleType,但是一些时候对他们的区别总是很难把握,这次通过示例完整的了解一下不同的 scaleType 对一个 ImageView 的展示到底会有什么样的区别。

蓝天白云 - 甚好

今天天气非常好,早晨走出门后,满眼全是绿色,天空湛蓝。好的天气景色给人带来好的心情。

LeakCanary 工作原理浅析

LeakCanary 是 Square 公司为 Android 开发者提供的用于在开发期检测内存泄漏的神器,本文简单分析一下LeakCanary 具体的检测原理。

Activity 与 Window、PhoneWindow、DecorView 之间的关系简述

该篇文章主要探究 Android 中 Activity 与 Window、PhoneWindow、DecorView 之间的关系。Activity 的概念都比较熟悉,但是 Window、PhoneWindow、DecorView 这几个类并不常用,所以很多时候就忽略了它们的具体作用。其实在 Activity 的背后,它们都发挥着非常重要的作用,比如下文即将要说到的 setContentView() 原理、事件分发源头都可以看到这几个概念。

关于线程池的执行原则及配置参数详解

『线程池的构造参数怎么可以这么多?』

在软件开发中,池一直都是一种非常优秀的设计思想,通过建立池可以有效的利用系统资源,节约系统性能。Java 中的线程池就是一种非常好的实现,从 JDK 1.5 开始 Java 提供了一个线程工厂 Executors 用来生成线程池,通过 Executors 可以方便的生成不同类型的线程池。但是要更好的理解使用线程池,就需要了解线程池的配置参数意义以及线程池的具体工作机制。

自定义复杂 View 以及相关绘制优化实践

墨迹天气是一款免费的天气信息查询软件,由于要展示各种各样的数据信息,所以项目中有大量的涉及到图表相关的自定义 View,如展示 24 小时的温度曲线图、潮汐图等等。这里就简单分享一些自己在开发空气质量页面时,开发逐小时预报曲线的一些经验。 版权声明:本文为 咕咚 原创文章,可以随意转载,但必须在明确位置注明出处。 作者博客地址: http://gudong.name 本文...

Android 多状态加载布局的开发 Tips

『多状态布局开发的点点滴滴』

本文将结合自己的项目开发实践,简单分享一下关于多状态 Layout 的开发实践 Tips。

JVM 内存分代、垃圾回收漫谈

关于 JVM 内存模型以及垃圾回收的文章网上很多,自己以前也看过很多,但是却从来也没有系统的去了解学习过,这次正巧再看周志明老师的《深入理解 Java 虚拟机》,内容非常棒,所以自己就花了点时间,认真系统的学习了一遍。

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

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

JVM 内存区域介绍

作者博客地址: http://gudong.name 本文博客地址: http://gudong.name/2017/04/18/jvm_memery_area.html Java 虚拟机在执行 Java 程序的过程中,会把它所管理的内存划分为5个不同的数据区域。这些区域都有各自的用途,以及创建、销毁的时间,有的区域空间随着虚拟机进程的启动而分配,有些区域则是依赖用户线程,他...

JVM、Dalvik、ART 介绍

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

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

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