Android 中流量,电量,弱网环境怎么测

Android 中流量,电量,弱网环境怎么测,第1张

用Charles工具做弱网的测试,或者模拟2G、3G的网络情况。

通过抓包是流量测试直接的方法。在App运行器件,把手机收发的所有报文抓取下来,在计算收发报文总大小,即app消耗的流量。如果我们需要测试某个app消耗 的流量需要禁用其他app的连网权限。

1)限制其他app的连网权限,因为有些app的进程是常驻后台的,即使不运行,也会有网络报文。可以借助一些手机管家软件禁用网络。

2)手机上抓包,下载tcpdump,手机链接电脑,获得root权限

3)将tcpdump(forAndroid)上传至android手机上,在命令提示符窗口中输入命令:adbpush <LocalPath of tcpdump> /data/local/tcpdump

4)给tcpdump增加可执行权限

adb shell

su

chmod 6755 /data/local/tcpdump

5)启动抓包,使用命令/data/local/tcpdump-v -i any -s 0 -w /sdcard/zhangyupcap

Got后面的数字表示当前抓到的包的数量。如果有变化,表示有网络流量

6)导出抓包结果adb pull /sdcard/zhangyupcap <LocalPathof PcapFile >

7)用Wireshark打开刚才的抓包结果,点击StatisticsàSummary,流量的数值为Bytes一行的Displayed一栏。

可以使用腾讯手机管家的电池管家维护管理电池功能

腾讯电池管家会智能降低CPU频率,保持最低的电量消耗;

平常使用时,腾讯电池管家会保持稳定的CPU频率,

在不影响体验前提下保持最佳的省电状态;当在玩游戏时,

电池管家会发挥CPU的强劲性能,提高玩游戏的乐趣。

系统电量变化,最终调用如下函数:

sendIntentLocked

电池电量参数

android 电池(一):锂电池基本原理篇

android低电量处理流程

android 44 电池电量显示分析(低电量提醒与电池图标)Java 层

运用这些ADB命令可以很直观的查看到你手机上的硬件与软件方面的详细信息。可查看手机系统的具体命令如下:getprop 查看机器的全部信息参数

getprop roserialno 查看机器的SN号

getprop rocarrier 查看机器的CID号

getprop rohardware 查看机器板子代号

首先在你的电脑键盘上同时按下 WIN+R ,这时候会d出一个 运行 窗口。

接着在框中输入 CMD ,并按下 确定 。这时候就会d出一个命令窗了!

上面所提供的ADB命令也就是在这个窗口下所运行的!先输入 adb shell ,按下回车。然后就可以开始输入上面所提供的命令了!getprop roserialno:查看机器的SN号getprop rocarrier:查看机器的CID号android女用的是传说中三星的M100S,而这里作为示例的是T-Mobile版的G1,所以在这显示的是TMUS。getprop rohardware:查看机器板子代号可以看到G1的开发代号叫作trout!getprop robootloader:查看SPL(Hboot)版本号getprop:查看机器的全部信息参数在这能看到你机器的全部的信息参数,从你的硬件信息到所刷的ROM版本信息。

1 打开终端,进入上述目录,如下图所示:

2 输入adb shell,打开adb命令行,如下图所示:

3 查看cpu使用情况:

输入命令:top -m 10 -s cpu(-m显示最大数量,-s 按指定行排序),如下图所示:

参数含义:

PID : progress identification,应用程序ID

S : 进程的状态,其中S表示休眠,R表示正在运行,Z表示僵死状态,N表示该进程优先值是负数

#THR : 程序当前所用的线程数

VSS : Virtual Set Size虚拟耗用内存(包含共享库占用的内存)

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

PCY : 前台(fg)和后台(bg)进程

UID : User Identification,用户身份ID

Name : 应用程序名称

注意第一列的pid,使用pid值可以查看当前程序的内存使用情况。

4 查看指定程序内存使用情况:

输入命令: dumpsys meminfo 3253,如下图所示:

参数含义:

dalvik : dalvik使用的内存

native : native堆上的内存,指C\C++堆的内存(android 30以后bitmap就是放在这儿)

other : 除了dalvik和native的内存,包含C\C++非堆内存······

Pss : 该内存指将共享内存按比例分配到使用了共享内存的进程

allocated : 已使用的内存

free : 空闲的内存

private dirty : 非共享,又不能被换页出去的内存(比如linux系统中为了提高分配内存速度而缓冲的小对象,即使你的进程已经退出,该内存也不会被释放)

share dirty : 共享,但有不能被换页出去的内存

5 使用ctrl + c,退出adb命令行。

我的Android版本是51。

我是这样去实现的:

首先-----》我在priv-app/Settings里面的battery里面加一条SwitchPreference,这个是是否显示的开关。

通过这个开关将值写入数据库中。然后SystemUI就可以取到这个值控制是否显示

这个battery控制界面是PowerUsageSummary,它是一个PreferenceFragment。

它的界面的绘制是通过好几种途径,最后都通过addPreference加到一个PreferenceGroup里面了。

然后-----》我需要改frameworks层的东西,

1>在androidproviderSettings类的System下面加一个String类型的名字,

System对应的是数据库的名字

例如BATTERY_POWER_PERCENTAGE

2>要修改SettingsProvider这个应用,它是Settings的数据库管理应用,

主要提供了一系列 *** 作数据库的方法,先在defaultsxml里面添加一个integer变量,

给他一个初始值0,0对应不显示,1对应显示。然后找打DatabaseHelper这个类,

它是一个SQLiteOpenHelper,它封装了一系列 *** 作sqlite数据库的方法,

我们在loadSystemSettings方法里面可以将直接在defaultsxml定义的值写入数据库。

3>我们要修改SystemUI这个应用,看过源码才知道,其实状态栏是分3个显示的,

锁屏的时候是一个,对应的类是KeyguardStatusBarView,它是一个RelativeLayout,

对应的布局是Keyguard_status_barxml

进入后是一个,对应的类是PhoneStatusBar,它是BaseStatusBar的子类

对应的布局是status_barxmlxml

下拉通知菜单的时候又是一个,对应的类是StatusBarHeaderView,它是一个RelativeLayout

它对应的布局是Status_bar_expanded_headerxml

要想监听到电量的变化,必须实现BatteryControllerBatteryStateChangeCallback这个接口,

它有两个方法,其中onBatteryLevelChanged方法就是监听电量变化的

BatteryController是一个BroadcastReceiver,当电量变化时可以收到

PowerManagerACTION_POWER_SAVE_MODE_CHANGED这个action,

这时就会走onBatteryLevelChanged方法,所有我们只要实现这个接口就可以监听到。

KeyguardStatusBarView和StatusBarHeaderView是有实现的,所以在这里我将

PhoneStatusBar也实现了这个接口。当然这不是控制电量百分比是否显示,

在设置里面我们已经加了一个控制开关,它会将值写入数据库,我们在PhoneStatusBar

类中只需要写一个ContentObserver来监听改变来控制,其实这个百分比是一个textview,

PhoneStatusBar对应的布局是status_barxml,在里面加一个textview在自定义电池图标的下面,

在代码中只需要用setVisibility方法就可以控制。

KeyguardStatusBarView也是一样这样实现。

好了说了这么多,其实要编译和push的有4个东西,frameworksjar Settingapk

SettingsProviderapk SystemUIapk

以上就是关于Android 中流量,电量,弱网环境怎么测全部的内容,包括:Android 中流量,电量,弱网环境怎么测、Android 如何获取所有应用的耗电量排行、Android电量计重要的类及函数介绍等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9700067.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存