日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android adb 启动APP

發(fā)布時(shí)間:2025/3/12 Android 73 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android adb 启动APP 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

目錄

  • 啟動命令
    • 一 常規(guī)命令 + 包名/activity
    • 二 常規(guī)命令 + 包名
    • 命令關(guān)閉App
  • 獲取包名和activity的路徑
    • 代碼獲取
    • 1 命令獲取( 需要app運(yùn)行在前臺,停留在啟動界面)
    • 2命令獲取(先執(zhí)行命令,再點(diǎn)擊app啟動)

啟動命令

一 常規(guī)命令 + 包名/activity

adb shell am start -n package/launch activity

說明:package 是app的包名(android studio一般是gradle中的applicationId的值)
launch activity 是啟動activity的完整路徑(如果和package重疊的話,可簡寫)

例如:
applicationId:com.eagle.game
啟動activity完整的路徑是com.eagle.game.ui.StartActivity

具體的命令為:

adb shell am start -n com.eagle.game/com.eagle.game.ui.StartActivity

adb shell am start -n com.eagle.game/.ui.StartActivity

注意:包名和activity之間是有斜線,簡寫時(shí)注意斜線后的點(diǎn)。

輸出:

Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.eagle.game/.ui.StartActivity }

代表啟動成功

二 常規(guī)命令 + 包名

adb shell am start -n package

這種命令需app的啟動activity的intent-filter中配置屬性:
<category android:name=“android.intent.category.DEFAULT”/>

即:

<activityandroid:name=".ui.StartActivity"android:banner="@drawable/gs_ic_launcher"android:icon="@drawable/gs_ic_launcher"android:label="@string/app_name"android:theme="@style/AppWelcome"android:logo="@drawable/gs_ic_launcher"android:screenOrientation="landscape"><intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" /><category android:name="android.intent.category.DEFAULT"/></intent-filter></activity>

但為了app的安全以及合規(guī),一般是app是不會配置的。

命令關(guān)閉App

  • cmd命令行中執(zhí)行 adb shell am force-stop app包名
  • 例如:adb shell am force-stop com.eagle.game

  • cmd命令行中執(zhí)行 adb shell pm clear app包名
  • 例如:adb shell pm clear com.eagle.game

    獲取包名和activity的路徑

    回到第一種命令,關(guān)鍵是包名和actvity的路徑,怎么獲取呢

    代碼獲取

    從開發(fā)者處獲取,gradle中的applicationId就是包名,從AndroidManifest.xml里面獲取包名和啟動的activty路徑。

    1 命令獲取( 需要app運(yùn)行在前臺,停留在啟動界面)

    打開App,在cmd窗口中輸入以下命令。

    adb shell dumpsys window windows | findstr “Current”

    如下圖所示,/之前的就是package,之后的就是當(dāng)前的activity, 有些應(yīng)用啟動時(shí)包含了歡迎頁之類的,打開App的時(shí)候就自動切換了activity,那用這種方法就獲取不了需要的activity。

    C:\Users\Administrator>adb shell dumpsys window windows | findstr “Current”
    mCurrentFocus=Window{64177ed u0 com.eagle.game/com.eagle.game.ui.StartActivity}

    2命令獲取(先執(zhí)行命令,再點(diǎn)擊app啟動)

    先輸入:adb shell 回車

    再輸入:logcat | grep -i ActivityManager

    啟動app。

    注意留意輸出內(nèi)容,可能刷得比較快。

    在log中“ ActivityManager: START”之后的部分就含有am 命令需要的package和launch activity。如:

    2129 I ActivityManager: START u0 {act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 hwFlg=0x10 cmp=com.eagle.game/.ui.StartActivity bnds=[288,396][540,690]} from uid 10063

    中的com.eagle.game/.ui.StartActivity

    命令獲取都需要先啟動app,這種情況下,實(shí)際上也用不著通過命令去啟動。一般那種定制系統(tǒng),如電視盒子,定制的平板手機(jī),大屏一體機(jī),沒有列出某些app,無法通過桌面啟動,在測試其他廠商的app的情況下可能需要通過命令去啟動。
    這種情況下可以先用手機(jī)啟動后獲取到包名和activity,再在定制系統(tǒng)中去用adb啟動。

    說明:本文是的實(shí)例是在windows 7 上進(jìn)行的。

    總結(jié)

    以上是生活随笔為你收集整理的Android adb 启动APP的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。