博客
2016 年过去了 这是一篇迟到的年终总结。2016 年过去了,村上还是没获诺奖,逼哥的专辑一张比一张贵,能听的歌也越来越少,想去看跨年现场也一直未能成行,《行尸走肉》第七季剧情依旧拖沓,一整年好像也没一部值得看第二遍的电影……
自定义选择复制功能的实现 为了解决不同版本系统选择复制的差异,以及兼容各种奇葩的国产定制系统,自定义选择复制功能是一种妥协的解决方案,但是真的面对需求时,逃避问题是不可取的,面对问题,找到解决问题的思路和过程才是重要的。
如何设计精准的推送通知?【译】 智能手机面世已经近十年时间,但根据 First Round 对初创公司的调查报告来看,创始人们仍然宣称移动端是最被低估的技术。推送通知在移动设备上潜力巨大。企业家 Ariel Seidman 在《改进移动端的推送通知》这篇文章中提到:“确实很难再夸大推送通知的潜力。这是在人类历史上第一次可以同时拍着近 200 万人的肩膀,说‘嘿!注意这个!’”
Android 过度绘制优化 Android 从一诞生到现在已经发布的 7.0 版本,卡顿和不流畅问题却一直被人们所诟病。从开发角度来说,每个开发者都应该关注下性能优化,在平时的开发工作中注意一些细节,尽可能地去优化应用。本文作为性能优化系列的开篇,先从过度绘制优化讲起。
mUrl:自动生成 Markdown 格式的链接 mUrl 是一个 Chrome 插件,打开一个网页,然后点插件,此时 Markdown 格式的链接就复制到剪贴板上了,直接粘贴到 Markdown 文件中即可。
热修复实现:ClassLoader 方式的实现 在之前的文章中,讲解了 Android 中的 ClassLoader 工作原理和通过 ClassLoader 实现热修复的可能性,本文结合 Nuwa 项目,来讲讲基于 ClassLoader 方式如何具体实现热修复。
Android 热修复方案对比 没有 Bug 的程序几乎是不存在的,加上 App 更新版本过程又很繁琐,热修复技术从一提出,就拥有很大的技术需求市场。同时该技术从出现之初就有了很多不同的解决方案,同一种实现原理可能还存在着多个实现方案,本文就开源的热修复方案作一些简单的分析,让有需要的开发者在选择的时候有一个大概的了解。
热修复入门:Android 中的 ClassLoader 从去年下半年开始,热修复技术在 Android 技术社区热了一阵子,这种不用发布新版本就可以修复线上 bug 的技术确实有很大的需求,最近正好在研究一些开源的热修复方案,本文就其中常用的 ClassLoader 方式实现的热修复方案中的 ClassLoader 机制作一个简单的介绍。
StaticLayout 源码分析

Android 中的文本布局和绘制都是由 Layout 类完成的,而 Layout 类一个重要的子类就是 SaticLayout 类,本文从源码来简单分析文本是如何布局的,具体如段落、折行处理以及省略方式的等等的处理。

Vectors For All (最终篇)【译】 本文来自掘金翻译计划,带来了矢量图在 Android 开发中最新的消息,一起来拥抱矢量图吧!
Android App 多语言切换

前段时间公司 App 需要实现多语言切换功能,接到任务后先 Google 了下,发现搜到的方法都比较老旧,很多都莫名其妙,比如什么 API 欺骗、反射、手动转换语系,感觉不应该这么复杂地实现(也可能是当时的环境下实现确实比较麻烦)。所以花了点时间研究了下,实现了应用内切换语言,且不是那么复杂。

自动化替换 Markdown 中的本地图片引用 本文主要描述在 Markdown 写作中,通过 Python 脚本实现自动化替换引用的本地图片为图床中的外链,且对原图进行压缩(压缩前后图片显示效果差别很小)。并建立本地的图片外链数据库,优先根据文件 hash 值查询数据库中是否已存在外链。
StatusBarUtil 状态栏工具类(实现沉浸式状态栏/变色状态栏)

这是一个为Android App 设置状态栏的工具类, 可以在4.4及其以上系统中实现 沉浸式状态栏/状态栏变色,支持设置状态栏透明度,满足你司设计师的各种要求(雾)。

第一个开源控件:NineGridImageView(九宫格图片控件)

最近在公司项目重构一个类似朋友圈或微博的动态界面,其中需要显示九宫格图片,在查找一些开源库之后,发现没特别好用的,或者说满足我需求的,就一不小心造了个轮子。

NavigationView 的使用

NavigationView 的引入让 Android 侧边栏实现起来相当方便,最近公司项目中也使用这个新的控件完成了侧边栏的改版。在使用过程中遇到一些坑,写篇博文记录一下。

Android App 沉浸式状态栏解决方案

伴随着 Android 5.0 发布的 Material Design,让 Android 应用告别了以前的工程师审美,迎来了全新的界面,灵动的交互,也让越来越多的 App 开始遵从 material design 设计原则,不再是以前拿着iOS设计稿,做着Android开发。本文就其中的沉浸式状态栏这一特性,描述其兼容到4.4的实现,以及一些使用中的小细节。

Android Studio 小技巧/快捷键 合集 本文翻译自 Android Studio Tips by Philippe Breault,一共收集了60多条 Android Studio 的使用小技巧,包含一些常用的快捷键、编码技巧,以及部分调试时比较方便的技巧。掌握一些常见的快捷键和技巧,可以让我们的开发工作事半功倍。
再见,2015 每一年都会携带着一些愿望和祝福到来,而又带着特有的记忆和故事离开。
第一个插件:FindViewByMe

FindViewByMe 是一个自动生成 FindViewById 代码的 IDEA/Android Studio 插件,支持 Activity、Fragment 和 ViewHolder 中的 findViewById 的代码生成。

Android 启动页 (Splash) 的实现

App 启动页 (Splash),最经典的莫过于微信的启动页了。不过启动页是个好的设计还是不好的设计呢?本文不讨论这个问题,仅从一个开发者的角度来讲解下Android应用启动页的实现,以及一些需要注意的地方。

Android 编码规范

在开发中,遵循良好的编码规范,不仅仅可以提高代码的可读性,减小出错的可能性,同时也降低与其他开发者交流的成本,易于他人的维护与协作。 本文简单总结了 Android 开发中的一些代码规范,供开发者参考。

开始我的博客之旅 当猴子不写代码时,他在写些什么?