在应用程序内部运行android systrace

问题描述

我正在尝试开发一个允许用户使用systrace记录系统跟踪的应用程序,我希望能够在常规的Android应用程序中运行此程序,不需要PC或ROOT可以使用亚行。

从Android 9开始,开发人员选项中有一个用于record system traces的选项,它在没有任何外部工具的情况下可以完美地在设备上运行,但是我需要对此进行更多控制,因为我将运行systrace在一段时间内执行命令,然后自动将结果上传到服务器(所有操作均在应用程序中发生)

我可以通过Android应用程序执行此操作吗?

我尝试在应用程序内使用python,然后运行systrace,但由于找不到ADB而失败,并出现错误

解决方法

这是不可能的,这是设计使然。系统跟踪数据被视为个人数据,因为它可能包含诸如用户正在使用的应用程序之类的信息(所有进程都转储到跟踪中)。当您使用设备上的trace app时,将提示您进行确认,然后再共享跟踪。通过允许自动跟踪上传,它将绕过现有的隐私保护。

p.s。 systrace Python script只是一些adb命令的包装,因此只能在PC上运行。