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

 更新时间:2019年02月16日 11:39:07   作者:chenyu_insist  
今天小编就为大家分享一篇关于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

总结

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

相关文章

  • Android如何实现底部菜单固定到底部

    Android如何实现底部菜单固定到底部

    这篇文章主要介绍了Android如何实现底部菜单固定到底部,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-09-09
  • android网络图片查看器简单实现代码

    android网络图片查看器简单实现代码

    这篇文章主要为大家详细介绍了android网络图片查看器的简单实现代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-03-03
  • Android入门教程之ListView的具体使用详解

    Android入门教程之ListView的具体使用详解

    列表作为最常用的控件之一,还是有必要好好学习的,本章以一个初学者的角度来学习 ListView,ListView的属性,以及BaseAdapter简单定义,至于ListView优化这些, 我们一步步来
    2021-10-10
  • ReactiveCocoa代码实践之-更多思考

    ReactiveCocoa代码实践之-更多思考

    这篇文章主要介绍了ReactiveCocoa代码实践之-更多思考的相关资料,需要的朋友可以参考下
    2016-04-04
  • Android ViewModel创建不受横竖屏切换影响原理详解

    Android ViewModel创建不受横竖屏切换影响原理详解

    这篇文章主要为大家介绍了Android ViewModel创建不受横竖屏切换影响原理详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-03-03
  • Android Studio中生成aar文件及本地方式使用aar文件的方法

    Android Studio中生成aar文件及本地方式使用aar文件的方法

    这篇文章给大家讲解Android Studio中生成aar文件以及本地方式使用aar文件的方法,也就是说 *.jar 与 *.aar 的生成与*.aar导入项目方法,本文给大家介绍的非常详细,需要的朋友参考下吧
    2017-12-12
  • Android6.0编程实现双向通话自动录音功能的方法详解

    Android6.0编程实现双向通话自动录音功能的方法详解

    这篇文章主要介绍了Android6.0编程实现双向通话自动录音功能的方法,结合实例形式分析了Android录音功能的原理、实现技巧与相关注意事项,需要的朋友可以参考下
    2017-07-07
  • Android中如何加载数据缓存

    Android中如何加载数据缓存

    这篇文章主要介绍了Android中如何加载数据缓存的相关资料,需要的朋友可以参考下
    2016-02-02
  • Android源码探究之BaseDexClassLoader的使用

    Android源码探究之BaseDexClassLoader的使用

    今天解决一个插件化问题的时候,竟然发现SO没有正常加载,很怪异,最终排查下来发现竟然是参数传入错误导致的。这就扯到了本文的标题上了,BaseDexClassLoader中的4个参数该如何传入,传入的又是什么呢
    2022-08-08
  • Android自定义荷载进度的两种方法

    Android自定义荷载进度的两种方法

    进度条在App中非常常见,例如下载进度、加载图片、打开文章、打开网页等等……本篇文章主要介绍了Android自定义荷载进度的两种方法,有需要的朋友可以了解一下。
    2016-10-10

最新评论