Android 项目的构建过程是由 Gradle 框架完成的,Gradle 框架是使用 Groovy 语言实现的。以下对 Groovy、Gradle、Android 项目的 Gradle 配置进行总结。
ECMAScript6 的 Generator 学习小结
Generator 是 ECMAScript6 提供的新特性之一,最大的特点是可以在其内部暂停执行。它可以用来生成一个迭代器。通过迭代器器不断往下执行,我们可以让代码在 Generator 内部暂停或继续执行。
ECMAScript6 的 Promise 学习小结
Promise 是异步编程的一种解决方案,它代表了未来将要发生的事情。ES6 将 Promise 作为标准,对其提供了原生支持。使用 Promise 的好处在于可以抛弃原来层层嵌套的回调函数编程方式,改用链式调用去完成异步任务。听起来就很牛逼,先看一个例子,对比一下传统 Javascript 的写法与使用 Promise 的区别。
Java 的自动装箱(autoboxing)与拆箱(unboxing)
自动装箱(autoboxing)是指 Java 编译器自动将基本数据类型值转换成对应的包装类的对象,例如将 int 转换为 Integer 对象,将 boolean 转换问 Boolean 对象。而拆箱(unboxing)则是反过来转换。
Android View 的滚动原理和 Scroller、VelocityTracker 类的使用
Android 开发中经常涉及 View 的滚动,例如类似于 ScrollView 的滚动手势和滚动动画,例如用 ListView 模仿 iOS 上的左滑删除 item,例如 ListView 的下拉刷新。这些都是常见的需求,同时也都涉及 View 滚动的相关知识。
本文将解析 Android 中 View 的滚动原理,并介绍与滚动相关的两个辅助类 Scroller
和 VelocityTracker
,并通过 3 个逐渐深入的例子来加深理解。
Android View 的 Touch 事件传递机制
一、概述
在 Android UI 开发中,经常涉及与 touch(触摸)事件和手势,最经常使用的点击事件(OnClickListener)也与 touch 事件相关。因此,理解 touch 事件在 View 层级中的传递机制尤为重要。然而,onInterceptTouchEvent
、onTouchEvent
、onTouchListener
等一系列接口方法很容易让人混淆。
本文将介绍 touch 事件的一些基础知识,并通过分析 Android FrameWork 源码来深入理解 touch 事件的分发机制。
从 Android 源码角度分析 View 的状态改变如何影响 Drawable 的表现
在 Android 开发中,View 和 Drawable 之间关系十分紧密,例如我们经常用 Drawable 作为一个 View 的背景。View 常常会有状态的改变,例如被按下、例如禁用,而不同的状态下 Drawable 也常有不同的表现。今天要探索的问题是 View 的状态改变是如何影响 Drawable 的表现的。
以下将简单介绍我们平时如何在 View 上使用 Drawable,做到在不同状态下表现不一样。接着分析系统源码探索其中的原理。最后以系统的控件和自定义控件 2 个例子来验证和实践在 View 中自定义状态的做法。
Android 横竖屏处理的知识小结
Android 手机一般都支持横竖屏旋转,系统也会提供一个设置,控制允不允许旋转。这里对如何在 App 中控制界面的旋转方向做一个小结。
Githug 通关流程
最近对 git 比较感兴趣,主要是因为平时工作使用 svn,慢慢感觉到 svn 的不方便。例如一定要在能连接 svn 服务器时才能提交代码。而 git 天生就没有这个问题。
在看 git 相关资料时发现一个叫做 Githug 的小游戏(其实是一些 git 命令行的练习题),它将平时使用 git 常遇到的场景变成一关一关,从头到尾玩通关,git 常用的基本技能也就掌握得差不多了。这里记录下每一关的场景和解决方法。
我又来开博客了
没错,是「又」开。在此之前我已经折腾过好几个博客,基本上每次开头都会兴致勃勃地写下一篇类似于《博客开张》的博文,就像本篇,而后来都慢慢荒废。
大学时代曾经因为 wordpress 火爆并且又在学习前端,所以买了域名搞了 wordpress 博客,甚至自己做过主题。起初目的是为了记录自己折腾前端的点点滴滴,后来慢慢变成花大量时间在折腾 wordpress,痛苦不堪。