[Android]安卓在代码中实时获取控件尺寸的几种方法
本篇博客已收录到我的安卓开发小结中——点击安卓开发小结
1、已知控件大小,想知道他在不同设备上的px值。
使用TypedValueapplyDimension方法。
如果这个控件你知道了大小,但不知道在各个设备上的大小,可以使用TypedValueapplyDimension方法来获取实际大小。getResources()getDisplayMetrics()方法Activity类和View中都有提供,因此可以在Activity和自定义View中都可以使用这个方法。
int ballRadius = (int) TypedValueapplyDimension(TypedValueCOMPLEX_UNIT_DIP, BALL_RADIUS, getResources()getDisplayMetrics());
1
2
1
2
applyDimension是androidutilTypedValue类下的一个静态方法,可以看到这个方法的作用就是将value的值换算为dp、sp等对应的px值,因为在实时运行过程中很多方法接受的是px值,而不是xml中的dp值。
public static float applyDimension(int unit, float value,DisplayMetrics metrics)
{
switch (unit) {
case COMPLEX_UNIT_PX://获得value作为px值对应的px值
return value;
case COMPLEX_UNIT_DIP:
return value metricsdensity;//获得value作为dp值对应的px值
case COMPLEX_UNIT_SP:
return value metricsscaledDensity;//获得value作为sp值对应的px值
case COMPLEX_UNIT_PT:
return value metricsxdpi (10f/72);
使用fiddler
关于android 获取请求地址的详细例子请参考android学习手册,android学习手册包含9个章节,108个例子,源码文档随便看,例子都是可交互,可运行, 源码采用android studio目录结构,高亮显示代码,文档都采用文档结构图显示,可以快速定位。360手机助手中下载,图标上有贝壳
Fiddler是类似代理服务器的形式工作,它能够记录所有你的电脑和互联网之间的>
2、方法优劣
[优点]:
1)Fiddler *** 作简单、方便、功能强大
2)能实时抓包,可模拟修改请求
2)只需要手机支持代理即可
3)适用广,安卓、Iphone、Ipad、WinPhone等支持代理手机均适用
[缺点]:
1)电脑需要安装Fiddler
2)测试手机需要支持Wifi
3)测试手机与电脑需要同一网络
4)所测APP需支持代理
3、准备工作
1)检查电脑网络连接
a使用同网络内的另一台电脑)ing本机,检查是否连通正常。
原因:我之前测HTML5项目就发现Fiddler代理抓不到包,手机设置均正确,后发现是网络内找不到本机,本机防火墙设置问题。
另外需要关注是否同一网络,如果手机GPRS等上网,你在局域网内抓包哥觉得你可以改行了
(约定:后文所述Fiddler所在电脑均称为本机)
2)Fiddler安装
a下载地址: >
b安装:省略(下一步下一步即可)
3)Fiddler配置
a允许远程计算机连接Fiddler
菜单:Tools-> Fiddler Options->Connections,勾选"Allow remote computers to connect"
注:8888为默认端口号,可修改,但需注意两点,一是本机空闲端口,二是手机代理设置时端口要一致。
b配置可捕获>
菜单:Tools-> Fiddler Options->Connections,勾选"Capture >
再勾选"Decrypt >
注1:勾选项英文不认识,请Google,不另做解释
4)手机安装>
a首先确定Fiddler所在电脑的IP地址:例:19216888
b打开被测手机浏览器,访问>
注:Iphone、Ipad安装则很简单,点击安装即可。Android安装稍微麻烦点,则需要先设置手机锁屏密码、PIN码,安装证书时会提示,按步骤走即可。
4、实例
ThinkDrive抓包实例
一期测试时,涉汲到APP安全测试,因此需要查看传输数据是否存在明文密码等。
1)开启Fiddler,确定本机IP、Fiddler端口号
本机IP:19216888
Fiddler端口号:8888
2)手机连接本机所在同网络Wifi,设置代理
a代理主机名:Fiddler所在电脑IP
b代理服务器端口: Fiddler使用的端口
3)APP *** 作,生成请求数据
a例:登录
b例:退出登录
4)分析Fiddler抓包数据
a例:登录请求分析
1)双击查看登录请求,选择WebForms或JSON等其他类标签,查看请求参数值,对照接口文档及你想要测试的点分析,请求是否正确,查看返回数据是否正确。
2)同帐号,不同密码;不同帐号,同密码等测试用例,测试多次登录后发现,密码仅为MD5加密,没有对密码进行很好的加密传输
3)分析存在以下问题:
问题1:帐号密码采用>
问题2:密码虽采用MD5加密,但传输未加密,简单密码可以在线解密(图中密码在线解密不到1秒:123qwe);
问题3:密码不解密也一样可以登录,通过A帐号在app登录,再用sniffer得到的B 帐号与密码(MD5值),使用Fiddler修改A帐号的请求完成B帐号在APP登录。
注1:Fiddler功能使用,请Google或百度,此处不详说
注2:以上实例仅为参考,具体测试,以所相关业务及测试目标为导向进行测试分析。
5、其他
本文虽主要对Android手机抓包举例,但其目的是说明,不管是电脑,还是手机,还是其他上网终端,都可以通过代理的方式来抓包(HTTS、>
以上就是关于安卓如何实时获取网页字节数据大小全部的内容,包括:安卓如何实时获取网页字节数据大小、如何抓取Android内嵌网页地址、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)