自定义 Lint 提升代码质量

Android 客户端工程师现在是良莠不齐的阶段,每个人的编程水平不尽相同,这也导致开发出的 APP 在性能和实现效果上面差异很大。Google 也考虑到这个问题,推出了一些常见的编程建议,并通过 lint 这个工具可以告知我们代码中有哪些不合理的实现。Lint 是一款静态代码分析工具,能检查安卓项目的源文件,从而查找潜在的程序错误以及优化提升的方案。

通过 Cache-Control、Last-Modified 和 Etag 优化客户端缓存

http headers

日常开发中,为了不让用户等得着急,或多或少都会用到 Cache。对于一个有着固定链接的图片资源而言,我们可以简单地将其存储起来,以供后续的访问。但对于那些 Uri 一致,但内容可能随时变化的情形而言,就显得有些不太合适了。简单的例子就是微博的 FeedLine,特别是你关注的人很多时,同样的 Uri 在几秒内对应的内容都可能差别很多。另一方面,要将判断 Cache 是否有效的逻辑与 Back End(后端) 结合起来,否则一定在客户端写死,就很难满足动态的需求了。在这边文章里面,不讨论如何去实现一个 Cache 系统,而是就如何与后端结合起来保证 Cache 的有效性来说明。

算法面试精要准备 - 栈

栈是什么呢?很简单,就是实现后进先出(LIFO)的数据结构,在某些算法题中,就会利用栈的这种特性来达成目的。所有代码都已经同步至 https://github.com/woaitqs/common_algorithm,欢迎关注。

Android Launch Mode 详解

我们所最常用的组件就是 Activity,Android 系统为了满足各种开发的需要,赋予了 Activity 四种不同的启动模式。虽然大家很可能都从各个地方了解过 Activity 的启动模式,但还是建议大家看看这篇文章,我会尽可能地理清思路,便于大家更好地理解启动模式。

我的流浪地球

我没见过黑夜,我没见过星星,我没见过春天、秋天和冬天。

​这是刘慈欣的短篇小说《流浪地球》中的开端,刘的文字向来不太打动人,但所描述的恢弘世界与波澜壮观的变迁却让人回味与动容。

你在平原上走着走着,突然迎面遇到一堵墙,这墙向上无限高,向下无限深,向左无限远,向右无限远,这墙是什么?

我们都知道自己看不到真理被证实的那一天,但如果人类得以延续万代,以后所有的人将在我们的墓前洒下自己的眼泪,这颗叫地球的行星,就是我们永恒的纪念碑!