In Coding


唯妹子和写作不可辜负!

客户端路由动态配置——可能是最简单的热更新方案

Abstract 说到热更新,大多数人的第一印象肯定是AndFix或者HotFix等热更新框架。但是一来这些框架学习成本较高,坑较多,二来对于大的模块更新支持不好。所以在实际开发功能中,对于一些紧急的功能上线或者bug修复,使用H5页面替换原生页面是一个较为简单和方便的方案。本文主要讲解如何...

Android Drawable缓存问题 以及Resources源码分析

起源 今天开发过程中遇到一个问题,定位到问题代码如下: public static Drawable getColorFilteredDrawable(@DrawableRes int drawableRes, @ColorRes int colorRes){ ...

每天学点ShellScript——16进制颜色值转换器

每天学点ShellScript——16进制颜色值转换器 源码 写了个shell小脚本用来把%为单位的alpha值和RGB值转换为16进制数。 输入有三种情况: 一个参数: 认为是alpha值,转换为16进制的alpha值。 三个参数:认为是RGB 值,转换为6个字符表示16进...

Android SharedPreferences 源码分析

概览 SharedPreferences(以下使用SP简称)在Android中作为一种使用简单的数据存储形式被广泛用来存储一些不需要做数据库操作的数据,比如用户配置项等。本文将从源码入手分析其实现,并据此提出一些使用中需要注意的事项。 分析 源码入口 SP是一个interface,首先我...

Android自定义Notification并没有那么简单

背景 最近需要实现一个自定义Notification的功能。网上找了找代码,解决方案就是通过RemoteViews来实现。但是在实现过程中遇到不少问题,网上也没有很好的文章描述这些问题,所以在这里做个总结,希望大家能少走点弯路。 实现 RemoteViews 自定义View 这是最基础的...

Android持续集成以及测试覆盖率可视化

背景 很多开源项目在README中会有几个小图标来表示build情况,测试覆盖率等。如 看起来感觉很牛逼的样子,其实实现起来很简单,只需几步,就能让你的开源项目也变得牛逼起来。 Travis-CI Travis-CI是一款持续集成工具,对开源项目免费。免除了Jenkins搭建服务器的...

Android去除烦人的默认闪退Dialog

背景 安卓应用闪退后总会出现一个“抱歉,App已经停止运行”的弹窗,这样的用户体验并不好。很多大厂的App都去除了这个弹窗,因此本文主要介绍如何去除默认闪退弹窗,以及在闪退时做一些必要的善后工作。 UnCaughtExceptionHandler UnCaughtExceptionHand...

Android随机对象生成器的设计与实现

目标 当完成一个新的Feature的时候,需要对其进行测试。但是由于服务器还没有部署该功能,或者单元测试的限制,往往需要程序员自己去伪造一些数据。但是手工伪造数据往往效率不高并且没有代表性。因此希望能够实现一个对象生成器,生成对象并往里面填充随机值。 项目地址 rog 设计要点 对象生成器...