Design Patterns

设计模式(Design Patterns)是面向对象设计中针对常见问题的可复用解决方案。1994 年由 GoF (Gang of Four: Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides) 在 Design Patterns: Elements of Reusable Object-Oriented Software 一书中系统总结,共 23 种经典模式。 本文整理自 smallnest 的博客文章,以及 StackOverflow 上关于 GoF 设计模式在 Java API 中应用实例的讨论。 查看PDF概览图 ...

2015年3月30日 · 2 分钟 · haoxiqiang

Remote Debugging on Android with Chrome

Chrome DevTools 支持远程调试 Android 设备上的网页和 WebView 应用。这一功能对于移动端前端开发和混合应用开发来说非常实用,可以让我们使用桌面 Chrome 的完整开发者工具来调试移动端页面。 ...

2015年3月24日 · 2 分钟 · haoxiqiang

Bezier Curve Practice

贝塞尔曲线(Bézier Curve)被广泛应用于计算机图形学中,用于为平滑曲线建立模型。它以法国工程师 Pierre Bézier (雷诺汽车公司) 和 Paul de Casteljau (雪铁龙汽车公司) 命名,两人在 1960 年代独立开发了这一曲线表示方法。 ...

2015年3月4日 · 2 分钟 · haoxiqiang

Android Property Animation

Property Animation 是 Android 提供的一套非常强大的动画框架,可以在运行时动态改变任意 View (可见或不可见) 的属性.相比传统的 View 动画(补间动画),属性动画真正改变了对象的属性,而不仅仅是绘制效果. ...

2015年3月3日 · 2 分钟 · haoxiqiang

SQLite 限制详解:从一次 SQLiteFullException 说起

最近排查一个 BUG 时遇到一个奇怪的问题:android.database.sqlite.SQLiteFullException: database or disk is full (code 13)。查阅了很多资料也没能完全弄清楚根因,这里把整理的资料分享出来,希望遇到类似问题的朋友共同探讨。 ...

2015年2月28日 · 2 分钟 · haoxiqiang

Go 入门:第一个程序与基础实践

本文记录了 Go 语言入门过程中最基础的四个环节:编写第一个程序、创建工具库、编写单元测试,以及使用远程包。内容基于 Go 1.x 初期的 GOPATH 模式编写。 注意:自 Go 1.11 起引入了模块(Modules)机制,Go 1.16 开始默认启用模块模式,GOPATH 模式已被取代。现在开发新项目应当使用 go mod init 创建模块,而非手动设置 GOPATH。下文示例保留原始风格以作参考。 ...

2015年2月10日 · 2 分钟 · haoxiqiang

Android 通知机制详解

通知系统是 Android 平台上用户与应用交互的重要通道——它能在应用不处于前台时告知用户重要事件,如来消息或日历提醒。Notification 本身在 Android 4.1 (Jelly Bean) 经历过一次重大升级,后续在 5.0 (Lollipop) 又有诸多细节改进。从 4.1 开始,Android 支持在通知底部附加操作按钮,用户无需打开应用即可直接执行常见任务,配合滑出清除,使通知抽屉的体验更加顺滑。 注意:本文基于 Android 4.1—5.0 时代的 API 编写。自 Android 8.0 (API 26) 起,所有通知必须归属到通知渠道(Notification Channel);Android 13 (API 33) 起需要运行时权限 POST_NOTIFICATIONS。下文代码示例使用 NotificationCompat 以保证对低版本的兼容性,在不同设备上效果可能略有差异。 ...

2015年1月29日 · 2 分钟 · haoxiqiang

Android 学习资料指南

注:此文写于 2015 年,文中部分链接可能已失效。资源推荐反映了当时的生态,许多内容已有更新版本,但核心的学习路径和方法论仍然有参考价值。 前言 谁无年少时。对于一门技术而言,大家的起点都是 Hello World。让人困惑的是,一年下来有些人的技术提升是 100%,有些人是 20%,有些人或许悲催地没有什么变化。是智商的原因吗?在我看来,可能是学习方法不对。 前几天结婚休假,我一直在写博客。找资料的过程中发现,单用百度效率太低,至少有一半的时间浪费在了无用页面上。我准备花几个晚上的时间整理收集的资料,尽可能保证在国内可以访问。以下列举初中级开发者的资料整合,至于高级——我大约还没有什么发言权。 ...

2015年1月26日 · 2 分钟 · haoxiqiang

轻松搞定 Android 环境、源码与工具(国内镜像方案)

注:此文写于 2015 年,部分镜像地址可能已变更或失效。当前国内推荐使用清华大学 TUNA、中科大 USTC 等镜像站,或直接通过 Android Studio SDK Manager 下载。截至 2025 年,本文提到的部分高校镜像可能已停止服务。 此篇为国内网络环境下的 Android 开发者准备,涵盖以下内容: Android SDK 更新 Android Studio 下载 AOSP 源码下载 Android NDK 下载 ...

2015年1月16日 · 1 分钟 · haoxiqiang

Android Fragment$InstantiationException 分析与解决

1 2 android.support.v4.app.Fragment$InstantiationException: Unable to instantiate fragment make sure class name exists, is public, and has an empty constructor that is public 以前偶尔碰到这个错误,量不大没在意。最近突然暴增,仔细研究了一番,整理出几个原因和解决办法。 ...

2015年1月7日 · 2 分钟 · haoxiqiang