SDKのパフォーマンス

🚧

このドキュメントは古いバージョンのAndroid SDK v1について記載しています

Android SDK v1は 2021/05/11でサポート終了となります。
SDK v1 からのアップグレードについては、まず SDK v1からv2のアップグレード方法 をご覧ください。

KARTEのSDKは軽量で、アプリのパフォーマンスへの影響は限定的です。
このページではSDKが使用するリソースについて説明します。

ネットワーク

SDKは主に次の用途でネットワークを利用します。

  • イベントの送信とアクションの受信。
  • アクション表示用のHTML/Javascriptモジュール(tracker.js)をWebViewに読み込む

イベントの送信とアクションの受信

リクエスト数削減のため、イベントは数百ms毎にバッファリングされ1つのリクエストにまとめて送信されます。
リクエストサイズはイベントやフィールドの数に依存します。例えば、幾つかのフィールドがセットされたviewidentifyを1つのリクエストで送信した場合は約1KBです。

レスポンスサイズは配信されるアクションに依存します。例えばバナーのテンプレートを利用したアクションが配信された場合は約18KBです。アクションが無い場合はリクエストと同等のサイズのレスポンスが返されます。

tracker.jsの読み込み

tracker.jsはアクション表示時に読み込まれます。tracker.jsは数百KBのサイズがありますが、キャッシュされるため2回目以降の表示では大きな読み込みは発生しません。

メモリ

トラッキングのみを行なう場合はメモリへの影響はほとんどありません。具体的には、Trackerはヒープ領域を数KB消費します。

アプリ内メッセージの表示中はJavaヒープ以外も含めたトータルのメモリ利用量が数十MB増えます。これはWebViewのクラスロードや描画に使われるものが多いです。

SDKはActivityに追加されたWebViewをそのActivityのonPauseで破棄することでメモリの消費を抑えています。

ディスク

SDKは主に次の用途でディスクを利用します。設定値配信やアプリ内メッセージを多用する場合を除き、ディスクI/Oの回数や転送量、ディスク使用量はほとんどありません。

  • visitor_idや、アプリのバージョン情報をSharedPreferenceに保存します。
  • 設定値配信を利用している場合、配信された設定値をSharedPreferenceに保存します。
  • WebViewにロードする透明なHTMLページ(約1KB)をディスクにキャッシュします。また、tracker.jsのキャッシュにはWebViewの機構が使われます。

バイナリサイズとメソッド数

SDKをアプリに導入した場合のapkファイルのサイズとメソッド数の増加量です。

項目増加量
サイズ41.8KB
メソッド数421

これは空のアプリにSDKを導入し、ProGuardを実行せずに測定した数値です。アプリで依存しているSDKのAPIに依りますが、アプリのビルド時にProGuard等の難読化・最適化を利用することで影響をより抑えることが可能です。

📘

バイナリサイズとメソッド数について

SDK v1.5.0の数値を記載しています。