【问题标题】:Brightness Issue during stress testing压力测试时的亮度问题
【发布时间】:2013-03-15 05:11:23
【问题描述】:

我的应用程序能够擦除所有联系人和日历事件。就我们没有进行压力测试而言,它一直运行良好。

在此期间,当我们执行以下用例时,观察者发现设备亮度下降

  1. 将 Facebook、Gmail 等帐户与设备同步,以便有很多 联系人和日历中的记录。在我们的例子中,我们有大约 477 联系人和 1500 多个日历活动。
  2. 发出擦除命令
  3. 在擦除过程中关闭设备并重新打开。
  4. 根据应用程序设计,它会查询服务器是否有任何未决命令并再次开始擦除
  5. 现在,如果我在应用程序选项卡之间切换,设备亮度会突然下降。如果我去设置并检查亮度级别,它不会改变。我们没有在应用程序中做任何会改变设备亮度的事情。

这对我们来说很奇怪,也不容易理解。如果有人有任何线索,请回复。

首先我以为 iOS 可能会更改它,因为自动亮度已开启。因此,如果应用程序正在承担更多的处理工作,它可能是为了省电。但即使自动亮度关闭,问题仍然存在。

第二个问题是,如果我关闭设备,就会发生这种情况。所以一旦关闭,我就会失去调试会话。好难找理由

注意:通过开关关闭 - 我的意思是完全关闭设备。长按电源键,滑动关闭设备。如果我们在擦除联系人期间执行这些步骤,也不会发生崩溃。仅在我们擦除日历事件时才会发生

添加更多细节。在发生上述问题之后,我也遇到了崩溃。以下是崩溃报告的详细信息

`Incident Identifier: 297BD243-B9D9-414F-A9FB-3C02CAAF8A89
CrashReporter Key:   e2ff53439e90b377dadf9c750793f23cac739930
Hardware Model:      iPhone4,1
Process:         SpringBoard [293]
Path:            /System/Library/CoreServices/SpringBoard.app/SpringBoard
Identifier:      SpringBoard
Version:         ??? (???)
Code Type:       ARM (Native)
Parent Process:  launchd [1]

Date/Time:       2013-03-21 16:30:25.137 +0530
OS Version:      iOS 6.1 (10B142)
Report Version:  104

Exception Type:  EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Crashed Thread:  21

blah ... blah ... blah ... all thread info

Thread 21 name:  Dispatch queue: com.apple.eventkit.eventstore.registered
Thread 21 Crashed:
0   libsystem_kernel.dylib          0x396e8350 __pthread_kill + 8
1   libsystem_c.dylib               0x3965f11e pthread_kill + 54
2   libsystem_c.dylib               0x3969b96e abort + 90
3   libc++abi.dylib                 0x38c39d4a abort_message + 70
4   libc++abi.dylib                 0x38c36ff4 default_terminate() + 20
5   libobjc.A.dylib                 0x391eaa74 _objc_terminate() + 144
6   libc++abi.dylib                 0x38c37078 safe_handler_caller(void (*)()) + 76
7   libc++abi.dylib                 0x38c37110 std::terminate() + 16
8   libc++abi.dylib                 0x38c3850e __cxa_throw + 118
9   libobjc.A.dylib                 0x391ea9ba objc_exception_throw + 90
10  CoreFoundation                  0x314cd158 +[NSException raise:format:arguments:] + 96
11  Foundation                      0x31da2ab2 -[NSAssertionHandler handleFailureInMethod:object:file:lineNumber:description:] + 86
12  EventKit                        0x31bb1882 -[EKObjectID entityName] + 382
13  EventKit                        0x31bb1604 -[EKEventStore _addFetchedObjectWithID:] + 52
14  EventKit                        0x31bfb95e __68-[EKEventStore registerFetchedObjectWithID:defaultLoadedProperties:]_block_invoke_0 + 78
15  libdispatch.dylib               0x396014b4 _dispatch_client_callout + 20
16  libdispatch.dylib               0x396059f2 _dispatch_barrier_sync_f_invoke + 26
17  EventKit                        0x31bb150c -[EKEventStore registerFetchedObjectWithID:defaultLoadedProperties:] + 156
18  EventKit                        0x31c039ce __41-[EKPredicateSearch startWithCompletion:]_block_invoke_0 + 514
19  EventKit                        0x31bb8830 -[EKDaemonConnection _processReplyWithID:data:finished:] + 264
20  EventKit                        0x31bb871e CADReceiveReply + 94
21  EventKit                        0x31bb86a2 _XReply + 118
22  EventKit                        0x31bb8626 ClientCallbacks_server + 90
23  libdispatch.dylib               0x39609a02 dispatch_mig_server$VARIANT$mp + 114
24  EventKit                        0x31c00c84 __43-[EKDaemonConnection initWithOptions:path:]_block_invoke_016 + 36
25  libdispatch.dylib               0x39608134 _dispatch_source_invoke$VARIANT$mp + 248
26  libdispatch.dylib               0x3960691a _dispatch_root_queue_drain + 182
27  libdispatch.dylib               0x39606abc _dispatch_worker_thread2 + 80
28  libsystem_c.dylib               0x39636a0e _pthread_wqthread + 358
29  libsystem_c.dylib               0x396368a0 start_wqthread + 4


Thread 21 crashed with ARM Thread State (32-bit):
    r0: 0x00000000    r1: 0x00000000      r2: 0x00000000      r3: 0x3b1af534
    r4: 0x00000006    r5: 0x07494000      r6: 0x1f96a044      r7: 0x074932b4
    r8: 0x1f96a020    r9: 0x00000300     r10: 0x1f9594a0     r11: 0x1fa97b00
    ip: 0x00000148    sp: 0x074932a8      lr: 0x3965f123      pc: 0x396e8350
  cpsr: 0x00000010`

如果您对此有任何了解,请提供任何启示。

【问题讨论】:

  • 出于好奇;是针对越狱的 iPhone 的吧?
  • 不...这不是越狱的 iPhone。
  • 你能用[[UIScreen mainScreen] setBrightness:1.0]恢复亮度吗?
  • 另外,如果你想测试这是否是由于 CPU 负载造成的,那么你应该能够添加一个耗尽所有 CPU 的函数,看看这是否也会影响亮度。但从崩溃报告来看,这看起来像是 EventKit 在守护线程上运行时发生的崩溃。当您开始新的擦除时,旧擦除可能会继续运行?

标签: iphone ios stress-testing


【解决方案1】:

我认为这与您的应用崩溃没有任何关系,并且是在设备过热时内置于 iOS 中的预期功能。

我在其他应用上也遇到过这种情况,通常发生在以下情况:

  1. 应用正在使用接近 100% 的 CPU(产生热量)
  2. 热量无法散去(使用盖子或手机放在布上)
  3. 设备也在充电(产生额外热量)

听起来您的设备已插入以记录日志。尝试在不将其连接到 Mac 的情况下对其进行压力测试,看看它是否有所作为。

【讨论】:

    【解决方案2】:

    确保在关闭设备时不会改变进入环境光传感器的光量。我之前已经注意到这种行为,并将其归因于代表操作系统实施不佳的光感应。

    【讨论】:

    • emm .. 不知道你在说什么。我们没有在代码中使用任何传感器。您能否详细说明您的建议?
    • 对不起,我应该指定。我指的是 iOS 处理的默认开启环境光传感器。如果在解锁设备时,您的手覆盖了环境光传感器,则操作系统(在您的应用程序下)可能会降低亮度。我只是对可能的解决方案进行故障排除,以解决为什么未编辑屏幕亮度的应用程序的亮度级别会像您所看到的那样发生变化。
    • 不...这不是问题...已验证。还涉及崩溃,所以我认为还有其他问题。如果我们在 removeEvent:span:error 函数期间关闭设备,我的怀疑是事件状态不一致。如果您对此有任何理论,请分享...
    猜你喜欢
    • 2020-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-29
    • 2014-01-08
    • 2012-03-09
    • 2014-05-31
    • 2011-08-11
    相关资源
    最近更新 更多