• Linux 特殊指令(有部分指令可能是安卓的)


    dd指令

     假如有一个文件abc.gz,大小为83456k,我想用dd命令实现如下备份 结果:首先将备份分成三个部分,第一部分为备份文件abc.gz的前10000k,第二部分为中间的70000k,最后备份后面的3456k.
     
     dd if=abc.gz.bak1 of=abc.gz
     dd if=abc.gz.bak2 of=abc.gz bs=1k seek=10000
     dd if=abc.gz.bak3 of=abc.gz bs=1k seek=80000
    
    这时查看一下恢复的文件将和原来的文件一模一样,说明备份成功了
    
    busybox dd if=/dev/zero of=/dev/block/mmcblk0p21 bs=1024 count=51200
    busybox hexdump /dev/block/mmcblk0p21
    busybox dd if=/data/communiq.bin of=/dev/block/mmcblk0p21 bs=1024 seek=1024 
    busybox dd if=/data/communiq.bin of=/dev/block/mmcblk0p21 bs=1024 seek=1408
    busybox dd if=/data/communiq.cfg of=/dev/block/mmcblk0p21  bs=1024 seek=2048
    busybox dd if=/data/communiq.cfg of=/dev/block/mmcblk0p21  bs=1024 seek=2176
    busybox dd if=/data/C04D0139.bin of=/dev/block/mmcblk0p21 bs=1024 seek=3072 
    busybox dd if=/data/C04D0139.bin of=/dev/block/mmcblk0p21 bs=1024 seek=3136
    busybox dd if=/data/C04D0139.bin of=/dev/block/mmcblk0p21 bs=1024 seek=4096
    busybox dd if=/data/C04D0139.bin of=/dev/block/mmcblk0p21 bs=1024 seek=4160
    sync
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19

    dumpsys

    dumpsys (Android - 系统服务信息)
        1|root@root:/proc/msp # dumpsys -l                                     
        Currently running services:
          CASEventManagerService
          ChinaDrmManagerService
          DockObserver
          EventManagerServer
          HiDisplay
          HiPQ
          HiSysManager
          HinetshareBService
          Micphone
          RTSoundEffects
          SurfaceFlinger
          accessibility
          account
          activity
          alarm
          android.security.keystore
          appops
          appwidget
          assetatlas
          audio
          backup
          battery
          batteryproperties
          batterystats
          bluetooth_manager
          clipboard
          commontime_management
          connectivity
          consumer_ir
          content
          country_detector
          cpuinfo
          dbinfo
          device_policy
          devicestoragemonitor
          diskstats
          display
          dreams
          drm.drmManager
          dropbox
          entropy
          ethernet
          fingerprint
          gfxinfo
          hardware
          hiaoservice
          hikaraokeservice
          hipppoe
          imms
          input
          input_method
          jobscheduler
          launcherapps
          location
          lock_settings
          media.audio_flinger
          media.audio_policy
          media.camera
          media.player
          media.sound_trigger_hw
          media.tvosaudiosetting
          media.tvosvideosetting
          media_projection
          media_router
          media_session
          meminfo
          mount
          my.DA.binder
          my.OAM.binder
          netpolicy
          netstats
          network_management
          network_score
          ngb_eventmanager
          ngb_inputevent
          notification
          package
          permission
          power
          print
          procstats
          restrictions
          rttmanager
          samplingprofiler
          scheduling_policy
          search
          security.paymentManager
          sensorservice
          serial
          service.infrared
          servicediscovery
          statusbar
          stp.androidxmanager
          telephony.registry
          textservices
          trust
          tvos.interact
          tvos.multiscreen
          tvos.payment
          tvos.smarthomeiot
          uimode
          updatelock
          usagestats
          usb
          user
          vibrator
          wallpaper
          webviewupdate
          wifi
          wifip2p
          wifiscanner
          window
    
    procmem/dumpsys meminfo (Android - 单个进程/系统内存分配信息查看)
        eg:dumpsys |grep BroadcastRecord
        root@root:/proc/msp # procmem 1576                                     
            Vss      Rss      Pss      Uss     ShCl     ShDi     PrCl     PrDi  Name
        -------  -------  -------  -------  -------  -------  -------  -------  
           900K     888K     888K     888K       0K       0K     888K       0K  /system/bin/DTVServer
            24K      24K      24K      24K       0K       0K      24K       0K  /system/bin/DTVServer
             4K       4K       4K       4K       0K       0K       4K       0K  /system/bin/DTVServer
           760K     252K     252K     252K       0K       0K     252K       0K  
             4K       0K       0K       0K       0K       0K       0K       0K  
            28K      28K      28K      28K       0K       0K      28K       0K  /system/lib/libbinder.so
             4K       4K       4K       4K       0K       0K       4K       0K  /system/lib/libbinder.so
           144K     144K     144K     144K       0K       0K     144K       0K  /system/lib/libCAALService.so
             4K       0K       0K       0K       0K       0K       0K       0K  
            20K      20K      20K      20K       0K       0K      20K       0K  /system/lib/libCAALService.so
             4K       4K       4K       4K       0K       0K       4K       0K  /system/lib/libCAALService.so
             4K       4K       4K       4K       0K       0K       4K       0K  [anon:linker_alloc]
             4K       4K       4K       4K       0K       0K       4K       0K  [anon:linker_alloc]
             4K       4K       4K       4K       0K       0K       4K       0K  [anon:linker_alloc]
             4K       4K       4K       4K       0K       0K       4K       0K  
             8K       0K       0K       0K       0K       0K       0K       0K  
            56K      56K       1K       0K      56K       0K       0K       0K  /system/bin/linker
             4K       4K       4K       4K       0K       0K       4K       0K  /system/bin/linker
             4K       4K       4K       4K       0K       0K       4K       0K  /system/bin/linker
             4K       4K       4K       4K       0K       0K       4K       0K  
           132K      20K      20K      20K       0K       0K      20K       0K  [stack]
             4K       0K       0K       0K       0K       0K       0K       0K  [sigpage]
             4K       0K       0K       0K       0K       0K       0K       0K  [vvar]
             4K       0K       0K       0K       0K       0K       0K       0K  [vdso]
             0K       0K       0K       0K       0K       0K       0K       0K  [vectors]
        -------  -------  -------  -------  -------  -------  -------  -------  
         69776K   26
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78
    • 79
    • 80
    • 81
    • 82
    • 83
    • 84
    • 85
    • 86
    • 87
    • 88
    • 89
    • 90
    • 91
    • 92
    • 93
    • 94
    • 95
    • 96
    • 97
    • 98
    • 99
    • 100
    • 101
    • 102
    • 103
    • 104
    • 105
    • 106
    • 107
    • 108
    • 109
    • 110
    • 111
    • 112
    • 113
    • 114
    • 115
    • 116
    • 117
    • 118
    • 119
    • 120
    • 121
    • 122
    • 123
    • 124
    • 125
    • 126
    • 127
    • 128
    • 129
    • 130
    • 131
    • 132
    • 133
    • 134
    • 135
    • 136
    • 137
    • 138
    • 139
    • 140
    • 141
    • 142
    • 143
    • 144
    • 145
    • 146
    • 147
    • 148

    logcat

    eg:logcat -c;logcat -G 10M;logcat -v time | grep -E "mmcp|native|wulijiao"
        一般的打印信息的级别如下:
          V    Verbose
          D    Debug
          I    Info
          W    Warn
          E    Error
          F    Fatal
          S    Silent (supress all output)
    
    logcat -c;logcat -G 10M;logcat -v time
    logcat -v time -v threadtime > /mnt/sda/sda1/nosync2/1204.txt &
    logcat -v time -v threadtime >> /mnt/sda/sda1/nosync2/1204-1.txt &
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    ANR调试信息

    调试手册:
    一、anr信息产生的原因:
    (1). KeyDispatchTimeout(5 seconds) --主要类型按键或触摸事件在特定时间内无响应
    
    (2). BroadcastTimeout(10 seconds) --BroadcastReceiver在特定时间内无法处理完成
    
    (3). ServiceTimeout(20 seconds) --小概率类型 Service在特定的时间内无法处理完成
    
    二、anr信息解析:
    当ANR发生时,往往通过Logcat和traces文件(目录/data/anr)的相关信息输出来定位问题,主要包括以下几个方面:
    
    1 基本信息,包括进程号名,进程号,包名,系统build号,ANR类型等等
    
    2 CPU使用信息,包括活跃进程的CPU平均占用率,IO情况等
    
    3 线程堆栈信息,所属进程包括发生ANR的进程,其父进程,最近有活动的3个进程等
    
    4.当ANR不是发生在system server进程时,mian log会有关键字"ANR in”,如果anr发生在 system server进程,则main log一般不会记录到关键字"ANR in”;
    
    5.system_server进程发生死锁:搜索关键字“am_anr”;
    
    6.通过trace log得知ANR发生在system_server进程,主线程在等待一个锁:
    - waiting to lock <0x02e6b629> (a com.android.server.am.ActivityManagerService) held by thread 9
    从此处无法得知问题点在哪里,根据第一节的介绍:如果ANR发生在system_server进程,那么main log会记录"WATCHDOG KILLING SYSTEM PROCESS"关键字及异常信息,我们去main log里面看看,确实存在该"WATCHDOG KILLING SYSTEM PROCESS"关键字
    
    三、相关使用
    错误信息获取:
    logcat -s AndroidRuntime
    
    四、错误
    1.线程状态为“waiting for monitor entry”:等待进入临界区
    eg:java.lang.Thread.State: BLOCKED (on object monitor)
    2.线程状态为“waiting on condition”:等待触发条件,唤醒进程,或者是其调用了sleep
    eg:java.lang.Thread.State: WAITING (parking):一直等那个条件发生;
    java.lang.Thread.State: TIMED_WAITING (parking或sleeping):定时的,那个条件不到来,也将定时唤醒自己
    3.大量线程在“waiting for monitor entry”:全局锁阻塞住了大量线程。
    如果短时间内打印的 thread dump 文件反映,随着时间流逝,waiting for monitor entry 的线程越来越多,没有减少的趋势,可能意味着某些线程在临界区里呆的时间太长了,以至于越来越多新线程迟迟无法进入临界区。
    4.大量线程在“waiting on condition”:获取第三方资源,第三方资源(比如说网络资源)迟迟未能获得导致未得到响应,大量线程处于等待状态,
    5.线程状态为“in Object.wait()”:获得了监视器之后,又调用了 java.lang.Object.wait() 方法
    Entry Set中等待:Waiting for monitor entry
    Wait Set中等待:in Object.wait()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
  • 相关阅读:
    C# OpenCvSharp Mat操作-创建Mat-zeros
    【云原生 | Docker 基础篇】06、本地镜像发布到阿里云
    SpringBoot开发网页即时聊天室/IM通信/WebSocket/即时通讯
    7.Vue常用属性
    C++ 二级指针与 const 关键字
    ​如何使用ArcGIS Pro制作渐变河流效果
    计算机网络-物理层(编码、调制)
    汇编语言与接口技术实验
    Java泛型漫谈
    linux文件系统卷标管理
  • 原文地址:https://blog.csdn.net/qq_37748525/article/details/123007767