Bescottee苦しいときは伸びてるとき、楽なときは伸びていないとき

8 adb shell pm list コマンドの端末ごとの違いについて

admin to KnowHow, development — Tags: , , ,  

pm list コマンド

pm list コマンド

androidアプリ開発をしている場合は、adb コマンドは必須でしょう。adbコマンド以外にもいくつもAndroid SDK DevGuide Toolsに記載されているようなコマンドが提供されています。

今回紹介する pm list コマンドは、上記のようなSDKが提供しているコマンドではなく、端末内で提供されているコマンドです。これはどういう意味かというと、端末のバージョンや開発元(HTCやSamsungなど)によって利用できるものが異なるということです。

3台の端末(emulator込み)の比較

Androidバージョンの異なる2台の端末とエミュレータで pm list コマンドのオプションの比較を行います。差分は、pm list libraries コマンドのみ(pm clear PACKAGEはあまり利用しないだろうと独断と偏見で除外)がAndroidVersion 2.3(今回の場合、Nexus Sとエミュレータ(2.3.3)で提供されていました。

Nexus S(Version:2.3.6, Build number:GRK39F)と Emulator(Version:2.3.3)

IS03(Version:2.2.1, Build number:01.01.08)

pm list libraries コマンド

このコマンドは何を表示してくれるものかというと以下の実行結果のように端末の中に入っているライブラリを一覧表示してくれます。このライブラリを必要とするアプリ(Google Maps を利用しているアプリやusb.accessoryを利用しているアプリなど)は、インストーラーが端末側に利用するライブラリが存在するかどうかを確認し、存在しなければ以下のようなエラーメッセージ(INSTALL_FAILED_MISSING_SHARED_LIBRARY)が表示されて、アプリのインストールが失敗します。

必要なライブラリが端末に存在しない場合のエラーメッセージ(例として、ADKのサンプルアプリDemoKitLaunchをlibrary:com.android.future.usb.accessory が搭載されていない端末にインストールした場合)

Nexus S への pm list libraries コマンド

Android Emulator(Version;2.3.3) (作成時のtarget は、Google APIs ではない方)

結論

  • 今回の調査対象とした Nexus S(2.3.6)や emulator(2.3.3)にはpm list に追加オプション(libraries)が存在
  • 但し、2.3(GB)の全端末で提供されているかどうかは不明。(ありそうな気がしますが・・・)
  • アプリインストール時に利用ライブラリがないエラーがでた場合に、pm list libraries で調査が可能
  • 2.2以下でpm list libraries が提供されていない場合の調査方法は不明。(adb install してみるしかない?)

8件のコメント »

  1. myb1126 より:

    ほむ / “adb shell pm list コマンドの端末やOSバージョンごとの違いを調査 | Bescottee” http://t.co/ICR3pE9K

  2. adb shell pm list コマンドの端末やOSバージョンごとの違いを調査 | Bescottee – http://andbrowser.com/develop...

  3. vvakame より:

    [Android] / “adb shell pm list コマンドの端末やOSバージョンごとの違いを調査 | Bescottee” http://t.co/E3eWU4Ta

  4. わかめ より:

    adb shell pm list コマンドの端末やOSバージョンごとの違いを調査 | Bescottee – http://andbrowser.com/develop...

  5. vvakame より:

    adb shell pm list コマンドの端末やOSバージョンごとの違いを調査 | Bescottee http://t.co/vsqO54GS

  6. itog より:

    おお、これでADK対応かどうかわかるのか RT @vvakame: [Android] / “adb shell pm list コマンドの端末やOSバージョンごとの違いを調査 | Bescottee” http://t.co/7eJX1kP9

  7. isis331 より:

    おお、これでADK対応かどうかわかるのか RT @vvakame: [Android] / “adb shell pm list コマンドの端末やOSバージョンごとの違いを調査 | Bescottee” http://t.co/7eJX1kP9

このコメント欄の RSS フィード トラックバック URL

コメントをどうぞ