当前位置: 首页 > 编程笔记 >

Android之在linux终端执行shell脚本直接打印当前运行app的日志的实现方法

潘兴朝
2023-03-14
本文向大家介绍Android之在linux终端执行shell脚本直接打印当前运行app的日志的实现方法,包括了Android之在linux终端执行shell脚本直接打印当前运行app的日志的实现方法的使用技巧和注意事项,需要的朋友参考一下

1、问题

我们一般很多时候会需要在ubuntu终端上打印当前运行app的日志,我们一般常见的做法是

1)、获取包名

打开当前运行的app,然后输入如下命令,然后在第一行TASK后面的就可以看到包名

adb shell dumpsys activity top

2)、我们的终端安装了pidcat.py脚本,然后执行如下的命令就可以打印当前运行app的全日志,

pidcat.py packageName

3)、思考,为什么每次都需要这样重复的操作呢?一说到重复,我们应该立马想到是否可以用脚本解决重复操作

2、解决办法

通过执行脚本文件获取包名,然后再执行pidcat.py packageName命令

3、代码实现

1)、新建pcat文件

#!/bin/bash
dev="device"
devices=$(adb devices)
if [[ ${devices} == *$dev ]]
then
  echo "手机已经连接好终端"
  info=$(adb shell dumpsys activity top | awk -F " " '/TASK/ {print $2}')
  echo "当前运行app的包名是:${info}"
  pidcat.py --hw ${info}
else
 echo "手机没有连接好终端"
fi

2)、把pcat文件复制到下面目录

/usr/local/bin/

4、测试结果

1)、打开手机"游戏中心"的app

2)、在终端输入pcat

3)、终端运行结果

*****~$ pcat 
手机已经连接好终端
当前运行app的包名是:com.huawei.gamebox
         Zygote D CtrlSocket libc.so ctrl_sockets_set_addr pfunc is not exist!
              Process com.huawei.gamebox created for activity com.huawei.gamebox/.GameBoxActivity
              PID: 29758  UID:  GIDs: 
     ActivityThread D ActivityThread,attachApplication
         HwCust D Create obj success use class android.content.res.HwCustHwResourcesImpl
     AnalyticUtils D experience = 1
    StoreApplication D create application.
    HwPolicyFactory V : success to get AllImpl object and return....
    HwWidgetFactory V : successes to get AllImpl object and return....
     ActivityThread V ActivityThread,callActivityOnCreate

5、小结

重复的操作我们可以用脚本解决问题,提高开发效率,要记得用这个之前确保你的终端能运行pidcat

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对小牛知识库的支持。如果你想了解更多相关内容请查看下面相关链接

 类似资料:
  • 本文向大家介绍shell脚本按当前日期输出日志的实现,包括了shell脚本按当前日期输出日志的实现的使用技巧和注意事项,需要的朋友参考一下 shell脚本基本技能是设置变量,输出信息。如下: sh脚本输出到控制台 将以上脚本保存到test.sh脚本文件中,并赋予可执行权限:sudo chmod +x test.sh 执行脚本:bash test.sh 控制台输出: 输出到控制台,并且写入日志文件:

  • 问题内容: 我想运行一个shell脚本来在构建我的应用程序时更改string.xml中的值。我应该在哪里在gradle中运行脚本,因为其中没有任务。或者,因为我将使用Jenkins构建应用程序,所以我应该在Jenkins服务器上运行脚本吗?请帮帮我。 问题答案: 您可以添加一个运行脚本并使其依赖于构建的步骤。

  • 本文向大家介绍Linux中执行shell脚本的4种方法总结,包括了Linux中执行shell脚本的4种方法总结的使用技巧和注意事项,需要的朋友参考一下 bash shell 脚本的方法有多种,现在作个小结。假设我们编写好的shell脚本的文件名为hello.sh,文件位置在/data/shell目录中并已有执行权限。 方法一:切换到shell脚本所在的目录(此时,称为工作目录)执行shell脚本:

  • 本文向大家介绍hive-shell批量命令执行脚本的实现方法,包括了hive-shell批量命令执行脚本的实现方法的使用技巧和注意事项,需要的朋友参考一下 如下所示: 以上这篇hive-shell批量命令执行脚本的实现方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持呐喊教程。

  • 本文向大家介绍Android 从Gradle执行Shell脚本,包括了Android 从Gradle执行Shell脚本的使用技巧和注意事项,需要的朋友参考一下 示例 Shell脚本是一种非常通用的方法,可以将您的构建扩展到您能想到的任何东西。 例如,这是一个简单的脚本,用于编译protobuf文件并将结果java文件添加到源目录中以进行进一步编译: 此示例的“ pbScript.sh” shell

  • 问题内容: 根据Docker文档:Dockerfile中只能有一条CMD指令。如果您列出多个CMD,则只有最后一个CMD才会生效。 我希望在CMD命令(本例中为init)之前执行一个简单的bash脚本(处理docker环境变量)。 有什么办法吗? 问题答案: 使用自定义入口点 创建一个可以执行所需操作的自定义入口点,然后最后执行您的CMD。 注意 :如果您的映像已经定义了一个自定义入口点,则可能需