【Android Advanced Training - 05】传输数据时避免电量的浪费[Lesson 4 - 根据网络类型更改下载模式]

unity安卓联网报错:Cleartext HTTP traffic to xxx not permitted解决方法 阅读详情
 

【Android Advanced Training - 05】传输数据时避免电量的浪费[Lesson 4 - 根据网络类型更改下载模式]

分类: Android   707人阅读  评论(0)  收藏  举报

Modifying your Download Patterns Based on the Connectivity Type

[根据连接的网络类型来更改下载模式]

  • 并不是所有的网络类型(Wi-Fi,3G,2G,etc)对电量的消耗是同等的。不仅仅Wi-Fi电波比无线电波消耗的电量要少很多,而且不同的无线电波(3G,2G,LTE……)也存在使用不同电量的区别。

Use Wi-Fi [使用Wi-Fi]

  • 在大多数情况下,Wi-Fi电波会在使用相对较低的电量的情况下提供一个相对较宽的带宽。因此,我们需要努力争取尽量使用Wi-Fi来传递数据。
  • 我们可以使用Broadcast Receiver来监听当网络连接切换为Wi-Fi,这个时候我们可以进行大量的数据传递操作,例如下载,执行定时的更新操作,甚至是在这个时候加大更新的频率。这些内容都可以在前面的课程中找到。

Use Greater Bandwidth to Download More Data Less Often [使用更大的带宽来下载更多的数据,而不是经常去下载]

  • 当通过无线电进行连接的时候,更高的带宽通常伴随着更多的电量消耗。这意味这LTE(一种4G网络制式)会比3G制式消耗更多,当然比起2G,那就更是如此。
  • 从Lesson 1我们知道了无线电状态机是怎么回事,通常来说相对更宽的带宽网络制式会有更长的状态切换时间(也就是从full power过渡到standby有一段时间的延迟)。
  • 同时,更宽的带宽意味这可以更贪婪的进行prefetch,下载更多的数据。也许这个说法不是很直观,因为过渡时间比较长,而过渡时间的长短我们无法控制,也就是过渡时间的电量消耗差不多是固定了,既然这样,我们在每次传输会话中为了减少更新的频率而把无线电激活的时间拉长,这样显的更有效率。
  • 例如:如果LTE无线电的带宽与电量消耗都是3G无线电的2倍,我们应该在每次会话的时候都下载4倍于3G的数据量,或者是差不多10Mb(前面文章有说明3G一般每次下载2Mb)。当然,下载到这么多数据的时候,我们需要好好考虑prefetch本地存储的效率并且需要经常刷新预取的cache。
  • 我们可以使用connectivity manager来判断当前激活的无线电波,并且根据不同结果来修改prefetch操作。
  1. ConnectivityManager cm =  
  2.  (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);  
  3.   
  4. TelephonyManager tm =  
  5.   (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);  
  6.     
  7. NetworkInfo activeNetwork = cm.getActiveNetworkInfo();  
  8.    
  9. int PrefetchCacheSize = DEFAULT_PREFETCH_CACHE;  
  10.    
  11. switch (activeNetwork.getType()) {  
  12.   case (ConnectivityManager.TYPE_WIFI):   
  13.     PrefetchCacheSize = MAX_PREFETCH_CACHE; break;  
  14.   case (ConnectivityManager.TYPE_MOBILE): {  
  15.     switch (tm.getNetworkType()) {  
  16.       case (TelephonyManager.NETWORK_TYPE_LTE |   
  17.             TelephonyManager.NETWORK_TYPE_HSPAP):   
  18.         PrefetchCacheSize *= 4;  
  19.         break;  
  20.       case (TelephonyManager.NETWORK_TYPE_EDGE |   
  21.             TelephonyManager.NETWORK_TYPE_GPRS):   
  22.         PrefetchCacheSize /= 2;  
  23.         break;  
  24.       default: break;  
  25.     }  
  26.     break;  
  27.   }  
  28.   default: break;  
  29. }  


后记:想要最大化效率与最小化电量的消耗,需要考虑的东西太多了,通常来说,会根据app的功能需求来选择有所侧重,那么前提就是需要了解到底哪些对效率的影响比较大,这有利于我们做出最优选择。


学习自:http://developer.android.com/training/efficient-downloads/connectivity_patterns.html

转载请注明出处:http://blog.youkuaiyun.com/kesenhoo,谢谢!


Unity bugly没有上报android闪退日志 问题:Unity android某些机型,bugly没有上报android闪退日志 关键语句:Cleartext HTTP traffic to android.bugly.qq.com not permitted 主要原因:Android P限制了明文流量的网络请求,http请求会被拦截。 解决方案:修改AndroidManifest.xml文件 添加android:usesCleartextTraffic=“true”。 打包测试,登录bugly查看,OK 问题:IOS平台接入Bugly时,按照官方文 阅读详情

相关推荐

Bugly不上上报日志的解决办法

Bugly官网 Bugly的引用流程可详细查看官方网站, 自动引用超级简单 在使用bugly的时候发现armeabi和armeabi-v7a的手机可以上传错误日志, arm64-v8a的手机不支持, 这个arm把我带偏了,后面详细查看日志, 看有一个报错Cleartext HTTP traffic to android.bugly.qq.com not permitted.,查询是Android P需要进行适配(限制了明文流量的网络请求,非加密的流量请求都会被系统禁止掉).关于Android P的解释

hbysjw的博客 6644

Android 流量统计 TrafficStats

https://binkery.com/archives/393.html

beibei2006hd的博客 231

Moodle平台题库建设技术

Moodle平台题库建设技术简述1新的改变1功能快捷键1合理的创建标题,有助于目录的生成1如何改变文本的样式1插入链接与图片1如何插入一段漂亮的代码片1生成一个适合你的列表1创建一个表格1设定内容居中、居左、居右1SmartyPants1创建一个自定义列表1如何创建一个注脚注释也是必不可少的1KaTeX数学公式1新的甘特图功能,丰富你的文章1UML 图表1FLowchart流程图1导出与导入导出1...

lxf78的博客 4534

【Android】(七) TrafficStatistics API

【代码】【Android】(七) TrafficStatistics API。

CHENDONGHAO1105的博客 646

Cadence SIP Layout 简单教程-第二章

[从whp1920 网易博客迁移至优快云] 第一章在正式布线之前做了必须做的准备工作,下面进入正题,打开Candence SIP RF Layout GXL软件。 第一节 导入外形尺寸 打开SIP设置文件保存路径,如下图所示进入导入DXF页面,选中前一章时画好的外框图。打开导入界面后,再进入DXF In Edit/View Layers界面选择所有层,导入Class选择DRAWING FOR...

whp1920的博客 6940

从零开始用QP框架开发STM32:事件驱动编程实战指南(附状态机设计技巧)

本文详细介绍了如何使用QP框架在STM32上实现事件驱动编程,包括状态机设计技巧和嵌入式开发实践。通过对比传统前后台系统和RTOS,展示了QP框架在资源占用、实时性和代码可维护性方面的优势,并提供了从环境搭建到高级状态机设计的完整指南。

h6i7j8的博客 1173

Android中的usescleartexttraffic属性详解

usesCleartextTraffic 是 Android 应用程序开发中的一个重要配置选项,用于控制应用程序是否允许通过不加密的 HTTP 协议进行网络通信。在 Android 应用的开发过程中,正确地配置 usesCleartextTraffic 对于保护用户数据安全、符合最佳实践和遵守法律法规非常重要

netwalk的专栏 6965

3.ESP32S3 AP 配网开发实战:HTTP 与 WebSocket 协议实现

本文介绍了基于ESP32S3的AP配网实现方案,通过HTTP协议提供配网网页,利用WebSocket实现双向通信。详细解析了HTTP和WebSocket协议特点,阐述了SPIFFS文件系统存储HTML网页的方法,包括分区表配置、CMakeLists设置和代码实现。工程采用模块化设计,包含WiFi管理、Web服务器、IO扩展等组件,支持手机浏览器直接配网。测试验证了从AP热点连接到路由器切换的全流程,并总结了SPIFFS操作、WebSocket通信等核心优化点。该方案无需专用APP,适合物联网设备快速部署场景

u011697185的专栏 961

Bugly Android 这个错误 Cleartext HTTP traffic to android.bugly.qq.com not permitted 处理方法

android p 有这个问题 android:networkSecurityConfig="@xml/network_security_config" 这个文件 network_security_config <?xml version="1.0" encoding="utf-8"?> <network-security-config> <domain-c...

u012922981的专栏 1208

【银行测试】手机银行APP专项项目+测试点汇总(一)

1、手机银行APP转账项目讲解面试官:请介绍一下你所负责的模块如何进行的测试?求职者:好的,我最近测试的是XX银行的手机银行App项目。这个项目里面包含了转账、转账额度调整、网银转账、交易明细、添加账户、存款、投资理财、生活缴费等功能模块。我主要负责了转账模块,这个大模块中包含了智能转账、手机转账、语音转账、预约转账、收款人管理等5个子模块,我首先介绍一下我们生活中使用最多的手机转账子模块。对于转账需要关注的是转账前、转账中、转账后这三个状态下的测试。

m0_70102063的博客 1607

[STM32F103C8T6]W5500+Modbus TCP(HAL库)

本章节是博主学习Modbus TCP所写的一篇文章Modbus TCP是Modbus的一个分支,主要用到网口通信的,在工业上也用的很频繁,我们公司最近的项目就是用的W5500+modbus TCP来和PC端的上位机通信和交互的。虽然这个项目不是我在写代码,但是我都学了Modbus RTU了,那我也抽空学习一下Modbus TCP吧。本次的Modbus TCP不是博主写的,是一个大佬开源的一个W5500写的一个Mobus TCP代码,我在这个基础上自己写了主机读从机多个数据,和主机写从机寄存器的函数。

sinat_58149788的博客 4086

Android P联网报错 :Cleartext HTTP traffic to xxx not permitted的解决办法

项目在Android 9.0的手机上报错java.io.IOException: Cleartext HTTP traffic to xxx not permitted的解决方案总结

马彦虎的博客 5306

【数据集】全球大气空气柱平均甲烷(XCH₄)和一氧化碳(XCO)浓度数据集 TROPOMI/WFMD

全球大气空气柱平均甲烷(XCH₄)和一氧化碳(XCO)浓度数据集 TROPOMI/WFMD

WW、forever的博客 389

【Android Advanced Training - 05】传输数据时避免电量的浪费[Lesson 4 - 根据网络类型更改下载模式]...

Modifyingyour Download Patterns Based on the Connectivity Type [根据连接的网络类型来更改下载模式] 并不是所有的网络类型(Wi-Fi,3G,2G,etc)对电量的消耗是同等的。不仅仅Wi-Fi电波比无线电波消耗的电量要少很多,而且不同的无线电波(3G,2G,LTE……)也存在使用不同电量的区别。 Use W...

mmdev 159

128、点云配准与ICP:经典配准算法与深度学习配准

上周调试一台双臂协作机器人,左手持结构光相机扫描桌面上的随机堆叠工件,右手准备执行抓取。问题出在“对齐”这一步——相机扫描得到的点云和CAD模型点云之间差了大约15度的旋转,导致抓取姿态计算出来直接怼到桌面上。我第一反应是“ICP跑一下不就行了”,结果跑了三分钟,误差纹丝不动,甚至越迭代越发散。后来查了日志才发现,初始位姿给得太离谱,ICP直接掉进了局部最优。这个场景太典型了——很多人以为点云配准就是调个ICP库函数,实际工程里坑比想象中多得多。今天这篇笔记,咱们把点云配准这件事从头捋一遍。

sundong_81的博客 46

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

【Android Advanced Training - 05】传输数据时避免电量的浪费[Lesson 0 - 章节概览]

Transferring Data Without Draining the Battery [传输数据时不要浪费电量] Dependencies and prerequisites Android 2.0 (API Level 5) or higher You should also read Optimizing Battery Life ...

mmdev 143

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Bugly集成 SDK仍不上报crash信息

经log发现 是发上报请求没回应,原因是Goolg为了安全起见,不支持http请求,可在android 的manifest.xml中增加android:usesCleartextTraffic="true"即可。

阳光大男孩!!!的博客 1310

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

bugly android 错误不上报,Bugly不上上报日志的解决办法

Bugly官网Bugly的引用流程可详细查看官方网站, 自动引用超级简单在使用bugly的时候发现armeabi和armeabi-v7a的手机可以上传错误日志, arm64-v8a的手机不支持, 这个arm把我带偏了,后面详细查看日志, 看有一个报错Cleartext HTTP traffic to android.bugly.qq.com not permitted.,查询是Android P需...

weixin_39883440的博客 2172

Android 9.0 系统应用集成 Bugly 发生的 Crash 日志不能上报到服务器

Android 9.0 系统应用集成 Bugly 发生的 Crash 日志不能上报到服务器问题表现问题原因解决方法 问题表现 Android 9.0 的系统,应用集成 Bugly 的功能,使用 Bugly 构造异常提示 System.err: java.io.IOException: Cleartext HTTP traffic to android.bugly.qq.com not permit...

右手的鼠标 2689

【Android】java.io.IOException: Cleartext HTTP traffic to xxx not permitted

本文转自:Android联网失败报错:java.io.IOException: Cleartext HTTP traffic to xxx.xxx.xxx.xxx not permitted 为保证用户数据和设备的安全,Google针对 Android 系统(Android P) 的应用程序,将要求默认使用加密连接,这意味着 Android P 将禁止 App 使用所有未加密的连接,因此运行 Android P 系统的安卓设备无论是接收或者发送流量,未来都不能明码传输,需要使用下一代(Transport L

SuperSources的博客 648

Cleartext HTTP traffic to xxx not permitted解决

问题: 提示:net::ERR_CLEARTEXT_NOT_PERMITTED 之前都是没问题的,又是什么问题呢?应该猜到是Android SDK升级造成的没错了,Stackoverflow看看,果不其然。 从Android 9.0(API级别28)开始,默认情况下限制了明文流量的网络请求,对未加密流量不再信任,直接放弃请求,因此http的url均无法在webview中加载,https 不...

qq_32534441的博客 4547

Android联网失败报错:Cleartext HTTP traffic to xxx not permitted解决方法

有时候在Android开发中,使用okhttp会出现下面这样的情况: java.net.UnknownServiceException: CLEARTEXT communication ** not permitted by network security policy 在Android P系统的设备上,如果应用使用的是非加密的明文流量的http网络请求,则会导致该应用无法进行网络请求,https则不会受影响,同样地,如果应用嵌套了webview,webview也只能使用https请求。 针对这个问题,

stars77的博客 775

[Android Traffic] 让android应用在传输网络数据的时候更省电

  到今年6月,我国的手机网民已经达到了3.88亿,超过了电脑终端。相信有智能机的同学都用过手机上网冲浪。但是手机的电量很快被用光了恐怕是每个人都不能忍受的一件事情。而打开数据连接进行网络数据的传输是很耗费电量的,如果用户发现你的应用榨干了他电池里的电,恐怕他会第一时间将你的应用给卸载掉。所以进行网络应用的开发理解怎样才能更省电就很有必要了。                   如果数据连接一...

weixin_34092455的博客 250
上一篇: 【Android Advanced Training - 05】传输数据时避免电量的浪费[Lesson 3 - 使用缓存来避免重复的下载]
下一篇: AT&T Labs Research — Leading Invention, Driving Innovation
WingSu
博客等级 码龄23年 1粉丝 17原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值