ADB问题分析利器

分析app不能不提adb

查看应用当前有几个栈?

当app内出现多栈问题时,如何快速界定当前app中的Activity存在于哪些栈。

思路如下:

  1. 过滤出当前app的所有存活的Activity
  2. 显示栈信息

通过dumpsys activity activities展示出所有的Activity,结合grep滤出所有的栈信息,滤出特定affinity的栈

adb shell dumpsys activity activities|grep TaskRecord|grep com.wuba|grep \*

查看目标App支持的Action/Intent-Filter

这个场景源自分析OPPO等手机上如果打开应用市场。标准情况下我们可以通过market协议,但是如果发现某些设备上无法唤起,就需要进行排查。

思路如下:

  1. 测试设备是否能唤起应用市场
  2. 确定设备上的应用市场包名
  3. 过滤显示应用市场app的action列表

通过am start启动知道页面或者发出Intent,可以验证是否能够吊起应用。 通过dumpsys package显示应用相关信息,结合-f参数滤出intent filter信息

OPPO市场分析

adb shell am start -a  android.intent.action.VIEW -d market://detail?id=com.wuba
adb shell dumpsys package -f com.oppo.market|less
Schemes:
      market:
        33592d6 com.oppo.market/a.a.a.aoz filter 23b9858
          Action: "android.intent.action.VIEW"
          Category: "android.intent.category.DEFAULT"
          Category: "android.intent.category.BROWSABLE"
          Scheme: "market"
          Authority: "details": -1
        33592d6 com.oppo.market/a.a.a.aoz filter 7daddb1
          Action: "android.intent.action.VIEW"
          Category: "android.intent.category.DEFAULT"
          Category: "android.intent.category.BROWSABLE"
          Scheme: "market"
          Authority: "search": -1
      oppomarket:
        33592d6 com.oppo.market/a.a.a.aoz filter 580f3ca
          Action: "android.intent.action.VIEW"
          Category: "android.intent.category.DEFAULT"
          Category: "android.intent.category.BROWSABLE"
          Scheme: "oppomarket"
          Authority: "ProductDetail": -1
        33592d6 com.oppo.market/a.a.a.aoz filter a6b893b
          Action: "android.intent.action.VIEW"
          Category: "android.intent.category.DEFAULT"
          Category: "android.intent.category.BROWSABLE"
          Scheme: "oppomarket"
          Authority: "details": -1
        33592d6 com.oppo.market/a.a.a.aoz filter fa28296
          Action: "android.intent.action.VIEW"
          Category: "android.intent.category.DEFAULT"
          Category: "android.intent.category.BROWSABLE"
          Scheme: "oppomarket"
          Authority: "detail_search": -1

OPPO市场app完整Action数据

根据intent信息,可以知道,OPPO市场支持market://details不支持market://detail 这就尴尬了,再次查询Google官方的协议,发现也是details,因此使用detail可能笔误,不过实际上有些设备两种都支持,比如MIUI

小米市场app完整Action数据

除了Google的标准market协议,厂商一般还有自己的协议头,看规律就是给market加了前缀,如oppomarket,mimarket

linking-to-google-play

powered by Gitbook最近更新 2019-04-04

results matching ""

    No results matching ""