栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

应用启动的一些常用adb命令

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

应用启动的一些常用adb命令

am命令格式如下

通过在adb直接输入am命令可看到说明信息,分为两个部分,一个是命令,一个是Intent参数。

Activity manager (activity) commands:
  help
      Print this help text.
  start-activity [-D] [-N] [-W] [-P ] [--start-profiler ]
          [--sampling INTERVAL] [--streaming] [-R COUNT] [-S]
          [--track-allocation] [--user  | current] 
      Start an Activity.  Options are:
      -D: enable debugging
      -N: enable native debugging
      -W: wait for launch to complete
      --start-profiler : start profiler and send results to 
      --sampling INTERVAL: use sample profiling with INTERVAL microseconds
          between samples (use with --start-profiler)
      --streaming: stream the profiling output to the specified file
          (use with --start-profiler)
      -P : like above, but profiling stops when app goes idle
      --attach-agent : attach the given agent before binding
      --attach-agent-bind : attach the given agent during binding
      -R: repeat the activity launch  times.  Prior to each repeat,
          the top activity will be finished.
      -S: force stop the target app before starting the activity
      --track-allocation: enable tracking of object allocations
      --user  | current: Specify which user to run as; if not
          specified then run as the current user.
      --windowingMode : The windowing mode to launch the activity into.
      --activityType : The activity type to launch the activity as.
      --display : The display to launch the activity into.
  start-service [--user  | current] 
      Start a Service.  Options are:
      --user  | current: Specify which user to run as; if not
          specified then run as the current user.
  start-foreground-service [--user  | current] 
      Start a foreground Service.  Options are:
      --user  | current: Specify which user to run as; if not
          specified then run as the current user.
  stop-service [--user  | current] 
      Stop a Service.  Options are:
      --user  | current: Specify which user to run as; if not
          specified then run as the current user.
  broadcast [--user  | all | current] 
      Send a broadcast Intent.  Options are:
      --user  | all | current: Specify which user to send to; if not
          specified then send to all users.
      --receiver-permission : Require receiver to hold permission.
      --allow-background-activity-starts: The receiver may start activities
          even if in the background.
  instrument [-r] [-e  ] [-p ] [-w]
          [--user  | current]
          [--no-hidden-api-checks [--no-test-api-access]]
          [--no-isolated-storage]
          [--no-window-animation] [--abi ] 
      Start an Instrumentation.  Typically this target  is in the
      form / or only  if there
      is only one instrumentation.  Options are:
      -r: print raw results (otherwise decode REPORT_KEY_STREAMRESULT).  Use with
          [-e perf true] to generate raw output for performance measurements.
      -e  : set argument  to .  For test runners a
          common form is [-e  [,...]].
      -p : write profiling data to 
      -m: Write output as protobuf to stdout (machine readable)
      -f : Write output as protobuf to a file (machine
          readable). If path is not specified, default directory and file name will
          be used: /sdcard/instrument-logs/log-yyyyMMdd-hhmmss-SSS.instrumentation_data_proto
      -w: wait for instrumentation to finish before returning.  Required for
          test runners.
      --user  | current: Specify user instrumentation runs in;
          current user if not specified.
      --no-hidden-api-checks: disable restrictions on use of hidden API.
      --no-test-api-access: do not allow access to test APIs, if hidden
          API checks are enabled.
      --no-isolated-storage: don't use isolated storage sandbox and 
          mount full external storage
      --no-window-animation: turn off window animations while running.
      --abi : Launch the instrumented process with the selected ABI.
          This assumes that the process supports the selected ABI.
  trace-ipc [start|stop] [--dump-file ]
      Trace IPC transactions.
      start: start tracing IPC transactions.
      stop: stop tracing IPC transactions and dump the results to file.
      --dump-file : Specify the file the trace should be dumped to.
  profile start [--user  current]
          [--sampling INTERVAL | --streaming]  
      Start profiler on a process.  The given  argument
        may be either a process name or pid.  Options are:
      --user  | current: When supplying a process name,
          specify user of process to profile; uses current user if not
          specified.
      --sampling INTERVAL: use sample profiling with INTERVAL microseconds
          between samples.
      --streaming: stream the profiling output to the specified file.
  profile stop [--user  current] 
      Stop profiler on a process.  The given  argument
        may be either a process name or pid.  Options are:
      --user  | current: When supplying a process name,
          specify user of process to profile; uses current user if not
          specified.
  dumpheap [--user  current] [-n] [-g]  
      Dump the heap of a process.  The given  argument may
        be either a process name or pid.  Options are:
      -n: dump native heap instead of managed heap
      -g: force GC before dumping the heap
      --user  | current: When supplying a process name,
          specify user of process to dump; uses current user if not specified.
  set-debug-app [-w] [--persistent] 
      Set application  to debug.  Options are:
      -w: wait for debugger when application starts
      --persistent: retain this value
  clear-debug-app
      Clear the previously set-debug-app.
  set-watch-heap  
      Start monitoring pss size of , if it is at or
      above  then a heap dump is collected for the user to report.
  clear-watch-heap
      Clear the previously set-watch-heap.
  clear-exit-info [--user  | all | current] [package]
      Clear the process exit-info for given package
  bug-report [--progress | --telephony]
      Request bug report generation; will launch a notification
        when done to select where it should be delivered. Options are:
     --progress: will launch a notification right away to show its progress.
     --telephony: will dump only telephony sections.
  force-stop [--user  | all | current] 
      Completely stop the given application package.
  crash [--user ] 
      Induce a VM crash in the specified package or process
  kill [--user  | all | current] 
      Kill all background processes associated with the given application.
  kill-all
      Kill all processes that are safe to kill (cached, etc).
  make-uid-idle [--user  | all | current] 
      If the given application's uid is in the background and waiting to
      become idle (not allowing background services), do that now.
  monitor [--gdb ]
      Start monitoring for crashes or ANRs.
      --gdb: start gdbserv on the given port at crash/ANR
  watch-uids [--oom ]
      Start watching for and reporting uid state changes.
      --oom: specify a uid for which to report detailed change messages.
  hang [--allow-restart]
      Hang the system.
      --allow-restart: allow watchdog to perform normal system restart
  restart
      Restart the user-space system.
  idle-maintenance
      Perform idle maintenance now.
  screen-compat [on|off] 
      Control screen compatibility mode of .
  package-importance 
      Print current importance of .
  to-uri [INTENT]
      Print the given Intent specification as a URI.
  to-intent-uri [INTENT]
      Print the given Intent specification as an intent: URI.
  to-app-uri [INTENT]
      Print the given Intent specification as an android-app: URI.
  switch-user 
      Switch to put USER_ID in the foreground, starting
      execution of that user if it is currently stopped.
  get-current-user
      Returns id of the current foreground user.
  start-user [-w] 
      Start USER_ID in background if it is currently stopped;
      use switch-user if you want to start the user in foreground.
      -w: wait for start-user to complete and the user to be unlocked.
  unlock-user  [TOKEN_HEX]
      Attempt to unlock the given user using the given authorization token.
  stop-user [-w] [-f] 
      Stop execution of USER_ID, not allowing it to run any
      code until a later explicit start or switch to it.
      -w: wait for stop-user to complete.
      -f: force stop even if there are related users that cannot be stopped.
  is-user-stopped 
      Returns whether  has been stopped or not.
  get-started-user-state 
      Gets the current state of the given started user.
  track-associations
      Enable association tracking.
  untrack-associations
      Disable and clear association tracking.
  get-uid-state 
      Gets the process state of an app given its .
  attach-agent  
    Attach an agent to the specified , which may be either a process name or a PID.
  get-config [--days N] [--device] [--proto] [--display ]
      Retrieve the configuration and any recent configurations of the device.
      --days: also return last N days of configurations that have been seen.
      --device: also output global device configuration info.
      --proto: return result as a proto; does not include --days info.
      --display: Specify for which display to run the command; if not 
          specified then run for the default display.
  supports-multiwindow
      Returns true if the device supports multiwindow.
  supports-split-screen-multi-window
      Returns true if the device supports split screen multiwindow.
  suppress-resize-config-changes 
      Suppresses configuration changes due to user resizing an activity/task.
  set-inactive [--user ]  true|false
      Sets the inactive state of an app.
  get-inactive [--user ] 
      Returns the inactive state of an app.
  set-standby-bucket [--user ]  active|working_set|frequent|rare
      Puts an app in the standby bucket.
  get-standby-bucket [--user ] 
      Returns the standby bucket of an app.
  send-trim-memory [--user ] 
          [HIDDEN|RUNNING_MODERATE|BACKGROUND|RUNNING_LOW|MODERATE|RUNNING_CRITICAL|COMPLETE]
      Send a memory trim event to a .  May also supply a raw trim int level.
  display [COMMAND] [...]: sub-commands for operating on displays.
       move-stack  
           Move  from its current display to .
  stack [COMMAND] [...]: sub-commands for operating on activity stacks.
       move-task   [true|false]
           Move  from its current stack to the top (true) or
           bottom (false) of .
       resize-docked-stack  []
           Change docked stack to 
           and supplying temporary different task bounds indicated by
           
       move-top-activity-to-pinned-stack:  
           Moves the top activity from
            to the pinned stack using  for the
           bounds of the pinned stack.
       positiontask   
           Place  in  at 
       list
           List all of the activity stacks and their sizes.
       info  
           Display the information about activity stack in  and .
       remove 
           Remove stack .
  task [COMMAND] [...]: sub-commands for operating on activity tasks.
       lock 
           Bring  to the front and don't allow other tasks to run.
       lock stop
           End the current task lock.
       resizeable  [0|1|2|3]
           Change resizeable mode of  to one of the following:
           0: unresizeable
           1: crop_windows
           2: resizeable
           3: resizeable_and_pipable
       resize  
           Makes sure  is in a stack with the specified bounds.
           Forces the task to be resizeable and creates a stack if no existing stack
           has the specified bounds.
  update-appinfo   [...]
      Update the ApplicationInfo objects of the listed packages for 
      without restarting any processes.
  write
      Write all pending state to storage.
  compat [COMMAND] [...]: sub-commands for toggling app-compat changes.
         enable|disable|reset  
            Toggles a change either by id or by name for .
            It kills  (to allow the toggle to take effect).
         enable-all|disable-all  .
         reset-all 
            Removes all existing overrides for all changes for 
             (back to default behaviour).
            It kills  (to allow the toggle to take effect).

 specifications include these flags and arguments:
    [-a ] [-d ] [-t ] [-i ]
    [-c  [-c ] ...]
    [-n ]
    [-e|--es   ...]
    [--esn  ...]
    [--ez   ...]
    [--ei   ...]
    [--el   ...]
    [--ef   ...]
    [--eu   ...]
    [--ecn  ]
    [--eia  [, [,)
    [--ela  [, [,)
    [--efa  [, [,)
    [--esa  [, [,; to embed a comma into a string,
         escape it using ",")
    [-f ]
    [--grant-read-uri-permission] [--grant-write-uri-permission]
    [--grant-persistable-uri-permission] [--grant-prefix-uri-permission]
    [--debug-log-resolution] [--exclude-stopped-packages]
    [--include-stopped-packages]
    [--activity-brought-to-front] [--activity-clear-top]
    [--activity-clear-when-task-reset] [--activity-exclude-from-recents]
    [--activity-launched-from-history] [--activity-multiple-task]
    [--activity-no-animation] [--activity-no-history]
    [--activity-no-user-action] [--activity-previous-is-top]
    [--activity-reorder-to-front] [--activity-reset-task-if-needed]
    [--activity-single-top] [--activity-clear-task]
    [--activity-task-on-home] [--activity-match-external]
    [--receiver-registered-only] [--receiver-replace-pending]
    [--receiver-foreground] [--receiver-no-abort]
    [--receiver-include-background]
    [--selector]
    [ |  | ]
启动Activity
  • 显式启动,常规启动使用:
am start packageName/ActivityName

隐式启动:

am start -a actionName pacakgeName
  • 系统应用启动
am start -W com.oppo.camera
  • 普通应用想通过包名启动,分两个阶段
//1.通过monkey命令查询b得到启动activity(关注 + Using main activity这一行即可!!!)
monkey -v -v -v  -p com.example.component  -c android.intent.category.LAUNCHER 0
bash arg: -v
  bash arg: -v
  bash arg: -v
  bash arg: -p
  bash arg: com.example.component
  bash arg: -c
  bash arg: android.intent.category.LAUNCHER
  bash arg: 0
args: [-v, -v, -v, -p, com.example.component, -c, android.intent.category.LAUNCHER, 0]
 arg: "-v"
 arg: "-v"
 arg: "-v"
 arg: "-p"
 arg: "com.example.component"
 arg: "-c"
 arg: "android.intent.category.LAUNCHER"
 arg: "0"
data="com.example.component"
data="android.intent.category.LAUNCHER"
.ConversationList (from package com.android.mms)
//   - NOT USING main activity com.coloros.weather.main.view.WeatherMainActivity (from package com.coloros.weather2)
//   - NOT USING main activity com.dianping.v1.NovaMainActivity (from package com.dianping.v1)
//   - NOT USING main activity com.duowan.kiwi.simpleactivity.SplashActivity (from package com.duowan.kiwi)
//   - NOT USING main activity com.eg.android.AlipayGphone.AlipayLogin (from package com.eg.android.AlipayGphone)
//   + Using main activity com.example.component.MainActivity (from package com.example.component)
//   - NOT USING main activity com.mc10086.cmcc.base.StartPageActivity (from package com.greenpoint.android.mc10086.activity)
//   - NOT USING main activity com.heytap.health.oobe.LaunchActivity (from package com.heytap.health)
## Network stats: elapsed time=49ms (0ms mobile, 0ms wifi, 49ms not connected)
// Monkey finished

//2.获取activity再结合包名启动(参考前面)
启动Service
am startservice
am stopservice
发送广播

给未启动应用发送广播,用于启动

//参考intent.addFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES)
am broadcast -a com.example.component.StartAction -f 32 com.example.component

//必须以静态广播方式注册

    
        
    

启动instrument测试(自动化测试很多使用这里的原理)
am instrument 测试apk包名/测试apk中的Instrumentaion实现类,原生是AndroidJUnitRunner
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/572131.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号