夏敏的博客

一名Android程序员的技术博客

write()和append()的区别

容易让人误会的write与append

Java的Writer里面的append与write容易让人误解,且网上系统的解说的也不多, 便写了此文. 基础问题1:Writer如何追加字符串 在构造法方法中,有一个boolean app...

WebSocket简介

简单介绍一下websocket

好多小伙伴对websocket都不怎么了解,甚至是闻所未闻,本篇文章将简单的介绍一下websocket。当然,websock的并不能解决我们面临的所有问题,一个稳定的在线判断,长链接框架,写起来...

KeepGank.IO 2.0来了

全新的KeepGank

几个月前重构了KeepGank的代码,没有发布,这次正式的宣传一下。 本次重构主要做了以下工作: 整体代码按模块功能分类 增加头像选择功能,超炫的滑动浏览特效 全新的大图浏览模块...

Android,mk那些变量的含义

Android.mk中那些变量的含义,一直没有做过总结,此次又涉及到修改mk,便做了一下总结. Android系统源码编译命令 Android源码下开发肯定涉及到Android.mk. And...

Android meta-Data介绍及应用

利用meta-data,让你的Manifest增加了提供数据的功能

meta-data常见于我们使用第三方SDK时,比如友盟统计,比如讯飞SDK,配置appid会用到,而实际上,meta-data可做的远不止这些。在公司我的框架中某一功能是依赖meta-data...

RemoteCallbackList简介

一个重要的辅助工具类

项目中有一个继承于RemoteCallbackList的类已经很久了,我知道它是用来维护服务端回调客户端的回调接口的.但是网上少有这个类的介绍,今天我便写文章介绍一下. 其官方API介绍在:h...

谈谈那个听起来挺高大上的ThreadLocal

ThreadLocal估计很多人都没听过,因为说实话平时写代码很少用到,我第一次看到代码里用ThreadLocal是在Looper的源码,Looper的源码中有下面这样的一个定义: st...

应用较广泛模式之装饰者模式

一年逛一次设计模式,每次都有新感觉!

设计模式系列仍旧没结束,让我们继续吧.. 装饰者模式是我个人比较喜欢的一个设计模式,为什么这么说呢,使用装饰者模式给我们的程序提供了一种动态扩展的功能,我们可以在不动原有的类的情况下添加新功能...

Android多进程应用之接口可靠性优化

你的AIDL接口是否可靠?

前言 我们都知道Android可以通过AIDL进行多进程通信, 既然是多进程, 服务方和客户端即不在一个进程里面,那么在调用方调用的时候服务方可能挂掉了. 什么?你的服务端代码稳定的很,就是不...

再次深入final关键字

匿名类用到的变量为什么一定要是final的呢?

提起final变量,大家都是耳熟能详, final成员变量表示常量,只能被赋值一次,赋值后值不再改变。 final类不能被继承,没有子类,final类中的方法默认是final的。 ...

AIDL中参数的out,inout问题

在AIDL传输过程中,我们有时需要传递自定义的类型,当然网上有很多教程,要把这个类型implements Parcelable,再写个aidl文件声明一下。 如下便是我们自定义一个InfoBe...

WebView加载Github工程时直接进入README界面的几种方式

用JS直接编写插件给webview

前言 在开发KeepGank的过程中遇到了一个问题,就是Github的手机版本网页进入时会是这个样子。 比如打开RxJava的网页会是这个样子,路径为:https://github.com/R...

TCP粘包的那点事儿

Nagle算法带来的弊端-粘包

提起大名鼎鼎的TCP,其特性我们大家都是倒背如流,TCP是面向连接的,UDP是面向非连接的。那么在通信中我们每次发送的帧数是有大小限制的,这个大小受很多影响,当然是木桶效应,我们的传输单元有大小...

Android音频知识介绍-从AndroidRecord看起

PCM、采样率、采样精度、码率、WAV

前言 从一个初始化AudioRecord的构造传参看起: RecorderHelper.getInstance().initRecoder( t...

插件化入门篇-如何启动一个未注册过的Activity

看我赵云在AMS七进七出

几乎所有的插件化都会要的一个需求,启动一个未注册的Activiy,即加载插件包中的Activity,并且主应用并不知道插件应用中会有什么Activity,这是各个插件化框架主力解决的问题之一。 ...