当前位置:   article > 正文

android系统负载如何获取1-简单利用系统命令_com.qti.diagservices

com.qti.diagservices

author:lidx,1028659927.

最近在调查系统负载问题,希望能从中获取一些系统卡顿的知识,暂时把简单获取系统负载的命令记录下来,以备以后查看。

本文不做具体负载分析,只为记录命令,等后续系统负载分析有了结果会给大家呈现分析的过程和结果。

具体负载的形象说明可以看阮一峰老师这篇文章:点击打开链接

     近几年智能手机发展迅速,手机产业拼杀残酷一片火海,有从默默无闻做到了行业巨头奇迹,有为发烧而生却让人抢购的发烧的烦恼,有为了头条不惜爆炸的神经,也有不为所动专心自身的淡定,红蓝之争、芯片之争、性价比之争等等一切皆凸显了手机行业在中国的红火。pc发展了20多年,主流内存不过6-8g,手机短短几年就已飙升到了6g甚至更高,甚至步步高双兄弟虽常被人们冠以低配高价之名,但也仅仅是相对的,其配置还是可以的(这里不论价格)。

      以上的这些都说明了配置的重要性,厂商之间无穷无尽的发布会,其中必不考少的的一项就是说明自身配置,今天要讨论的负载问题正是跟这个配置相关。如果你的手机反应很慢,可能大家首先会做的就是去清一清内存,在Linux系统中,我们一般使用uptime命令查看(w命令和top命令也行)。

我当前电脑的负载: 14:53:06 up 19 days,  1:19, 10 users,  load average: 4.68, 4.50, 4.45

"load average",里面有三个数字,可以从中判断系统负荷是大还是小。它们的意思分别是1分钟、5分钟、15分钟内系统的平均负荷。
当CPU完全空闲的时候,平均负荷为0;当CPU工作量饱和的时候,平均负荷为1。所以可以看到我的系统负载还是可以的,虽然被我压榨的要罢工了。

下面开始介绍利用命令获取系统负载:

1 linux系统自带命令获取系统负载

Linux自身提供了丰富的命令,可以获取运行系统中进程的信息。

(1) linux命令获取系统或进程信息

获取系统内存使用情况

adb shell cat /proc/meminfo     

1)adb shell dumpsys meminfo (查看系统总的内存使用情况):

命令会列出系统总内存(Total RAM),空闲的内存(Free RAM),已被使用的内存(Used RAM).

还包括android系统中所有进程的内存占用情况(自动排序)。

2)adb shell dumpsys meminfo com.android.launcher(查询单个进程的内存你使用情况)

结果无法获取进程中函数的内存消耗,只能获取堆,栈等内存信息。

命令结果可以显示,总的cpu消耗(包括用户态和内核态,DS-5中出现的kernel应该也是内核态cpu消耗的意思),系统中各个进程的cpu消耗率(例如:开启的应用进程,surfaceFlinger进程,systemui进程等)。注意:此命令显示的cpu消耗是占总的cpu消耗(如果设备具有八个核心,cpu使用率=各个核的cpu使用率之和/8)。

获取系统cpu使用情况

获取cpu的最大工作频率(多个核心修改cpu0cpu1进行查询):

adb shell cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq

 

获取cpu的工作频率

adb shell cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq

 

获取cpu使用率情况

 cat    /proc/stat   

结果包括总的cpu使用率和每个核的cpu使用率,但结果无法直接得到cpu每个核心的使用率,需要通过公式进行计算,查看非常不方便。

 还可以设置cpu的工作模式,一般包括interactive conservative ondemand userspace powersave performance 这几种工作模式,


cpu是相当重要的系统负载的标志,当我们查看系统的cpu使用率时,还要查看cpu的频率,否则只查看cpu的使用率将毫无意思。

使用命令:

adb shell cat /proc/stat  //cpu的使用率,也可以利用top命令,但无法查看单个核的使用率

cpu无论4核,8核,还是10核同时工作的一般只有4个核心。

adb shell dumpsys cpuinfo //cpu系统架构,核心数等

adb shell cat /sys/devices/system/cpu/cpu0(0,1,2,3)/cpufreq/scaling_cur_freq  每个核的频率

adb shell cat /sys/devices/system/cpu/cpu(0,1,2,3)/cpufreq/scaling_max_freq 每个核最大的频率


获取系统GPU使用情况

gpu使用率

adb shell cat /sys/class/kgsl/kgsl-3d0/gpubusy

结果包含两列数字,已用第一列和第二列做除法可以得到gpu的使用率

 

现在更多的程序利用opengles,vulkan等gpu接口绘制,他们直接申请gpu存储,节省了cpu消耗,使绘制更快。

命令:

adb shell cat /sys/class/kgsl/kgsl-3d0/gpubusy

利用下面的脚本可以方便的查看gpu使用率:

  1. // gpu_busy.pl
  2. #!/usr/bin/perl -w
  3. while(1)
  4. {
  5. &busy;
  6. # print "\n";
  7. sleep 1 ;
  8. }
  9. sub busy
  10. {
  11. $gpu3d = `adb shell cat /sys/class/kgsl/kgsl-3d0/gpubusy`;
  12. $pct = 0.0;
  13. if( $gpu3d =~ m/\s*(\d+)\s+(\d+)/)
  14. {
  15. if( $1 > 0 && $2 > 0 )
  16. {
  17. $pct = $1 / $2 * 100;
  18. }
  19. printf("3D GPU Busy: %5.2f\n", $pct);
  20. }
  21. }

 

top命令:

top命令在linux系统中,可以查看多核系统中,每个核的cpu使用率,top命令之后按数字1就可以看到每个核的cpu使用率,还可以查看进程中线程的占用cpu率,但在android系统中这些功能都被裁剪掉了,top显示的结果cpu占用率有时会超出100%,这是因为top统计的是cpu的总的使用率,已一个核为100%进行结果的显示,如果有四个核,每个核使用率30%,则显示的结果为12%的使用率。


2dumpsys命令 

adb shell                         //进入手机shell

dumpsys | grep "DUMP OF SERVICE"  //列举当前手机所有支持的dumpsys命令

常用dumpsys指令:

dumpsys package  <package_name>   //查看指定包名的信息

dumpsys activity <package_name>  //查看指定包名的activity信息

 dumpsys alarm      //查看Alarm信息

 dumpsys audio      //查看声音信息

 dumpsys battery    //查看电池信息

 dumpsys cpuinfo //查看CPU信息

 dumpsys meminfo  <package_name>//查看指定包名的内存信息

 dumpsys netstats//查看网络统计信息

 dumpsys diskstats   //查看空间free状态

 dumpsys jobscheduler   //查看任务计划

 dumpsys power//查看功耗信息

 dumpsys wifi//查看wifi信息

 

实例:

1、内存(memory)

命令:adb shell dumpsys meminfo

<span style="font-size:14px;">user@thundersoft:~/桌面$ adb shell dumpsys meminfo
Applications Memory Usage (kB):
Uptime: 283179 Realtime: 283179
各个进程的消耗
Total PSS by process:
   117001 kB: com.thundersoft.tsvr.launcher (pid 1736 / activities)
    71890 kB: system (pid 1226)
    71651 kB: com.android.systemui (pid 1465)
    34942 kB: com.android.launcher (pid 1539 / activities)
    27984 kB: surfaceflinger (pid 511)
    19530 kB: com.qiyi.video.pad (pid 1750)
    18706 kB: zygote (pid 931)
    17580 kB: mm-qcamera-daemon (pid 952)
    16123 kB: zygote64 (pid 930)
    15786 kB: android.process.media (pid 1481)
    12568 kB: com.qiyi.video.pad:downloader (pid 1926)
    11927 kB: com.android.inputmethod.latin (pid 1853)
    10962 kB: mediaserver (pid 914)
    10703 kB: com.qiyi.video.pad:bdservice_v1 (pid 1825)
    10367 kB: com.gale.sanguokill.hd:pushservice (pid 2038)
    10228 kB: com.gale.sanguokill.hd (pid 1954)
    10018 kB: .iqiyipushserviceGlobal (pid 1941)
     7882 kB: com.taobao.apad:notify (pid 1913)
     6864 kB: com.quicinc.cne.CNEService (pid 1512)
     6363 kB: cnd (pid 922)
     6273 kB: com.thunderst.vts (pid 1563)
     5292 kB: mm-pp-dpps (pid 525)
     5126 kB: com.qti.diagservices (pid 1791)
     5114 kB: com.qualcomm.display (pid 1839)
     4992 kB: com.qualcomm.qti.seemp.service:seemp_service (pid 1809)
     4951 kB: com.android.externalstorage (pid 1499)
     4947 kB: com.thundersoft.service (pid 1525)
     4872 kB: qvop-daemon (pid 954)
     4871 kB: qseeproxydaemon (pid 951)
     4857 kB: .iqiyipushserviceGlobal (pid 1982)
     4805 kB: com.qualcomm.qti.biometrics.voiceprint.service (pid 1871)
     2726 kB: sensors.qcom (pid 554)
     2499 kB: logd (pid 417)
     2329 kB: thermal-engine (pid 926)
     2249 kB: audiod (pid 957)
     2117 kB: wpa_supplicant (pid 1724)
     1775 kB: vold (pid 423)
     1573 kB: qvrservice (pid 955)
     1481 kB: sdcard (pid 1478)
     1407 kB: netd (pid 510)
     1319 kB: /init (pid 1)
     1234 kB: cnss_diag (pid 924)
     1189 kB: iop (pid 1675)
     1107 kB: keystore (pid 918)
     1099 kB: qcom-system-daemon (pid 919)
      963 kB: pm-service (pid 520)
      957 kB: mdtpd (pid 960)
      920 kB: tssensorservice (pid 512)
      895 kB: gatekeeperd (pid 932)
      870 kB: ueventd (pid 400)
      853 kB: time_daemon (pid 956)
      844 kB: fingerprintd (pid 953)
      820 kB: perfd (pid 1686)
      808 kB: tloc_daemon (pid 959)
      801 kB: sh (pid 958)
      790 kB: qseecomd (pid 574)
      784 kB: cnss-daemon (pid 947)
      765 kB: adsprpcd (pid 927)
      691 kB: tftp_server (pid 923)
      651 kB: servicemanager (pid 509)
      640 kB: pm-proxy (pid 527)
      628 kB: installd (pid 915)
      604 kB: dumpsys (pid 3427)
      603 kB: rmt_storage (pid 515)
      599 kB: perfprofd (pid 946)
      592 kB: healthd (pid 507)
      583 kB: debuggerd (pid 912)
      571 kB: debuggerd64 (pid 913)
      570 kB: qseecomd (pid 522)
      569 kB: hvdcp_opti (pid 929)
      556 kB: adbd (pid 528)
      368 kB: lmkd (pid 508)
本地服务的消耗
Total PSS by OOM adjustment:
   161009 kB: Native
               27984 kB: surfaceflinger (pid 511)
               18706 kB: zygote (pid 931)
               17580 kB: mm-qcamera-daemon (pid 952)
               16123 kB: zygote64 (pid 930)
               10962 kB: mediaserver (pid 914)
                6363 kB: cnd (pid 922)
                5292 kB: mm-pp-dpps (pid 525)
                4872 kB: qvop-daemon (pid 954)
                4871 kB: qseeproxydaemon (pid 951)
                4857 kB: .iqiyipushserviceGlobal (pid 1982)
                2726 kB: sensors.qcom (pid 554)
                2499 kB: logd (pid 417)
                2329 kB: thermal-engine (pid 926)
                2249 kB: audiod (pid 957)
                2117 kB: wpa_supplicant (pid 1724)
                1775 kB: vold (pid 423)
                1573 kB: qvrservice (pid 955)
                1481 kB: sdcard (pid 1478)
                1407 kB: netd (pid 510)
                1319 kB: /init (pid 1)
                1234 kB: cnss_diag (pid 924)
                1189 kB: iop (pid 1675)
                1107 kB: keystore (pid 918)
                1099 kB: qcom-system-daemon (pid 919)
                 963 kB: pm-service (pid 520)
                 957 kB: mdtpd (pid 960)
                 920 kB: tssensorservice (pid 512)
                 895 kB: gatekeeperd (pid 932)
                 870 kB: ueventd (pid 400)
                 853 kB: time_daemon (pid 956)
                 844 kB: fingerprintd (pid 953)
                 820 kB: perfd (pid 1686)
                 808 kB: tloc_daemon (pid 959)
                 801 kB: sh (pid 958)
                 790 kB: qseecomd (pid 574)
                 784 kB: cnss-daemon (pid 947)
                 765 kB: adsprpcd (pid 927)
                 691 kB: tftp_server (pid 923)
                 651 kB: servicemanager (pid 509)
                 640 kB: pm-proxy (pid 527)
                 628 kB: installd (pid 915)
                 604 kB: dumpsys (pid 3427)
                 603 kB: rmt_storage (pid 515)
                 599 kB: perfprofd (pid 946)
                 592 kB: healthd (pid 507)
                 583 kB: debuggerd (pid 912)
                 571 kB: debuggerd64 (pid 913)
                 570 kB: qseecomd (pid 522)
                 569 kB: hvdcp_opti (pid 929)
                 556 kB: adbd (pid 528)
                 368 kB: lmkd (pid 508)
    71890 kB: System
               71890 kB: system (pid 1226)
    83462 kB: Persistent
               71651 kB: com.android.systemui (pid 1465)
                6864 kB: com.quicinc.cne.CNEService (pid 1512)
                4947 kB: com.thundersoft.service (pid 1525)
   117001 kB: Foreground
              117001 kB: com.thundersoft.tsvr.launcher (pid 1736 / activities)
    11927 kB: Perceptible
               11927 kB: com.android.inputmethod.latin (pid 1853)
    36507 kB: A Services
               15786 kB: android.process.media (pid 1481)
               10703 kB: com.qiyi.video.pad:bdservice_v1 (pid 1825)
               10018 kB: .iqiyipushserviceGlobal (pid 1941)
    34942 kB: Home
               34942 kB: com.android.launcher (pid 1539 / activities)
    47591 kB: B Services
               19530 kB: com.qiyi.video.pad (pid 1750)
               12568 kB: com.qiyi.video.pad:downloader (pid 1926)
               10367 kB: com.gale.sanguokill.hd:pushservice (pid 2038)
                5126 kB: com.qti.diagservices (pid 1791)
    44245 kB: Cached
               10228 kB: com.gale.sanguokill.hd (pid 1954)
                7882 kB: com.taobao.apad:notify (pid 1913)
                6273 kB: com.thunderst.vts (pid 1563)
                5114 kB: com.qualcomm.display (pid 1839)
                4992 kB: com.qualcomm.qti.seemp.service:seemp_service (pid 1809)
                4951 kB: com.android.externalstorage (pid 1499)
                4805 kB: com.qualcomm.qti.biometrics.voiceprint.service (pid 1871)

Total PSS by category:
   161373 kB: Native
   126915 kB: .so mmap
   115960 kB: Dalvik
    46441 kB: .oat mmap
    40004 kB: .dex mmap
    36714 kB: Gfx dev
    34016 kB: .art mmap
    15459 kB: Unknown
     9173 kB: Dalvik Other
     8682 kB: Stack
     7661 kB: Other mmap
     4862 kB: .apk mmap
      803 kB: .ttf mmap
      316 kB: Cursor
      167 kB: Other dev
       28 kB: Ashmem
        0 kB: .jar mmap
        0 kB: EGL mtrack
        0 kB: GL mtrack
        0 kB: Other mtrack

Total RAM: 3870732 kB (status moderate)
 Free RAM: 2819921 kB (44245 cached pss + 839204 cached kernel + 1936472 free)
 Used RAM: 745817 kB (564329 used pss + 181488 kernel)
 Lost RAM: 304994 kB
     ZRAM: 4 kB physical used for 0 kB in swap (524284 kB total swap)
   Tuning: 256 (large 512), oom 322560 kB, restore limit 107520 kB (high-end-gfx)
</span>

可以看到系统对于内存的消耗,包括各个native服务,各个进程,系统总的RAM。
当然, adb shell cat /proc/meminfo 命令也可以:
MemTotal:        3870732 kB
MemFree:         1935452 kB
MemAvailable:    2877440 kB
Buffers:           12300 kB
Cached:          1030760 kB
SwapCached:            0 kB
Active:           434892 kB
Inactive:         989588 kB
Active(anon):     382960 kB
Inactive(anon):     2880 kB
Active(file):      51932 kB
Inactive(file):   986708 kB
Unevictable:           0 kB
Mlocked:               0 kB
SwapTotal:        524284 kB
SwapFree:         524284 kB
Dirty:                 0 kB
Writeback:             0 kB
AnonPages:        381396 kB
Mapped:           203896 kB
Shmem:              4444 kB
Slab:             110932 kB
SReclaimable:      38036 kB
SUnreclaim:        72896 kB
KernelStack:       18688 kB
PageTables:        16604 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:     2459648 kB
Committed_AS:   32314312 kB
VmallocTotal:   258998208 kB
VmallocUsed:      162212 kB
VmallocChunk:   258822852 kB



Nexus 6P测试参数:

手机cpu参数

Processor : AArch64 Processor rev 2 (aarch64)

processor : 0

processor : 1

processor : 2

processor : 3

processor : 4

processor : 5

processor : 6

processor : 7

Features : fp asimd evtstrm aes pmull sha1 sha2 crc32 

CPU implementer : 0x41

CPU architecture: 8

CPU variant : 0x0

CPU part : 0xd03

CPU revision : 2

Hardware : Qualcomm Technologies, Inc MSM8994

cpu使用率

Linux系统上cpu的使用率可以通过top查看,top命令之后按下1,可以看到每个核使用率。

top - 15:10:03 up 19 days,  1:36, 10 users,  load average: 4.75, 4.55, 4.43
Tasks: 241 total,   4 running, 235 sleeping,   0 stopped,   2 zombie
%Cpu0  : 24.4 us, 60.7 sy,  0.0 ni, 14.9 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu1  : 50.3 us, 26.9 sy,  0.0 ni, 22.7 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu2  : 85.3 us,  6.8 sy,  0.0 ni,  7.9 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu3  : 32.4 us, 34.2 sy,  0.0 ni, 33.5 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem:   8093860 total,  7077324 used,  1016536 free,   292856 buffers
KiB Swap:  9999356 total,   579860 used,  9419496 free.  2443896 cached Mem

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND                                                 
16555 user      -4   0   34712   8272    716 S 100.0  0.1  16274:37 wineserver                                              
10964 user      20   0 4475436  18964  11120 S  99.5  0.2 334:26.57 java                                                    
 1339 root      20   0  730884 196176 104692 R  38.9  2.4   2045:56 Xorg                                                    
16726 user      20   0 2660508    184    168 S  35.0  0.0   5445:19 winedbg                                                 
16592 user      20   0 2667944    540    204 S  32.0  0.0   5532:23 winedbg                                                 
 2076 user      20   0 1758216 204064  15956 S  11.3  2.5 945:33.00 compiz                                                  
17863 user      20   0 2968144 439944  47372 S   3.7  5.4 560:03.04 wps                                                     
11667 user      20   0 3017320 577328 100784 S   2.0  7.1  10:59.63 firefox                                                 
 2526 user      20   0  854392  42496   9600 S   1.7  0.5  10:45.71 gnome-terminal                                          
 2386 user      20   0 1249112 190724  30016 S   1.0  2.4 204:12.20 thunderbird                                             
12698 user      20   0   26864   1740   1164 R   0.3  0.0   0:00.01 top                                                     
    1 root      20   0   33996   2424    928 S   0.0  0.0   0:05.49 init              

android 虽然是基于linux内核的,但其shell命令跟linux还是有差别的,我试过之后发现top不存在1,无法查看单个核的使用率

但可以利用adb shell cat /proc/stat  命令通过数据计算cpu的使用率

得到数据如下:


cpu  69042 3505 77872 250084 519 6167 1572 0 0 0     此行数据代表cpu总的使用率

cpu0 13151 233 19113 64289 129 4209 489 0 0 0         此行数据代表了cpu0的使用率

cpu1 13223 220 19671 67386 108 684 370 0 0 0

cpu2 21340 1635 19788 59106 126 653 369 0 0 0

cpu3 21328 1417 19300 59303 156 621 344 0 0 0


cpu使用率计算:

我们发现每行数据有十列数据,后三项可以忽略,前七项数据分别代表的含义如下:

参数

解析(单位:jiffies)

user (69042)

从系统启动开始累计到当前时刻,用户态的CPU时间,不包含 nice值为负进程。

nice (3505)

从系统启动开始累计到当前时刻,nice值为负的进程所占用的CPU时间

system (77872)

从系统启动开始累计到当前时刻,核心时间

idle (250084)

从系统启动开始累计到当前时刻,除IO等待时间以外其它等待时间

iowait (519)

从系统启动开始累计到当前时刻,IO等待时间

irq (6167)

从系统启动开始累计到当前时刻,硬中断时间

softirq (1572)

从系统启动开始累计到当前时刻,软中断时间

 

因为/proc/stat中的数值都是从系统启动开始累计到当前时刻的积累值,所以需要在不同时间点t1和t2取值进行比较运算,当两个时间点的间隔较短时,就可以把这个计算结果看作是CPU的即时利用率。

 

CPU的即时利用率的计算公式:

CPU在t1到t2时间段总的使用时间

totaltime= ( user2+ nice2+ system2+ idle2+ iowait2+ irq2+ softirq2) - ( user1+ nice1+ system1+ idle1+ iowait1+ irq1+ softirq1)

CPU在t1到t2时间段空闲使用时间 idel= (idle2 - idle1)

CPU在t1到t2时间段即时利用率 useper=  totaltim-idle/ totaltime

下表是计算的结果,最后一行对应使用率,灰色的一行是cpu总的使用率,然后依次是cpu0,1,2,3:

890247264177245817827522097429160529.77%
21409611295181807482796463154518234.95%
21199519827743410447513158106026.53%
23427911234481825101165427155428826.32%
2298771905295159433507661107530.93%
890314264204845817828222098429199829.52%
21411711295851807482836463154528537.37%
21200919834943410448513258115830.61%
23429611235181825101175427155438321.65%
2298921905965159434507661117228.28%

绘制的cpu使用率图。




我在公司查看的系统的cpu 频率:(四个核,最大值为3301000)

绘制的工作时四个核的频率,一遍CPU2,cpu3频率高于0,1.



简单了介绍了负载的入门工具,其实还有很多更加专业的工具可以使用:

高通开发者 点击此链接很多可以免费使用的高通工具。

Qualcomm Snapdragon Profiler的界面如下:


1、高通Trepn Profile

Trepn Profile工具是个apk应用,可以安装到设备中,可以查看cpu总的或其中四个核心的使用率;GPU的频率和使用率,并以图形的形式展示给用户。

但在VR设备上无法运行。

2、高通Snapdragon Profiler

官方说明:Snapdragon Profiler旨在帮助开发人员优化Snapdragon处理器驱动设备中的应用程序。通过三种数据捕获模式显示应用程序的CPUGPUDSP、内存、功率、网络连接和设备运行时的发热数据,从多个不同的角度展现设备性能。还可提供类似Systrace功能。

Snapdragon Profiler此工具功能丰富,可以展示丰富的数据,但只能应用在使用高通Snapdragon芯片的设备上,且主要用于优化应用。

3、高通Adreno GPU 分析器

通过 Adren Profiler 可以分析并且提高应用程序的图形和运算性能。

OpenGL应用无法使用,unity3d应用也无法识别。

 

4、DS-5

ds-5只使用率其streamLine模块,工具可以对各应用进程和系统服务进程中可以是别的so和函数按cpu使用率排序。使用受限,需要购买。

 

5、Systrace & traceview

     Systrace可帮助开发者收集Android关键子系统(如surfaceflinger、WMS等Framework部分关键模块、服务,View系统等)的运行信息(可以使单个应用进程也可以是整个系统),从而帮助开发者更直观的分析系统瓶颈,改进性能。但Systrace只能给出直观的显示,无法精确到so,函数级别。

     Traceview采集运行时间内该应用所有线程(注意,只能是 Java 线程)的函数执行情况,可以识别的android framework层和应用本身java代码,但只能对具体的应用进程进程查看,无法直接检测系统服务进程(即使能识别此工具也无法查看非java代码函数)。

6、 androidstudio DDMS

DDMS工具集成了Systrace traceview,还有内存分析功能,但都只针对应用。


Trepn Profiler 是个简单的apk,但功能强大。

Qualcomm Snapdragon Profiler是更加强大的工具,集成了systarce的功能。

DS-5可以发现耗时最多的函数。

systrace 和traceView也是比较经典的组合等还有好多工具。



声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/773218
推荐阅读
相关标签
  

闽ICP备14008679号