稀有猿诉

十年磨一剑,历炼出锋芒,说话千百句,不如码二行。

理解Android Gradle构建系统

Gradle是一个新型的强大的构建系统。Android很早就开始支持Gradle了,到现在已经完全切换到Gradle构建。它的优势也是比较明显的,更强大的配置,方便的依赖管理,简洁的语法(Groovy DSL),跟啰嗦的XML相对,这是很大的进步。

理解Java ThreadLocal

ThreadLocal是Java提供的为每个线程存储线程独立的数据的存储方式,也就是说用ThreadLocal来保存的数据,只能被当前线程所访问,其他线程无法访问,因为只有(一个线程)当前线程能够访问,所以它是线程安全的,可以用来存储一些不能被共享的数据。

理解 Java 关键字 Final

final可以用来干什么

final是Java中非常常见的一个关键字,可以说每天都在使用它,虽然常见,但却也不见得都那么显而易见,今天就来研究一下final,以加深对它的理解和更合理的运用。

理解Java关键字volatile

在Java中,关键字volatile是除同步锁以外,另一个同步机制,它使用起来比锁要简单方便,但是却很容易被忽略,或者被误用。这篇文章就来详细讲解一下volatile它的作用,它的原理以及如何正确的使用它。

说说Android的MVP模式

安卓应用开发是一个看似容易,实则很难的一门苦活儿。上手容易,看几天Java,看看四大组件咋用,就能整出个不太难看的页面来。但是想要做好,却是很难。系统框架和系统组件封装了很多东西,开发者弄几个Activity,用LinearLayout把布局组合在一起,添加点事件监听,一个应用就成型了。红海竞争,不管多么复杂的UX和业务逻辑都是一个月快速上线,二周一个迭代,领导和产品早上改需求,晚上改设计,再加上产品经理和设计师都按照iOS来设计,这一系列原因导致很多安卓应用不但体验差,不稳定,性能低,而且内部代码相当之混乱,即使BAT也是如此。

Android技巧:学习使用GridLayout

GridLayout是一个非常强大的网格类布局,它不但能像TableLayout那样,实现网格类布局,但它更为强大的地方在于每个Cell的大小可以横向或者纵向拉伸,每个Cell的对齐方式也有很多种,而且不像TableLayout,需要一个TableRow,GridLayout可以通过指定Cell的坐标位置就能实现Cell的拉伸,从而实现,大小不一致的风格卡片式布局。

安卓开发技术:监听软键盘的显示与隐藏

自从2007年乔帮主横空出世推出iPhone后,智能手机就都变成了触摸屏,且屏幕越来越大。输入自然也就通过软件来解决,现在来说绝大多数智能设备都是通过软键盘来做用户输入。在日常的开发过程中难免会跟软键盘打交道,比如强制显示或者强制隐藏等,也有些时候想要在键盘隐藏或者显示的时候做一点事情,这就需要准确的知道键盘的事件,这篇文章就来详细讨论一下Android下面如何做到监听键盘的事件。

Android应用性能剖析全攻略

性能是软件质量的一个重要方面,好的软件必须要在性能上达到一定的标准。对于Android应用程序来讲,更是如此,移动互联网的红海竞争,如果应用的性能差,肯定会缺少竞争力的,这里就来聊一聊应用开发中如何提升性能,以及在开发过程中如何处理性能问题。

Android Studio技能之快捷键

Android Studio是谷歌新一代的Android开发IDE,老一代的Eclipse+ADT已被无情的废弃。

Android Studio基于JetBrains的IntelliJ IDEA,这是一个在Java界享有不错声誉的IDE,它以“Intelligent”著称。AS是谷歌基于IntelliJ开发的,加上了一套专门为Android定制的插件系统。早期的时候AS=IntelliJ + Android插件。但是现在没那么简单了,貌似AS中有的东西,在插件中却没有,具体的搞不太清楚了。

说了这么多都是废话。这里总结一下AS使用过程中常用的快捷键。

优秀代码赏析:CircleImageView

核心功能

实现一个圆形的ImageView,或者说让一个View来显示一个圆形的图片。

核心思路

这个库短小精悍,全部代码才200多行,核心代码也就几十行,却实现了一个看似不简单的功能。

要想实现圆形的图片,常规一般的人的思路,用图像处理的方式来解决,就好比显示圆角矩形图片那样。但是这个库的作者的思路十分的巧妙,它的核心思路就是把图片画在一个圆上面。