在安卓开发中我们常常需要获取日志,通常我们可以通过adb logcat 命令获取日志。同样,我没有可以通过脚本获取。其实质也是通过adb命令实现,只是把命名写入bat文件中,在win系统中直接双击就可以运行文件中的命令,而不需要我们在cmd中输入。下面分析几种获取日志的方法。

1.我们想抓取实时日志,当前小张会说我直接在androidstudio logcat里面就可以看了谁要用你的工具。老张抿嘴一笑,小样。有时候一些情况比如端口问题,或者日志堆积问题,导致我们有一天发现我们的logcat并没有输出日志,或者我们想把日志保留下来慢慢分析,毕竟有些问题并不是一眼就看出问题的。这时候我们可以运行这个工具,然后执行我们的操作。抓我们想要的日志。

adb wait-for-device
adb devices
adb shell logcat -v threadtime >"%date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%%time:~6,2%log.txt"
pause

我们想把我们手机里面的日志,anr carsh 等等都取出来

@echo off
::V1.0 2021-1-18

::各个系统不同,可以根据需求添加或者删除不必要的目录下的数据获取

echo Version:Get Android All Log V1.0
echo.

echo currentTime:%time% Now %time:~0,2%:%time:~3,2%:%time:~6,2%:%time:~9,2%:@

set date_time="%date:~0,4%%date:~5,2%%date:~8,2%_%time:~0,2%%time:~3,2%_%time:~6,2%%time:~9,2%"
::设置显示的文件夹名称
set Folder="Logs_%date:~0,4%%date:~5,2%%date:~8,2%_%time:~0,2%%time:~3,2%_%time:~6,2%%time:~9,2%"
echo 日志文件夹:%Folder%
mkdir %Folder%

::获取root权限,下面pull一些隐私目录的数据需要root权限
adb remount
adb root
::创建文件夹
mkdir %Folder%\device
::获取系统的所有app服务
adb shell ps -A > %Folder%\device\ps.txt
::获取系统的cup等占用情况
adb shell top -b -n 1 > %Folder%\device\top.txt
::获取系统的cup前十个占用最多的进程信息
adb shell top -b -n 1 -H -m 10 -s 6 -o pid,tid,user,pr,ni,%%cpu,s,virt,res,pcy,cmd,name > %Folder%\device\top2.txt
::获取系统的进程内核信息
adb shell cat /proc/cmdline > %Folder%\device\cmdline.txt
::获取系统的进程内存占用信息
adb shell cat /proc/meminfo > %Folder%\device\meminfo.txt
::获取系统的cup信息
adb shell cat /proc/cpuinfo > %Folder%\device\cpuinfo.txt
::获取系统的prop属性信息
adb shell getprop > %Folder%\device\getprop.txt
::获取系统的内存大小信息
adb shell df -h > %Folder%\device\df.txt

::获取系统的当前界面截图
adb shell screencap /mnt/sdcard/Pictures/capture.png
adb pull /mnt/sdcard/Pictures/capture.png %Folder%\capture.png

::获取系统的dumpsys信息,包含dumpsys package XXX的信息
mkdir %Folder%\dumpsys
adb shell dumpsys > %Folder%\dumpsys\dumpsys.txt

::获取系统的缓存日志
adb shell logcat -v threadtime -d > %Folder%\logcat.txt

::获取系统的各目录下的日志,根据不同系统进适配

::系统Android日志
adb pull /data/misc/logm %Folder%\android_logs
::Dalvik、状态监视调试器、C层代码以及libc的一些问题导致的错误日志
adb pull /data/tombstones %Folder%\tombstones
::系统ANR异常日志
adb pull /data/anr %Folder%\anr
::系统内核日志
adb pull /sys/fs/pstore %Folder%\pstore
::系统内核应用程序崩溃数据
adb pull /data/system/dropbox %Folder%\dropbox
::系统??日志
adb pull /data/log/reliability %Folder%\reliability_system
adb pull /data/vendor/log/reliability %Folder%\reliability_vendor
::系统settings下的system、secure、global等属性
adb pull /data/system/users/0 %Folder%\settings

::获取系统的recovery信息
mkdir %Folder%\recovery
adb pull /splash2/recovery %Folder%\recovery

echo.
echo ==========log抓取完成==========
pause

adb pull 命令是取设备中的文件,取日志常用工具,基本上就是 adb pull 系统文件目录 这样可以把文件取出来。

其中android 系统日志 不同设备和手机厂商可能不一样,有些是data/android_log,这都不是重点,重点是只要我们知道日志在哪里,都可以通过adb pull 取出来。好啦,就分析到这里。

Android 开发中脚本 提高效率工具的更多相关文章

  1. NO.4 Android开发中常用框架及工具

    android-pulltorefresh 一个强大的拉动刷新开源项目,支持各种控件下拉刷新ListView.ViewPager.WevView.ExpandableListView.GridView ...

  2. web开发中的 emmet 效率提升工具

    web开发中的 emmet 效率提升工具 可以用来快速生成html 代码. 并且给各种IDE.编辑器提供了插件支持,sublime ,webstorm等. 如在webstorm中安装好emmet之后, ...

  3. Android 开发中,as或者idea对gradle的使用

    原文:Android 开发中,as或者idea对gradle的使用 本文属于转载收藏,侵删,出处:私人博客 ---------------------------------------------- ...

  4. Android开发中,那些让您觉得相见恨晚的方法、类或接口

    Android开发中,那些让你觉得相见恨晚的方法.类或接口本篇文章内容提取自知乎Android开发中,有哪些让你觉得相见恨晚的方法.类或接口?,其实有一部是JAVA的,但是在android开发中也算常 ...

  5. android开发中的5种存储数据方式

    数据存储在开发中是使用最频繁的,根据不同的情况选择不同的存储数据方式对于提高开发效率很有帮助.下面笔者在主要介绍Android平台中实现数据存储的5种方式. 1.使用SharedPreferences ...

  6. Android开发中常见的设计模式

    对于开发人员来说,设计模式有时候就是一道坎,但是设计模式又非常有用,过了这道坎,它可以让你水平提高一个档次.而在android开发中,必要的了解一些设计模式又是非常有必要的.对于想系统的学习设计模式的 ...

  7. Dagger2在Android开发中的应用

    世界是普遍联系的,任何事物和个体都直接或间接相互依赖,在时空长河中共同发展.在面向对象的世界中,更是如此,类与类之间的依赖,关联关系,模块(亦或是分层架构中的层)之间的耦合关系,都是我们在软件开发实践 ...

  8. 讨论Android开发中的MVC设计思想

    最近闲着没事,总是想想做点什么.在时间空余之时给大家说说MVC设计思想在Android开发中的运用吧! MVC设计思想在Android开发中一直都是一套比较好的设计思想.很多APP的设计都是使用这套方 ...

  9. 在 Android开发中,性能优化策略十分重要

    在 Android开发中,性能优化策略十分重要本文主要讲解性能优化中的布局优化,希望你们会喜欢.目录 示意图 1. 影响的性能 布局性能的好坏 主要影响 :Android应用中的页面显示速度 2. 如 ...

  10. 在android开发中使用multdex的方法-IT蓝豹为你整理

    Android系统在安装应用时,往往需要优化Dex,而由于处理工具DexOpt对id数目的限制,导致其处理的数目不能超过65536个,因此在Android开发中,需要使用到MultiDex来解决这个问 ...

随机推荐

  1. #莫比乌斯反演,欧拉函数#洛谷 5518 [MtOI2019]幽灵乐团

    题目传送门 分析 前置知识:\(\sum_{d|n}\mu(d)=[n==1]\),\(\sum_{d|n}\mu(d)\frac{n}{d}=\varphi(n)\) 把最小公倍数拆开可以得到 \[ ...

  2. ubuntu环境下因pie选项导致双击启动失败的问题

    在ubuntu环境下,链接可执行文件时增加-pie选项,双击可执行程序,无法正常启动. 对于这个现象,stackoverflow有个帖子,gcc creates mime type applicati ...

  3. 探索生成式AI的未来:Chat与Agent的较量与融合

    近年来,生成式人工智能(AI)不仅在技术界引起了广泛关注,更成为了推动多个行业革新的关键力量.这种技术之所以备受瞩目,不仅在于其独特的创造性和高效性,还在于它对未来商业模式和社会结构可能产生的深远影响 ...

  4. 痞子衡嵌入式:使能i.MXRT1050,1060 Hab签名或加密启动时App链接在片内SRAM的限制

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是使能i.MXRT1050, 1060 Hab签名或加密启动时App链接在片内SRAM的限制. 最近有客户反馈,在 RT1060 上测试 ...

  5. centos8 \CentOS 9 Stream rpm 安装mysql8.0.28

    centos8 rpm 安装mysql8.0.28 检查 检测系统是否自带安装 MySQL 命令如下: rpm -qa | grep mysql 如果如下存在已安装的包,就需要卸载 mysql80-c ...

  6. 重新点亮linux 命令树————文件列表查看命令[二]

    前言 整理一下文件查看命令 正文 主要是pwd和ls命令 pwd 这个是一个非常常用的命令,在shell脚本中基本都有,表示的是当前目录. 这是一个非常简单,但是非常实用的命令. 通过使用pwd -- ...

  7. js es6 Iterator

    1.遍历器(Iterator)是一种接口,为各种不同的数据结构提供统一的访问机制.任何数据结构只要部署Iterator接口,就可以完成遍历操作(即依次处理该数据结构的所有成员). 2.Iterator ...

  8. js es6 Proxy

    传统的get,set ES6 中引入Proxies,让你可以自定义Object的基本操作.例如,get就是Object的基础操作方法. const obj = { val: 10 }; console ...

  9. 框架hash/history实现简单原理

    1.hahs <!DOCTYPE html> <html lang="en"> <head> <meta charset="UT ...

  10. 力扣239(Java)- 滑动窗口最大值(困难)

    题目: 给你一个整数数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧.你只可以看到在滑动窗口内的 k 个数字.滑动窗口每次只向右移动一位. 返回 滑动窗口中的最大值 . 示 ...