/* */ /* */

2015年3月19日木曜日

【adb】adb shell am -n で起動しない【Activity起動】

開発時にLAUNCHERから遠いActivityに遷移したいけど、一々操作するの面倒って事がよく有りますよね。

ゲームのクリア画面とか、特殊条件時にしか出ない画面とか・・・。

そんな時に使えるコマンドがadbに用意されております。
というかこの話題でこのブログ来たって事は既に他の記事で見てやってダメだった方かと思います。
よって本題

$adb shell am start -n <パッケージ名>/<Activityまでのパス>


他の解説サイトでは<Activityまでのパス>を「.MainActivity」とか書いてるけど嘘っぱちです。(いや、正しいんですけど・・・、公式にもそう書いてあるんだけど・・・)

例えばGradleのFlavorsで生成するapk変えた時とかに引っかかります。
apk毎にパケージ名は違うけど、Activityまでのパスは共通なんです。




例えば
- [com.pakage.name]
      - [hoge.hoge]
             - FugaActivity

この場合
adb shell am start -n com.pakage.name/com.pakage.name.hogehoge.FugaActivity
で行けるはず。(試してはない)





Flavorsでパッケージネームを変更してる場合
- [com.pakage.name]
      - [hoge.hoge]
             - FugaActivity
~~~~~
- build.gradle 内で  applicationId "com.piyopiyo.foobar"

この場合
adb shell am start -n com.piyopiyo.foobar/com.pakage.name.hogehoge.FugaActivity
で行けるはず。(試してない)



後、この後ろに --elとか--eiとかそんなの渡すと起動するActivityのBundleに引数渡せる。
その辺はここ参照。
http://developer.android.com/tools/help/adb.html#IntentSpec



(´Α`;)何時間か無駄にした。
「.MainActivityで起動できる」って記事が多くて信ぴょう性高そうに思えてしまってた・・・。

0 件のコメント:

コメントを投稿