Androidアプリケーション開発を行っている学生は、「キャッシュ」という言葉に慣れていると信じています。キャッシュには多くの概念があるかもしれません。プログラム開発用のキャッシュの例をいくつか次に示します。
- 1.サーバー制御キャッシュ
たとえば、Volleyリクエストライブラリは、サーバーの「Cache-Control」と「max-age」を使用して、キャッシュがあるかどうかとキャッシュの時間をクライアントに通知します。これも推奨される使用方法ですが、サーバーの連携が必要であり、より柔軟です。
- 2.クライアントがキャッシュを直接制御する
サーバーがサポートする必要がない場合は、クライアントがキャッシュのレイヤーを直接実行できます。アイデアは、リクエストの後でデータをローカルにキャッシュすることです。最も一般的なのは、ファイルをローカルにキャッシュすることです。もちろん、ローカルにキャッシュすることもできます。 sqlite、sqliteファイルの形式でのキャッシュデータ処理はより柔軟であり、クライアントはそれ自体でキャッシュ時間を処理し、データが期限切れになると直接データをクリアします。頻繁に変更されないページの場合、このキャッシュを使用すると、クライアントのトラフィックを減らし、サーバーの同時実行性を減らすことができます。
一部のニュースやタイムラインでは、データの変更が頻繁に行われます。このような状況では、キャッシュ時間を設定するのは適切でない場合があります。この場合、最新のデータを取得するために、ページが読み込まれるたびにページを自動的に更新することを検討してください。良好でない場合や切断されている場合は、ローカルキャッシュを直接読み取って、ユーザーエクスペリエンスを向上させることができます。もちろん、より複雑な処理が必要な場合は、時間を調整して現在のページを更新する必要があるかどうかを判断できます。
今日は、簡単に使用できるシンプルなキャッシュフレームワークを紹介します。
ASimpleCache
ASimpleCacheは、Android用に開発された軽量のオープンソースキャッシュフレームワークです。(1ダース以上のクラスから圧縮された)1つのJavaファイルのみに軽量化。
何をキャッシュできますか?
通常の文字列、JsonObject、JsonArray、ビットマップ、Drawable、シリアライズされたJavaオブジェクト、およびバイトデータ。
ASimpleCacheの使用方法
ACache mCache = ACache.get(this);
mCache.put("test_key1", "test value");
mCache.put("test_key2", "test value", 10);//保存10秒,如果超过10秒去获取这个key,将为null
mCache.put("test_key3", "test value", 2 * ACache.TIME_DAY);//保存两天,如果超过两天去获取这个key,将为null
データを取得する
ACache mCache = ACache.get(this);
String value = mCache.getAsString("test_key1");
このプロジェクトの最後のオープンソースアドレス: ASimpleCache