app节省电量方案 ios
2017-08-30 22:16:00 weixin_34216196 阅读数 0

//联系人:石虎QQ: 1224614774昵称:嗡嘛呢叭咪哄

一、看图

6083675-d39959433a1ba117

二、了解耗电应用

iOS允许三类程序一直在后台运行,

1.一类是 VoIP 类的应用,

2.一类是音乐类应用,

3.一类就是导航定位类的。

通常苹果对这类应用审核很严,对应用属于出行类的 APP,要求严格也可以理解。

三、如何避免耗电

稍微正常一点的ios开发者,都知道在任务结束的时候,停止掉这样的后台行为。比如高德地图在导航结束后,就是主动结束自己的后台任务,以节省电量。

怎么避免这种问题呢?

首先可以在定位设置里面把他们的权限由“始终”改为“使用期间”

最后还不放心,可以在结束骑行后,双击 Home 键,上划主动结束掉程序进程。

图:

6083675-5319dac7b004ddb9

注意:最好是伟大的程序员来写,这样对用户体验会好很多.

谢谢!!!

2017-08-30 22:10:58 shihuboke 阅读数 296

//联系人:石虎  QQ: 1224614774昵称:嗡嘛呢叭咪哄


一、看图



二、了解耗电应用

 iOS 允许三类程序一直在后台运行

 1.一类是 VoIP 类的应用,

 2.一类是音乐类应用,

 3.一类就是导航定位类的。

 通常苹果对这类应用审核很严,对应用属于出行类的 APP,要求严格也可以理解。


三、如何避免耗电

     稍微正常一点的 iOS 开发者,都知道在任务结束的时候,停止掉这样的后台行为。比如高德地图在导航结束后,就是主动结束自己的后台任务,以节省电量。


怎么避免这种问题呢?

首先可以在定位设置里面把他们的权限由“始终”改为“使用期间”

最后还不放心,可以在结束骑行后,双击 Home 键,上划主动结束掉程序进程。

图:



注意:最好是伟大的程序员来写,这样对用户体验会好很多.


谢谢!!!


2018-01-19 10:49:54 m0_37890492 阅读数 2838
需要工具Sysdiagnose,只需要安装一个证书即可。如下:
下载、安装、使用:

  1. 证书下载:https://developer.apple.com/bug-reporting/profiles-and-logs/,下载证书。
  1. 把证书发送到需要测试电量的手机上,安装证书
  2. 安装完成后同时按住+ -音量键后按一下电源键,手机震动一下说明启动成功.可以对APP进行操作测试。
  3. 等待30分钟后通过itunes把数据同步到电脑上(PLSQL后缀的一个数据库文件),通过sqlite打开文件即可(DB Browser for Sqlite)。
  4. 原理:非充电模式,启动后每隔1个小时数据写入表一次,等待写入表后方可查看电量情况。有些表充电时不记录数据。
数据位置:
C:\Users\allin\AppData\Roaming\Apple Computer\Logs\CrashReporter\MobileDevice\iPhone123
 
Plsql数据库文件中重要的表:

PLBatteryAgent_EventBackward_Battery 
PLBatteryAgent_EventBackward_BatteryUI
PLApplicationAgent_EventNone_AllApps
PLAppTimeService_Aggregate_AppRunTime
PLAccountingOperator_Aggregate_RootNodeEnergy
PLAccountingOperaor_EventNone_Nodes

PLAccountingOperator_Aggregate_RootNodeEnergy表中字段RootNodeID含义:

node 6 isp图像处理器
node 52
apsocbasecpu外芯片层耗电
node 10 display
显示
node 11
wifidata
node 8 GPU
node 4
venc视频编码器
node 2
cpu
node 7
restofsoc

 注:数据表中记录的数据跟随IOS系统而定。因为没有相关文档,通过推敲判断:Ios9 – mWh;Ios10\11 – 1/1000 mWh。仅供参考~
2015-08-28 15:37:37 u011025344 阅读数 314

天极软件频道消息】存储空间不够是很多iOS用户遇到的问题,苹果在2015全球开发者大会(WWDC 2015)上简要介绍了一个关于节省iOS存储空间的解决方案——App Thinning,这项功能可以让iOS设备在很多安装应用、更新应用以及运行应用等多种场景中仅下载需要的代码而不是所有的资源,这样iOS应用占用的空间就会减少很多,从而节省出更多的剩余存储空间。

iOS 9的App Thinning功能如何节省存储空间
图示:iOS 9的App Thinning功能如何节省存储空间

iOS 9更省空间的真相原来是这样
图示:iOS 9的App Thinning功能如何节省存储空间

  App Thinning功能中其实有三个独立的机制,分别是App Slicing、on-demand resources以及Bitcode,它们在节省iOS应用资源方面发挥着各自的作用。

iOS 9的App Thinning方案如何节省存储空间_天极yesky软件频道
图示:iOS 9的App Thinning功能如何节省存储空间

  App Slicing

  App Slicing在节省应用所需资源中发挥着最重要的作用。很多应用需要在不同尺寸的设备上运行,针对这些不同的设备,它们内含不同的独立资源,而大部分是你的设备不需要的。

  比如用户使用的是iPhone 5c,它运行的是32位CPU和GPU,并不支持Metal API。但如果用户下载的是一款最新的通用游戏应用,它的二进制中含有64位代码,iPad和“3x”iPhone 6 Plus 资源以及Metal API代码,这些都是你的设备用不上的。它只需要32位代码,“2x”iPhone尺寸资源以及OpenGL图形代码。

iOS 9的App Thinning功能如何让节省存储空间_天极yesky软件频道
图示:iOS 9的App Thinning功能如何节省存储空间

  有了App Slices,开发者就可以根据设备添加资源标签,当用户从iTunes下载应用时,它将仅仅下载当前设备需要的资源。因为苹果已经将整个过程设计得非常简单,所以相信很多应用很快就会开始支持这项特性。

  ODR

  ODR(on-demand resources 随需应变资源)是iOS减少应用资源消耗的另外一种方法。比如多级游戏,用户需要的通常都是他们当前的级数以及下一级。ODR意味着用户可以下载他们需要的几级游戏。随着你的级数不断增加,应用再下载其他级数,并将用户成功过关的级数删掉。


图示:iOS 9的App Thinning功能如何节省存储空间

  当用户点击应用内容的时候,就会动态从App Store上进行下载,也就是说用户只会在需要的时候占用存储空间。这项功能有趣之处还在于当将这些内容在后台进行下载之后,当存储空间紧张的时候会自动进行删除。


图示:iOS 9的App Thinning功能如何节省存储空间

  Bitcode

  Bitcode使得开发者上传应用程序时不必非提交预编译的二进制文件,只需要上传“intermediate representation(直译为中间代表)”即可。而用户下载时,App Slicing可以根据用户需求,来判断你是需要32位还是64位。

  也就是说,在用户下载应用之前,App Store在自动编译应用程序。这样,即使开发者没有给他们的代码添加标签,应用也能够执行App Slicing的部分功能,仅下载设备需要的32或64位代码。不过Bitcode也意味着如果苹果完善编译器提高代码效率,用户下载应用时苹果进行的完善会自动整合进去。

  虽然有评论表示,App Thinning这个新特性有时候也会带来不方便。比如用户坐十几个小时飞机,期间一直在玩游戏,持续过关斩将,但是因为没有下载所以不能继续玩下去,会感觉比较无奈。不过,对于大多数用户的应用场景来说,App Thinning将为iOS设备用户节省很多应用所需要的存储空间,对于16GB容量的iOS设备用户来说效果则更加明显。

  iOS 9的更新包体积从原来的4.6GB降至现在的1.3GB,让不少8GB、16GB的iPhone和iPad老用户非常开心。而App Thinning方案进一步减小了系统在运行应用等多种实用情景时的存储资源占用,令人期待。

2018-01-17 13:46:00 weixin_33895657 阅读数 4

首发地址 https://github.com/ifelseboyxx/xx_Notes

随着 iPhone 一代又一代的更新,加上系统的电量排行榜的推出,使得用户更加关注电量问题。如果自己的 App 不小心出现在电量排行榜 Top 10 里,轻则投诉,重则卸载,这也迫使我们必须认真对待电量问题。

优化耗电问题的前提是定位耗电的地方。目前常用的方式要么操作后直接去系统的电量排行榜里看耗电百分比,要么就是借助 instrments 中的 Energy Log,虽说还有电量测试仪这种硬件测试方式,但是成本太高。所以,常用的还是 instrments 搭配系统电量排行榜,一个排除问题,一个统计对比数据。具体如何使用 instrments 来测试,大家可以看看这篇文章 iOS 常见耗电量检测方案调研

除了上面的方法,其实还有一种更好的办法:sysdiagnose。通过这种方式,我们可以获取电量消耗,电压,电流,温度,甚至系统的 CPU、GPU 等等耗电都有详细的数据。而且不单单是自己的 App,手机内安装的其它的 APP 同样可以获取到数据,这样大大方便了我们做出详细的对比测试数据。由于这些都是苹果系统的数据,可靠性还是比较有保障的。废话不多说,我们来看看步骤:

数据获取方式

  • 官网下载证书 Profiles and Logs。(需要开发者证书)

    1899027-28dda6b961ce2d07.png
  • 下载完成后通过 AirDrop 发到测试手机上安装。

  • 在不重启手机的情况下,等待10到30分钟。

  • 手机连上电脑,通过 iTunes 同步到电脑上。

  • ~/Library/Logs/CrashReporter/MobileDevice 目录下,打开 powerlog_xxxx.PLSQL 文件。

1899027-a76c4ab770cf1bb3.png

我们可以看到,powerlog_xxxx.PLSQL 是个相当庞大的文件,里面有几百张表,所有的电量数据都在里面。主要的几张表的意思如下:

表名 内容
PLBatteryAgent_EventBackward_Battery 整台机器的电量数据,包含电流、电压、温度等,每 20 秒 左右一条数据
PLBatteryAgent_EventBackward_BatteryUI 电量百分比数据,每 20 秒一条数据
PLIOReportAgent_EventBackward_EneryModel 整机的详细电量数据。包含 CPU\GPU\DRAM\ISP 等关键信息。每半小时到一小时一条数据。
PLAccountingOperator_EventNone_Nodes App 结点信息,每个 APP 对应唯一的结点号。用来确定手机内具体哪个 App。
PLApplicationAgent_EventForward_Application App 运行信息,记录每个 App 在哪个时间段以什么状态运行
PLAppTimeService_Aggregate_AppRunTime APP 的运行时长统计,每个运行过的 APP,一小时一条数据
PLAccountingOperator_Aggregate_RootNodeEnergy APP 的电量详细数据,记录每个 APP 的CPU\GPU\DRAM\ISP 等的耗电信息。一小时更新一次数据。

测试方式

正常我们可以分模块测试,比如我们的 APP 有模块 A、B、C,三个模块,我们可以在固定的时间内只测试一个模块。比如三十分钟内,只测试 A 模块,因为电量数据是一小时更新一次的,所以我们尽量在一小时内把需要测试的模块测试完毕。然后下一个一小时,测试模块 B,以此类推。最后按照上面一节的方式先把数据取下来,接着先去 PLAccountingOperator_EventNone_Nodes 表中,找到我们 APP 的结点标识,比如下图中,是我自己手机里的去哪儿,飞猪,途牛等 APP 的唯一标识:

1899027-5eb55cce4a5d9afc.png

其实可以发现,表中对应的 Name 字段就是 Bundle Identifier,至于怎么知道自己手机里其它 App 的 Bundle Identifier,可以通过 PP助手,下载,解压安装包里的 .ipa 包里的 info.plist 来获取。

得到每个 App 的唯一标识后,我们就可以去 PLAccountingOperator_Aggregate_RootNodeEnergy biao 表里看电量消耗数据了:

1899027-355aa74e6461f665.png

表中的 Energy 就是对应消耗的电量了,这里的单位在 iOS 9 是 mAh,iOS 9 及以上应该是 1/1000 mAh。这段时间内的耗电量,我们也就可以执行 SQL 语句计算出来:

1899027-60c1ac52d8000992.png

比如这个耗电量为 96454 / 1000 = 96.454 mAh

如果我们还想知道运行这个 App 这段时间内的温度,也可以去 PLBatteryAgent_EventBackward_Battery 表中获取,但是因为该表的数据是整个机器的,所以我们需要根据对应的时间节点来观察数据:

1899027-e061650e151f8f08.png

是不是很酷?有了这些官方数据支撑,能更加方便我们测试!

参考文献

https://cloud.tencent.com/community/article/877849
https://github.com/ChenYilong/iOSBlog/issues/10

iOS App 瘦身方案

阅读数 2

iOS App 瘦身方案

阅读数 1

iOS电量获取

阅读数 5

没有更多推荐了,返回首页