【问题标题】:How to get detail of third party app in android?如何在android中获取第三方应用程序的详细信息?
【发布时间】:2012-09-06 12:09:05
【问题描述】:

是否可以在 android 中监控第三方应用程序意味着我想知道第三方应用程序的所有日志,例如应用程序 xyz 在星期四凌晨 2:30 访问联系人列表。

我们是否可以更改框架代码,就像任何应用程序在 sqlite 框架类上运行任何查询时都会生成一个日志一样?我认为应该可以通过有根设备但不知道如何实现这一点。

【问题讨论】:

    标签: java android


    【解决方案1】:

    LogCollector 安装 LOG COLLECTOR 应用程序

    【讨论】:

      【解决方案2】:

      更改框架以了解谁访问了任何 contentProvider 的一种方法是更改​​

      enforceReadPermissionenforceWritePermission 在 ContentProvider.java 中记录调用 contentProvider 的包,

      Log.d(TAG,""+getCallingPackages() +" app called provider "+ uri.getAuthority());
      

      getcallingpackages 函数

      private Collection<String> getCallingPackages() {
           int caller = Binder.getCallingUid();
           if (caller == 0) {
               return null;
           }
           return Lists.newArrayList(mContext.getPackageManager().getPackagesForUid(caller));
       }
      

      【讨论】:

        【解决方案3】:

        我们是否可以更改框架代码,就像任何应用程序在 sqlite 框架类上运行任何查询都会生成一个日志一样?

        通过 fork Android 添加您的更改,创建您自己的包含您的 fork 的 Android 副本的 ROM mod,然后在您的设备上安装该 ROM mod。

        我认为应该可以通过root设备实现

        您最多可以跳过“创建您自己的 ROM 模块”步骤并尝试将修改后的框架 JAR 复制到您的根设备中。但是,如果该框架 JAR 与您的操作系统的其余部分不相符,则各种事情可能无法正常工作。这就是为什么唯一安全的方法是通过完整的 ROM 模组。

        【讨论】:

        • 您说得对,先生,我曾尝试更改contact.apk,但在许多其他地方强制关闭之后。
        【解决方案4】:

        这可能看起来很明显,但我还是会说出来。您可以在 Eclipse 的 LogCat 中读取任何应用程序的日志。

        如果您知道应用程序名称,并且它实际上会创建日志(即启用日志),您可以过滤它们以查看特定于该应用程序的日志。

        【讨论】:

        • "您可以在 Eclipse 的 LogCat 中读取任何应用程序的日志。" -- 不像果冻豆。
        【解决方案5】:

        也许你可以为 android 实现一个 aop 框架...

        【讨论】:

          猜你喜欢
          • 2015-10-17
          • 2017-12-02
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多