2011-12-19 11 views
0

私はアンドロイド用のgmailアプリと同じようにアンドロイドアプリケーションをやっています。私は、アプリケーションが非常に速く、非常に応答性が高いことがわかります。速い応答のアンドロイドアプリケーションを実装する方法

gmailはパフォーマンス向上のためにローカルキャッシュを使用していると確信しています。しかし、私はgmailが以下のユースケースをどのようにしているのだろうと思う。

最初にログインして、アプリがすべてのメールを読み込み、sql liteや他のキャッシングを入れるとします。 ユースケース1 私は星を削除または追加するたびにサーバに非同期サーバreqを作成します。これは問題ありません。

ユースケース2 ユーザーが別のクライアントから変更を加えた場合に、どのように通知されるのですか? (ブラウザから)。 メール全体をダウンロードするにはコストがかかるでしょう。ユーザーがすでにキャッシュされている電子メールにスターを追加する場合を想定します。

どのようにして他のクライアントからの更新のみを取得できるようにapiを実装できますか?新しい電子メール、削除された電子メール、スター追加などのような更新。ユーザーがバックグラウンド同期を使用しない場合のシナリオを検討しています。

これは長い間悩まされています。あなたにGmailのアプリの背後にある秘密を理解するためのチュートリアルやリンクを教えてください。

答えて

0

なぜあなたはGmailのWebアプリケーションを見ないのですか?それは同じ/同様のデザインプリンシパルを使用します(Gmail Webアプリも私にとって非常に速いです)。次に、同じプリンシパルを適用することができます。 Webアプリケーションを使用すると、firefoxとfirebugのようなものを使ってWebリクエストを見ることができます。 「ネット」タブの下には、ネットワークを介して送信されているもののjsonが表示されます。また、リクエストがどのように構成されたかを示します。あなたは彼らが最適にデータを返す方法を見ることができませんが、それはかなり簡単です。

1)は、電子メールの最新のページのキャッシュを作成します。

は、私はあなたが次の操作を行い、データを返すために推薦します。 2)新しい電子メールの更新は即座にキャッシュにプリフェッチされます。 3)電子メールの次のページと前のページのキャッシュを設定します。

は基本的に私が言っていることは次のとおりです。

1)あなたは、プレーンスヌーピングに非常に見えるグーグルのウェブ版を見ることができます。 2)ユーザーが電子メールをどのように表示するかを統計的に使用して最適化することができます。これはキャッシュの改善を示唆することができます。

あなたの質問は多くの一般的な概念とproriataryソフトウェアに関連しているので、リンクの点で求めていることは難しいです。

+0

あなたの意見に同意します。どうもありがとう。 – san

関連する問題