【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

【线粒体基因组数据提交实战】从注释校验到GenBank批量入库的避坑指南

本文详细介绍了线粒体基因组数据从注释校验到GenBank批量上传的全流程避坑指南。重点解析了GB2sequin工具的正确使用方法、TBL注释文件的精修技巧,以及BankIt平台提交的隐藏要点,帮助科研人员高效完成NCBI数据提交,特别适合需要批量上传线粒体基因组数据的研究者。

weixin_28726671的博客 443

【Android】(七) TrafficStatistics API

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

CHENDONGHAO1105的博客 646

基于STM32的智能衣柜系统开发实战(附完整源码与硬件设计)

本文详细介绍了基于STM32的智能衣柜系统开发实战,包括硬件设计、软件架构和云端功能实现。系统具备实时温湿度监控、自动加热除湿、紫外线杀菌等核心功能,通过STM32F103C8T6主控芯片和ESP8266无线模块实现智能控制。附完整源码与硬件设计,适合科技爱好者和开发者参考。

peach的博客 782

Python实现多元线性回归(Multiple Linear Regression)

多元线性回归是一种用于建立多个自变量与因变量之间关系的统计学方法。在多元线性回归中,我们可以通过多个自变量来预测一个因变量的值。每个自变量对因变量的影响可以用回归系数来表示。

优快云 精品推荐 4332

Android中的usescleartexttraffic属性详解

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

netwalk的专栏 6965

搭建AutoSAR开发环境

任何开发都需要一套开发环境,包括软硬件环境,笔者后续将介绍的是 NXP 的 S32K144 配套的开发板。接下来详细介绍怎么获取这些软硬件工具。仅供个人学习使用!

cfl927096306的博客 6113

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

把 SAP ABAP BDC 跑得又快又稳:从 SHDB 录屏到可上线的批量上传程序(含 MM01 案例与源码)

SAP BDC批量数据迁移实践 摘要:本文介绍了SAP系统中BDC(Batch Data Communication)技术在数据迁移中的应用。文章首先对比了Session method和CALL TRANSACTION method两种实现方式的特点及适用场景,重点推荐使用Session method进行主数据批量处理。然后详细讲解了通过SHDB工具录制MM01事务创建物料主数据的完整流程,包括如何生成基础BDC代码。最后展示了将录制的脚本改造为可批量处理文件数据的实用程序,核心改动包括定义数据结构、读取文

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 322

C#上位机开发实战全流程:从需求到落地,避坑指南+完整代码

作为一名做了5年工业自动化上位机开发的程序员,我踩过的坑比写过的代码还多——从最初串口通信粘包导致数据错乱,到可视化图表卡顿卡死,再到现场异常崩溃无日志可查,每一次踩坑都是一次血泪教训。今天这篇文章,我会把C#上位机开发的全流程拆解开,从需求分析到通信模块、数据可视化,再到异常处理,每个环节都结合工业实际场景,分享真实项目中能用的方案、完整代码和避坑技巧。不管你是刚入门的新手,还是想优化现有项目的老司机,相信都能有所收获。很多新手做上位机开发,一上来就闷头写代码,最后发现做出来的东西不符合现场需求——比如客

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 996

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

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

马彦虎的博客 5306

海思3559av100平台lan9500模块调试记录

1. 前言 通过USB2.0接口扩展一路百兆虚拟网口 2. 配置lan9500驱动 make ARCH=arm64 menuconfig 开启LAN95XX驱动,编译进内核 保存内核配置 3. 编译内核 make ARCH=arm64 CROSS_COMPILE=aarch64-himix100-linux- uImage -j 20 cd ../../arm-trusted-firmware/arm-trusted-firmware ./mk.sh cp ...

jzwjzw19900922的博客 909

【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

01-系统技术架构师必备——软件架构设计基础与核心概念

摘要 本文系统阐述了软件架构设计的核心概念与方法论,重点涵盖以下内容:1)软件架构的四大要素(构件、连接件、约束、配置)及其边界划分;2)Garlan & Shaw五大架构风格(数据流、调用/返回、独立构件、虚拟机、仓库)的典型应用场景;3)基于电商库存系统的架构选型实战案例,展示如何根据业务需求(高并发、最终一致性)选择事件驱动架构配合Saga模式;4)介绍ABSD、DSSA等主流架构方法论及ISO/IEEE标准体系。文章融合金融与互联网领域的架构实践经验,为技术架构师提供系统性的知识框架和决策参考。

模界 | AI工程化实践者 182

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

【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

Devexpress16.2.6破解工具

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

Bugly集成 SDK仍不上报crash信息

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

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

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

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...

右手的鼠标 2688

【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、付费专栏及课程。

余额充值