http://iharder.net/base64のBase64クラスを使用した場合

標準に比べ、メソッドが多い。
byte配列からの変換も可能だが、シリアライズ可能なオブジェクトを直接Base64文字列に変換
することも可能。
ListではなくArrayListなどもSerializableであるため、直接Base64文字列に変換することができる。
また、GZIP圧縮のオプションなども用意されている。

encodeの入力の種類
byte配列、java.nio.ByteBuffer、ファイル(パス指定)、オブジェクト(Serializable)
encodeの出力の種類
byte配列、java.nio.ByteBuffer、ファイル(パス指定)、String
decodeの入力の種類
byte配列、java.nio.ByteBuffer、ファイル(パス指定)、String
decodeの出力の種類
byte配列、java.nio.ByteBuffer、ファイル(パス指定)、オブジェクト(Serializable)

/**
 * SDK7以下の場合にサードパーティのBase64クラスと、オプションとしてGZIP圧縮を使った変換テスト
 * @throws IOException
 * @throws ClassNotFoundException
 */
public void under7Base64CheckAndGzip() throws IOException,
     ClassNotFoundException {
    Log.i("under7Base64CheckAndGzip","start");
    SampleClass sc = new SampleClass();
    sc.setId("test");
    Log.i("変換前0",sc.getId());
    //変換オプション
    //Base64.GZIP GZIP圧縮を使う
    String value = sample.base64.Base64.encodeObject(sc, 
    
    sample.base64.Base64.GZIP|sample.base64.Base64.URL_SAFE);
    Log.i("変換後1object",value);
    SampleClass ret = (SampleClass)sample.base64.Base64.decodeToObject
        (value, 
    sample.base64.Base64.GZIP|sample.base64.Base64.URL_SAFE, null);
    Log.i("変換後2",ret.getId());
    Log.i("under7Base64CheckAndGzip","end");
}

変換のオプションとして、指定したほうが望ましいと思われるのが、以下の2つ。

標準APIと同様の機能のオプション。

GZIP圧縮を有効にする。小さなデータであれば、このオプションを使う必要はないが、大量データの送信など行う場合は使ったほうが望ましいと思われる。

このBase64クラスの場合、標準で改行は無効となっている。
逆に改行を有効にしたい場合は、Base64.DO_BREAK_LINESオプションが用意されているのでそれを指定する。