草庐IT

java - http请求对电池生命周期的影响

coder 2023-12-01 原文

我有一个项目,客户端应用程序(可能在 Android 设备上)将从服务器请求一些文件。一种实现是从服务器到设备进行突发传输,其中 X 文件与指向下一个 block 的链接/指针一起发送。另一种实现是发送文件 ID 列表,然后为每个 ID 发出一个 http 请求并单独获取文件。我听说这真的会损害电池生命周期。是真的吗?

另一个问题是带宽,客户端可能不希望/不需要一次性发送所有文件,因此服务器有点强制客户端一起接受它们。在个人提交中,客户可以在他想要的时候拿到文件。

对电池生命周期的影响是否如此之大以至于超越带宽是一个有效的选择?或者有其他选择吗?

最佳答案

I've heard this really hurts the battery life. Is that true?

不一定。在大多数 Android 设备上,HttpClientHttpUrlConnection 都可以支持 Keep-Alive,因此如果您的 HTTP 服务器设置正确,并且您使相当快速连续的请求,我预计不会有重大差异。

In the individual submission, the client can get the files when he wants if he wants them.

如果您的意思是他们可能会在相当长的一段时间内请求它们,这将无法利用 Keep-Alive。但是,您可能会整体请求更少的文件并消耗更少的带宽。不可能抽象地告诉你哪个对电池消耗更好。

Is the effect on battery life so great that it would be a valid option to overstep on bandwidth?

这取决于您的下载量、下载频率等。

但是,恕我直言,您关注的是错误的问题。

如果您消耗的带宽太多以至于担心电池生命周期,您的用户就会用干草叉和镐攻击您,因为他们在计量数据计划上花费了太多钱。

因此,我会使用 TrafficStats 并尝试各种场景,看看您实际使用了多少带宽,因此您是否需要找到总体上消耗更少带宽的方法(例如,降低轮询频率) ),因此用户不会因您的应用而破产。我怀疑您对电池的担忧会作为副作用自行解决。

但是,如果在您的测试中,您发现您的应用出现在“设置”中的“电池故障屏幕”上,然后开始担心电池消耗,无论是来自带宽还是其他来源(例如,过度使用 WakeLocks)。

关于java - http请求对电池生命周期的影响,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8772478/

有关java - http请求对电池生命周期的影响的更多相关文章

  1. ruby - 如何模拟 Net::HTTP::Post? - 2

    是的,我知道最好使用webmock,但我想知道如何在RSpec中模拟此方法:defmethod_to_testurl=URI.parseurireq=Net::HTTP::Post.newurl.pathres=Net::HTTP.start(url.host,url.port)do|http|http.requestreq,foo:1endresend这是RSpec:let(:uri){'http://example.com'}specify'HTTPcall'dohttp=mock:httpNet::HTTP.stub!(:start).and_yieldhttphttp.shou

  2. ruby-on-rails - Rails HTML 请求渲染 JSON - 2

    在我的Controller中,我通过以下方式在我的index方法中支持HTML和JSON:respond_todo|format|format.htmlformat.json{renderjson:@user}end在浏览器中拉起它时,它会自然地以HTML呈现。但是,当我对/user资源进行内容类型为application/json的curl调用时(因为它是索引方法),我仍然将HTML作为响应。如何获取JSON作为响应?我还需要说明什么? 最佳答案 您应该将.json附加到请求的url,提供的格式在routes.rb的路径中定义。这

  3. java - 等价于 Java 中的 Ruby Hash - 2

    我真的很习惯使用Ruby编写以下代码:my_hash={}my_hash['test']=1Java中对应的数据结构是什么? 最佳答案 HashMapmap=newHashMap();map.put("test",1);我假设? 关于java-等价于Java中的RubyHash,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/22737685/

  4. jquery - 我的 jquery AJAX POST 请求无需发送 Authenticity Token (Rails) - 2

    rails中是否有任何规定允许站点的所有AJAXPOST请求在没有authenticity_token的情况下通过?我有一个调用Controller方法的JqueryPOSTajax调用,但我没有在其中放置任何真实性代码,但调用成功。我的ApplicationController确实有'request_forgery_protection'并且我已经改变了config.action_controller.consider_all_requests_local在我的environments/development.rb中为false我还搜索了我的代码以确保我没有重载ajaxSend来发送

  5. java - 从 JRuby 调用 Java 类的问题 - 2

    我正在尝试使用boilerpipe来自JRuby。我看过guide从JRuby调用Java,并成功地将它与另一个Java包一起使用,但无法弄清楚为什么同样的东西不能用于boilerpipe。我正在尝试基本上从JRuby中执行与此Java等效的操作:URLurl=newURL("http://www.example.com/some-location/index.html");Stringtext=ArticleExtractor.INSTANCE.getText(url);在JRuby中试过这个:require'java'url=java.net.URL.new("http://www

  6. ruby - Net::HTTP 获取源代码和状态 - 2

    我目前正在使用以下方法获取页面的源代码:Net::HTTP.get(URI.parse(page.url))我还想获取HTTP状态,而无需发出第二个请求。有没有办法用另一种方法做到这一点?我一直在查看文档,但似乎找不到我要找的东西。 最佳答案 在我看来,除非您需要一些真正的低级访问或控制,否则最好使用Ruby的内置Open::URI模块:require'open-uri'io=open('http://www.example.org/')#=>#body=io.read[0,50]#=>"["200","OK"]io.base_ur

  7. ruby-on-rails - 添加回形针新样式不影响旧上传的图像 - 2

    我有带有Logo图像的公司模型has_attached_file:logo我用他们的Logo创建了许多公司。现在,我需要添加新样式has_attached_file:logo,:styles=>{:small=>"30x15>",:medium=>"155x85>"}我是否应该重新上传所有旧数据以重新生成新样式?我不这么认为……或者有什么rake任务可以重新生成样式吗? 最佳答案 参见Thumbnail-Generation.如果rake任务不适合你,你应该能够在控制台中使用一个片段来调用重新处理!关于相关公司

  8. java - 我的模型类或其他类中应该有逻辑吗 - 2

    我只想对我一直在思考的这个问题有其他意见,例如我有classuser_controller和classuserclassUserattr_accessor:name,:usernameendclassUserController//dosomethingaboutanythingaboutusersend问题是我的User类中是否应该有逻辑user=User.newuser.do_something(user1)oritshouldbeuser_controller=UserController.newuser_controller.do_something(user1,user2)我

  9. ruby-on-rails - ruby 日期方程不返回预期的真值 - 2

    为什么以下不同?Time.now.end_of_day==Time.now.end_of_day-0.days#falseTime.now.end_of_day.to_s==Time.now.end_of_day-0.days.to_s#true 最佳答案 因为纳秒数不同:ruby-1.9.2-p180:014>(Time.now.end_of_day-0.days).nsec=>999999000ruby-1.9.2-p180:015>Time.now.end_of_day.nsec=>999999998

  10. java - 什么相当于 ruby​​ 的 rack 或 python 的 Java wsgi? - 2

    什么是ruby​​的rack或python的Java的wsgi?还有一个路由库。 最佳答案 来自Python标准PEP333:Bycontrast,althoughJavahasjustasmanywebapplicationframeworksavailable,Java's"servlet"APImakesitpossibleforapplicationswrittenwithanyJavawebapplicationframeworktoruninanywebserverthatsupportstheservletAPI.ht

随机推荐