android dhcpcd分析,Android性能专项

66b52468c121889b900d4956032f1009.png

8种机械键盘轴体对比

本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选?

内存测试方法

目前存在的android的内存测试方法可以分为以下几类:使用Android自身提供的 ActivityManager.MemoryInfo() 方法获得

使用android提供adb指令集获取内存信息即adb shell dumpsys meminfo | grep packagename or pid 来获取

使用android 提供的procrank获取

通过ADT插件DDMS查看用内存MAT进行分析

dumpsys之meminfo

dumpsys获取内存信息:

C:UsersAdministrator>adb shell dumpsys meminfo com.wuba.huoyun

Applications Memory Usage (kB):

Uptime: 33840913 Realtime: 103845085

** MEMINFO in pid 14688 [com.wuba.huoyun] **

Pss Private Private Swapped Heap Heap Heap

Total Dirty Clean Dirty Size Alloc Free

------ ------ ------ ------ ------ ------ ------

Native Heap 0 0 0 0 13748 11720 1903

Dalvik Heap 19665 19576 0 5508 34244 20380 13864

Dalvik Other 4178 4088 0 1180

Stack 360 360 0 12

Other dev 4 0 4 0

.so mmap 1484 796 24 2212

.apk mmap 477 0 108 0

.dex mmap 2095 24 988 88

Other mmap 31 4 0 0

Unknown 9966 9948 0 852

TOTAL 38260 34796 1124 9852 47992 32100 15767

Objects

Views: 313 ViewRootImpl: 3

AppContexts: 4 Activities: 2

Assets: 5 AssetManagers: 5

Local Binders: 17 Proxy Binders: 26

Death Recipients: 2

OpenSSL Sockets: 0

SQL

MEMORY_USED: 328

PAGECACHE_OVERFLOW: 82 MALLOC_SIZE: 62

DATABASES

pgsz dbsz Lookaside(b) cache Dbname

4 28 40 87/31/4 /data/data/com.wuba.huoyun/da

tabases/user-db

4 24 80 13/37/10 /data/data/com.wuba.huoyun/da

tabases/bugly_db

4 28 64 28/37/8 /data/data/com.wuba.huoyun/da

tabases/cars-db

Asset Allocations

zip:/system/framework/framework-res.apk:/resources.arsc: 1096K

zip:/data/app/com.wuba.huoyun-1.apk:/assets/fonts/HYQiH2312F45.ttf: 1525K

查看单个应用程序最大内存限制的指令

C:UsersAdministrator>adb shell getprop | findstr heapgrowthlimit

[dalvik.vm.heapgrowthlimit]: [256m]

可以看到单个应用的最大内存限制为256M, 而meminfo里面dalvik heap size的最大值如果超过了256M就可能出现OOM。dalvik.vm.heapgrowthlimit和dalvik.vm.heapsize都是java虚拟机的最大内存限制,应用如果不想在dalvik heap达到heapgrowthlimit限制的时候出现OOM,需要在Manifest中的application标签中声明android:largeHeap=“true”,声明后,如果应用的dalvik heap 达到heapsize的时候才会出现OOM!

另:设备不一样,最大内存的限制也可能不一样.

C/C++申请的内存空间在native heap中,而java申请的内存空间则在dalvik heap中。这是因为Android系统对dalvik的vm heapsize作了硬性限制,当java进程申请的java空间超过阈值时,就会抛出OOM异常(这个阈值可以是48M、24M、16M等,视机型而定),可以通过adb shell getprop | grep dalvik.vm.heapgrowthlimit查看此值。

也就是说,程序发生OMM并不表示RAM不足,而是因为程序申请的java heap对象超过了dalvik vm heapgrowthlimit。也就是说,在RAM充足的情况下,也可能发生OOM.

查看单个应用的内存占有量的情况

查看单个应用程序最大内存限制:adb shell getprop|grep heapgrowthlimit

C:UsersAdministrator>adb shell getprop| findstr heapgrowthlimit

[dalvik.vm.heapgrowthlimit]: [256m]

应用启动后分配的初始内存: adb shell getprop|grep dalvik.vm.heapstartsize

C:UsersAdministrator>adb shell getprop | findstr dalvik.vm.heapstartsize

[dalvik.vm.heapstartsize]: [8m]

单个java虚拟机最大的内存限制:adb shell getprop|grep dalvik.vm.heapsize

C:UsersAdministrator>adb shell getprop | findstr dalvik.vm.heapsize

[dalvik.vm.heapsize]: [512m]

使用android 提供的procrank获取

通过指令:adb shell procrank | grep packagename

C:UsersAdministrator>adb shell procrank

PID Vss Rss Pss Uss cmdline

518 632108K 55712K 19193K 15340K system_server

154 74640K 23352K 16888K 13844K /system/bin/mediaserver

575 586896K 50352K 15898K 12804K com.android.systemui

152 552684K 56896K 15135K 7968K zygote

697 595208K 46336K 10955K 7276K com.android.launcher

680 584928K 41292K 8632K 6552K com.android.phone

752 583660K 42112K 7926K 4372K com.hqgm.maoyt

828 583712K 42160K 7904K 4356K com.hqgm.maoyt:push

664 570720K 39788K 7174K 5348K com.android.inputmethod.latin

1237 572636K 38128K 6684K 5112K com.android.email

997 564396K 38544K 6237K 4448K android.process.media

729 565556K 37484K 6013K 4384K android.process.acore

1132 572128K 35632K 5071K 3460K com.android.mms

1187 568936K 35124K 4793K 3336K com.android.calendar

1083 562580K 35476K 4396K 2912K com.android.providers.calendar

1220 564680K 35544K 4184K 2416K com.android.deskclock

651 572188K 33648K 4025K 2180K com.android.settings

1030 565016K 32824K 3720K 2352K com.android.dialer

1271 564396K 32696K 3689K 2348K com.android.exchange

973 562256K 32912K 3418K 2032K com.android.music

1258 562132K 33660K 3380K 1912K com.genymotion.superuser

144 32156K 3580K 3241K 3232K /system/bin/local_opengl

710 561884K 31704K 2862K 1536K com.android.printspooler

1337 560680K 30640K 2529K 1216K com.android.musicfx

1158 560552K 31044K 2526K 1260K com.android.onetimeinitializer

1173 560692K 30712K 2455K 1196K com.android.voicedialer

782 560548K 30744K 2436K 1152K com.android.smspush

153 15148K 3928K 1462K 860K /system/bin/drmserver

1369 2640K 1768K 1444K 1436K procrank

151 54800K 3084K 1352K 1024K /system/bin/surfaceflinger

641 5420K 2184K 1057K 888K /system/bin/wpa_supplicant

78 9492K 2068K 1021K 836K /system/bin/genyd

148 11340K 1700K 849K 748K /system/bin/netd

156 4716K 1436K 481K 372K /system/bin/keystore

140 6236K 1280K 479K 392K /system/bin/vold

498 1680K 816K 468K 452K logcat

150 6392K 1076K 416K 376K /system/bin/rild

1 716K 440K 325K 240K /init

824 1616K 744K 317K 292K /system/bin/dhcpcd

82 6820K 312K 296K 296K /sbin/adbd

84 3624K 648K 283K 272K /system/bin/genybaseband

81 1548K 680K 263K 116K /system/bin/sh

138 1600K 280K 260K 260K /sbin/healthd

491 1548K 680K 259K 112K /system/bin/sh

80 4036K 584K 225K 216K /system/bin/sdcard

122 2760K 212K 212K 212K /sbin/v86d

65 708K 268K 182K 100K /sbin/ueventd

155 1544K 556K 172K 160K /system/bin/installd

149 1648K 540K 165K 152K /system/bin/debuggerd

157 1196K 152K 148K 148K /system/xbin/su

142 1420K 484K 129K 120K /system/bin/vinput

79 1308K 432K 120K 112K /system/bin/logwrapper

139 1464K 432K 120K 112K /system/bin/servicemanager

143 1404K 408K 112K 104K /system/bin/vinput_seamless

145 1404K 380K 111K 104K /system/bin/local_gps

147 4880K 384K 109K 100K /system/bin/local_camera

146 4876K 384K 109K 100K /system/bin/local_camera

------ ------ ------

194338K 135056K TOTAL

RAM: 2068996K total, 1713928K free, 12292K buffers, 178908K cached, 4172K shmem,

20824K slab

通过adb shell procrank指令可以获取VSS,RSS,USS,PSSVSS – Virtual Set Size 虚拟耗用内存(包含共享库占用的内存)

RSS – Resident Set Size 实际使用物理内存(包含共享库占用的内存)

PSS – Proportional Set Size 实际使用的物理内存(比例分配共享库占用的内存)

USS – Unique Set Size 进程独自占用的物理内存(不包含共享库占用的内存)

一般来说内存占用大小有如下规律:VSS >= RSS >= PSS >= USS

其中USS只能通过procrank获取,首先网上下载libpagemap.so, procmem, procrank,然后push到android手机中。有的root机自带这几个文件,genymotion机器也自带,不需要额外下载。

通过ADT插件DDMS查看用内存MAT进行分析

利用DDMS的Heap可以很方便的查看app的内存占用情况,在app运行时,打开DDMS选项,在Devices下,可以看到正在运行的App,选择要查看内存的App,点击该条目,并选择Update Heap。

在Heap中,选择Cause GC,可以查看应用的内存占用情况。

参考资料: 百度移动云测试中心公众号

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 可以在系统目录下的/etc目录中找到网络配置文件,其中最常见的是wpa_supplicant.conf文件,它存储了Wi-Fi网络的配置信息。此外,还有dhclient.conf文件和resolv.conf文件等。这些文件的具体路径和内容可能因不同的Android版本和设备而异。 ### 回答2: Android系统的网络配置文件是指用于配置设备上的网络连接信息的文件。它以XML格式保存,并包含了设备的网络连接信息、代理设置、DNS配置等内容,以实现设备与互联网的连接。 Android系统的网络配置文件主要包括以下几个关键元素: 1. SSID和密码:网络配置文件中包含了设备连接Wi-Fi网络所需的SSID和密码信息。这些信息可以让设备自动连接已知的Wi-Fi网络。 2. 代理设置:代理服务器允许设备通过它们来连接互联网。网络配置文件可以配置设备在使用特定网络时使用代理服务器。代理服务器可以为设备提供安全性和访问控制等功能。 3. DNS配置:DNS(Domain Name System)将域名转换为IP地址,使设备能够访问互联网资源。网络配置文件可以配置设备使用特定的DNS服务器。这样可以提高网络解析速度和安全性。 4. IP配置:网络配置文件可以配置设备的IP地址、子网掩码和网关信息。这些配置是设备与本地网络通信所必需的,以及设备与外部网络通信的基础。 通过修改网络配置文件,用户可以自定义设备上的网络连接设置,例如添加新的Wi-Fi网络、配置代理服务器、更改DNS服务器等。这样可以满足用户对特定网络环境的需求,同时也提高了设备与互联网的连接稳定性和安全性。 总之,Android系统的网络配置文件是重要的网络连接设置文件,它能够帮助设备实现与互联网的连接,并提供了灵活的定制选项,以满足用户对网络连接的特定需求。 ### 回答3: Android系统的网络配置文件是指一组存储在设备上的文件,用于配置和管理设备的网络连接。这些文件包含了设备需要连接到网络所需的信息和参数。 首先,Android系统的网络配置文件主要包括"wifi-internal-config.xml"、"wpa_supplicant.conf"、"dhcpcd.conf"等几个关键文件。其中,"wifi-internal-config.xml"是用于配置设备的Wi-Fi网络连接信息的文件。它包含了设备需要连接到的Wi-Fi网络的名称(SSID)、密码(password)、加密方式(encryption)、IP地址等相关设置。 其次,"wpa_supplicant.conf"是一个用于管理设备的Wi-Fi网络连接及身份验证的配置文件。它存储了设备连接的Wi-Fi网络的身份验证所需的信息,包括网络的SSID、密码、安全协议等。 另外,"dhcpcd.conf"是一个用于配置设备通过动态主机配置协议(DHCP)获取IP地址的文件。在该文件中,可以设置设备需要连接的网络接口、IP地址、子网掩码、网关、DNS服务器等相关参数。 通过这些网络配置文件,Android系统可以根据用户的配置信息,自动连接到合适的Wi-Fi网络并获取IP地址。这样,用户就可以方便地访问互联网、发送和接收数据。 总之,Android系统的网络配置文件是非常重要的,它们定义了设备的网络连接设置和身份验证信息,确保设备能够顺利连接到网络并进行数据交换。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值