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

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

Android EBUSY Exception

最近写一个图片上传功能时,在某些手机上遇到了运行时异常: 1 2 3 4 5 6 7 8 9 java.io.FileNotFoundException: /mnt/sdcard/Android/data/com.xxxxxx.android/files/xxxx open failed: EBUSY (Device or resource busy) at libcore.io.IoBridge.open(IoBridge.java:406) at java.io.FileOutputStream.<init>(FileOutputStream.java:88) ... Caused by: libcore.io.ErrnoException: open failed: EBUSY (Device or resource busy) at libcore.io.Posix.open(Native Method) at libcore.io.BlockGuardOs.open(BlockGuardOs.java:110) ... ...

2014年12月22日 · 1 分钟 · haoxiqiang

Android 使用 Wireless 调试

自从换了 Nexus 设备,就不太想用 USB 连电脑了。Android 支持通过 WiFi 进行 ADB 调试,完全可以摆脱数据线的束缚。 ...

2014年12月5日 · 1 分钟 · haoxiqiang

Android's SQLite

SQLite 是一个轻量级的关系型数据库引擎,Android 内置对其支持,非常适合本地数据持久化。无需额外配置,通过 android.database.sqlite 包下的 API 即可使用。 ...

2014年12月1日 · 1 分钟 · haoxiqiang

Android's Palette

Palette 是 Android Support Library(现已迁移至 AndroidX palette 库)提供的取色工具,可以从 Bitmap 中自动提取一组代表色。在 Material Design 中,从图片提取色彩并应用到 UI 元素是常见的设计手法,Palette 让这一过程变得非常简单。 ...

2014年11月3日 · 2 分钟 · haoxiqiang