如何使用adb shell命令啟動一個安裝好的apk
前幾天在給平板做完cts測試之後平板的觸屏失效了,後來經理給了一個解決方案,就是把平板的觸屏韌體刷一下。接著問題就來了,既然觸屏失效了,那麼應該如何啟動一個安裝好的apk呢?下面就是步驟了,大家可以參考一下:
1、首先確定你的apk已經安裝好了,至於怎麼確定呢,我這給你推薦一個很笨的辦法:
既然你無法確定是否已經安裝好了,就乾脆把apk重新安裝一遍,命令如下:
adb install -r apk檔名稱.apk,其中 -r的意思就是重新安裝。
2、這下子apk安裝好了,那我們就開始啟動吧。
有人可能搜尋到這樣一個命令:adb shell am start pkg/.MainActivity
問題就來了,那個pkg是什麼意思呢?很多人可能會把它當作app的名字(我就是在這個地方被坑了),實際上他不 是app的名字,是你安裝的apk的應用的名字。還有後面的.MainActivity是什麼呢?有android基礎的人都知道一個應用程式的啟動肯定會包含Activity的啟動,這下就該明白了吧,它就是應用程式所對應的Activity的名字。
說了這麼多,那麼這兩個引數如何獲取呢,請輸入:
adb shell dumpsys package>package.txt,然後開啟package.txt,你會看到很長的資訊:
接下來你就去找了,找到對應的app的應用名和activity名字,主要在Activity Resolver Table這個下面找,這裡有很多資訊,列舉一段:<ol start="1"><li><span>Libraries: </span></li><li class="alt"><span> </span></li><li><span> </span></li><li class="alt"><span> ... </span></li><li><span> </span></li><li class="alt"><span>Features: </span></li><li><span> </span></li><li class="alt"><span> </span></li><li><span> ... </span></li><li class="alt"><span> </span></li><li><span>Activity Resolver Table: </span></li><li class="alt"><span> </span></li><li><span> Full MIME Types: </span></li><li class="alt"><span> </span></li><li><span> ... </span></li><li class="alt"><span> </span></li><li><span> MIME Typed Actions: </span></li><li class="alt"><span> </span></li><li><span> ... </span></li><li class="alt"><span> </span></li><li><span>Receiver Resolver Table: </span></li><li class="alt"><span> </span></li><li><span> Full MIME Types: </span></li><li class="alt"><span> </span></li><li><span> </span></li><li class="alt"><span> ... </span></li><li><span> </span></li><li class="alt"><span> Non-Data Actions: </span></li><li><span> </span></li><li class="alt"><span> ... </span></li><li><span> </span></li><li class="alt"><span>Service Resolver Table: </span></li><li><span> </span></li><li class="alt"><span> Full MIME Types: </span></li><li><span> </span></li><li class="alt"><span> </span></li><li><span> ... </span></li><li class="alt"><span> </span></li><li><span> Base MIME Types: </span></li><li class="alt"><span> </span></li><li><span> </span></li><li class="alt"><span> ... </span></li><li><span> </span></li><li class="alt"><span> Non-Data Actions: </span></li><li><span> </span></li><li class="alt"><span> </span></li><li><span> ... </span></li><li class="alt"><span> </span></li><li><span> MIME Typed Actions: </span></li><li class="alt"><span> </span></li><li><span> ... </span></li><li class="alt"><span> </span></li><li><span>Preferred Activities User 0: </span></li><li class="alt"><span> </span></li><li><span> </span></li><li class="alt"><span> ... </span></li><li><span> </span></li><li class="alt"><span>Permissions: </span></li><li><span> </span></li><li class="alt"><span> </span></li><li><span> ... </span></li><li class="alt"><span> </span></li><li><span>Registered ContentProviders: </span></li><li class="alt"><span> </span></li><li><span> ... </span></li><li class="alt"><span> </span></li><li><span>ContentProvider Authorities: </span></li><li class="alt"><span> </span></li><li><span> ... </span></li><li class="alt"><span> </span></li><li><span>Shared users: </span></li><li class="alt"><span> </span></li><li><span> ... </span></li><li class="alt"><span> </span></li><li><span> </span></li><li class="alt"><span>Settings parse messages: </span></li><li><span> </span></li><li class="alt"><span>Read completed successfully: 149 packages, 12 shared uids </span></li><li><span> </span></li><li class="alt"><span> ... </span></li><li><span> </span></li><li class="alt"><span>Package warning messages: </span></li></ol>
2684ef80 com.google.android.gms/.plus.sharebox.ShareBoxActivity filter 2684f058 26897268 com.google.android.talk/com.google.android.apps.babel.phone.ShareIntentActivity filter 26897488 268ad568 com.mobisystems.editor.office_registered/com.mobisystems.office.DownloadActivity filter 268ad610 268af1b8 com.mobisystems.editor.office_registered/com.mobisystems.office.mail.viewer.MessageViewer filter 268af430 26937770 com.adobe.reader/.services.cpdf.ARCreatePDFActivity filter 269378b8 269481a8 com.android.bluetooth/.opp.BluetoothOppLauncherActivity filter 26948318 2695a088 com.android.chrome/com.google.android.apps.chrome.Main filter 2695a568 26972190 com.google.android.apps.docs/.app.SendTextToClipboardActivity filter 26972278 267d7cc0 com.android.htmlviewer/.HTMLViewerActivity filter 267c8550 26a1e5c8 com.google.android.apps.plus/.phone.SignOnActivity filter 26a1e868 26a1e5c8 com.google.android.apps.plus/.phone.SignOnActivity filter 26a1ed60 26a1e5c8 com.google.android.apps.plus/.phone.SignOnActivity filter 26a1ee30 26a366a0 com.dynamixsoftware.printhand/.ui.phone.ActivityDetails filter 26a36750 26a37868 com.dynamixsoftware.printhand/.ui.ActivityPreviewFiles filter 26a37918 26a37868 com.dynamixsoftware.printhand/.ui.ActivityPreviewFiles filter 26a37ee8 26a52c60 com.twitter.android/.DMRequestInboxActivity filter 26a52de8 26a53208 com.twitter.android/.MessagesActivity filter 26a53470 26a54010 com.twitter.android/.composer.TextFirstComposerActivity filter 26a542b0 26a55448 com.twitter.android/.DMConversationActivity filter 26a55598 26a7bef8 com.facebook.katana/.activity.composer.ImplicitShareIntentHandler filter 26a7bfb8 26db15d8 com.evernote.skitch/.app.marshallers.SkitchPlainTextMarshaller filter 26e30428
找到之後,再用adb shell命令啟動,adb shell am start pkg/.MainActivity,比如
adb shell am start com.facebook.katana/.activity.composer.ImplicitShareIntentHandler
好了,接下來就能看到你的apk在螢幕上執行起來了
最後在扯扯剛開始提到的那個問題,既然你的螢幕失效了,那麼該如何點選執行起來的apk呢?買一個usb otg,並且你的裝置支援這個功能,然後插上滑鼠,盡情的操作吧。
這是我的第一篇部落格,希望能幫到遇到此類問題的人,但是錯誤在所難免,歡迎大家批評指正!