Google Mobile Ads Lite SDKを試してみた
Google Mobile Ads Lite SDKを試してみました。
Google Mobile Ads Lite SDKとは
Google Mobile Ads SDK(以下フル版)の軽量版です。
フル版と比べると
- バイナリサイズが小さくなる
- メソッド参照数が減る(64K 参照制限対策になる)
という点がメリット。一方でGoogle Playストアで配布するアプリじゃないと適用できないというデメリットがあります。
Google Mobile Ads Lite SDKのカラクリ
Google Play 開発者サービス SDK(com.google.android.gms:play-services-xxx
なライブラリ)は単にインターフェースのみを提供していて、ロジックの実体はGoogle Play開発者サービスのAPKが提供しています。端末に勝手にインストールされて勝手にバージョンアップされてたまに挙動不審になるあのアプリです。
ところが、Google Mobile Ads SDKに限ってはライブラリ側にもロジックが組み込まれています。なので、Google Play開発者サービスのAPKがインストールされていない端末でも広告を表示できるわけです。
Google Mobile Ads Lite SDKはライブラリ側にロジックを組み込まずインターフェースだけにしたもの。ロジックの分だけ容量やメソッド参照数が減るけど、Google Play開発者サービスのAPKがインストールされていないとロジックが存在しなくなるので広告が表示できなくなります。
実際どう?
とあるアプリに組み込んでみました。ProGuard適用済みです。
- フル版
- APK Size: 3.1MB
- Download Size: 2.6MB
- Referenced Methods: 39984
- Google Mobile Ads Lite SDK
- APK Size: 2.3MB
- Download Size: 1.8MB
- Referenced Methods: 28507
この情報はAndroid Studioに組み込まれているAPK Analyzerで取得できます。
ライブラリの組み込み状況とか次第で効果のほどが違ってくると思うので、Lite SDKを検討するときは実際に試してみてください。
今回の結果だと、容量もさることながらメソッド参照数が約1万減るのはだいぶデカいですね。Multidexを避けたい場合は有力な選択肢になりそう。
あとは広告配信の重要度次第ですね。自分みたいに趣味でほそぼそと作っているアプリなんかだとGoogle Playストア以外でリリースすることはないのでLite SDKのメリットが大きい。ダウンロード数が多いアプリだとGoogle Playストア以外の入手経路もありそう(特に中国対応とか)なのでデメリットが勝っちゃうかも。
一応フォールバックとして
- AdMob以外の広告配信ライブラリを組み込んでおく
- Google Play Serviceに依存しないものである必要アリ
- 何なら自社広告バナーみたいなものを組み込んでもいいかも
- 起動時にGoogle Play Serviceの使用可否を調べる
- Google Play Serviceが無効だったらAdMobじゃない広告を表示する
みたいな仕組みも実装できそうです。 メソッド参照数が1万もあるライブラリなんてそうそうないので、この仕組みでもメリットは享受できるはず。
参考URL
関連(するかもしれない)記事
おススメ