[JPush]极光推送应用,app启动导致的严重卡顿问题

简介: [JPush]极光推送应用,app启动导致的严重卡顿问题

刚接手一个新项目,app刚运行时,就打印了如下日志,还导致了严重的卡顿。

问题:

20200107105046651.png


```Objective-C


2019-12-18 15:43:14.195169+0800 xxx_Project[957:163233] | JIGUANG | I - [JIGUANGSessionController] connecting with coreAddr 121.46.20.44,port 7010

Main Thread Checker: UI API called on a background thread: -[UIApplication currentUserNotificationSettings]

PID: 957, TID: 163245, Thread name: org.hxhg.jiguang.thread, Queue name: com.apple.root.default-qos.overcommit, QoS: 0

Backtrace:

4 xxx_Project 0x0000000100f9a72c -[JPUSHAPNSStateReport init] + 232

5 xxx_Project 0x0000000100f9e4cc -[JPUSHClientController UDPReportAPNSState] + 44

6 xxx_Project 0x0000000100f9dd74 -[JPUSHClientController setup] + 484

7 Foundation 0x000000019939b22c 503900AF-2ECD-329F-B742-C07C3E672BEB + 1278508

8 CoreFoundation 0x0000000198f30a00 1B9B1E61-8CB4-3903-9870-402C3DE959BB + 694784

9 CoreFoundation 0x0000000198f30958 1B9B1E61-8CB4-3903-9870-402C3DE959BB + 694616

10 CoreFoundation 0x0000000198f300f0 1B9B1E61-8CB4-3903-9870-402C3DE959BB + 692464

11 CoreFoundation 0x0000000198f2b23c 1B9B1E61-8CB4-3903-9870-402C3DE959BB + 672316

12 CoreFoundation 0x0000000198f2aadc CFRunLoopRunSpecific + 464

13 CoreFoundation 0x0000000198f2b828 CFRunLoopRun + 60

14 xxx_Project 0x0000000100f6e40c -[JPUSHThread clientThreadMain] + 100

15 Foundation 0x000000019939b0a4 503900AF-2ECD-329F-B742-C07C3E672BEB + 1278116

16 libsystem_pthread.dylib 0x0000000198ccdd8c _pthread_start + 156

17 libsystem_pthread.dylib 0x0000000198cd176c thread_start + 8

2019-12-18 15:43:14.357377+0800 xxx_Project[957:163245] [reports] Main Thread Checker: UI API called on a background thread: -[UIApplication currentUserNotificationSettings]

PID: 957, TID: 163245, Thread name: org.hxhg.jiguang.thread, Queue name: com.apple.root.default-qos.overcommit, QoS: 0

Backtrace:

4 xxx_Project 0x0000000100f9a72c -[JPUSHAPNSStateReport init] + 232

5 xxx_Project 0x0000000100f9e4cc -[JPUSHClientController UDPReportAPNSState] + 44

6 xxx_Project 0x0000000100f9dd74 -[JPUSHClientController setup] + 484

7 Foundation 0x000000019939b22c 503900AF-2ECD-329F-B742-C07C3E672BEB + 1278508

8 CoreFoundation 0x0000000198f30a00 1B9B1E61-8CB4-3903-9870-402C3DE959BB + 694784

9 CoreFoundation 0x0000000198f30958 1B9B1E61-8CB4-3903-9870-402C3DE959BB + 694616

10 CoreFoundation 0x0000000198f300f0 1B9B1E61-8CB4-3903-9870-402C3DE959BB + 692464

11 CoreFoundation 0x0000000198f2b23c 1B9B1E61-8CB4-3903-9870-402C3DE959BB + 672316

12 CoreFoundation 0x0000000198f2aadc CFRunLoopRunSpecific + 464

13 CoreFoundation 0x0000000198f2b828 CFRunLoopRun + 60

14 xxx_Project 0x0000000100f6e40c -[JPUSHThread clientThreadMain] + 100

15 Foundation 0x000000019939b0a4 503900AF-2ECD-329F-B742-C07C3E672BEB + 1278116

16 libsystem_pthread.dylib 0x0000000198ccdd8c _pthread_start + 156

17 libsystem_pthread.dylib 0x0000000198cd176c thread_start + 8

2019-12-18 15:43:30.876049+0800 xxx_Project[957:163247] | JIGUANG | E - [JIGUANGSessionController] ack timeout for request rid: 21

2019-12-18 15:43:32.890411+0800 xxx_Project[957:163250] | JIGUANG | I - [JIGUANGSessionController] connecting with coreAddr 121.46.20.44,port 7010


``


我的解惑步骤如下:

1、看日志有:[UIApplication currentUserNotificationSettings],那么肯定是跟推送有关系,认为这个方法不能与极光推公用,导致的卡顿。将其注释,发现无效。

2、反其道而行之,注释极光推初始化文件,发现没有卡顿的问题了,由此判断,根本原因是极光推的问题。

于是打断点,看文档,查看极光推的初始化及其实现步骤,发现,整个流程都没什么问题。

3、查看极光推SDK最新版本,已经是V3.2.6,而项目使用的是V3.0.5版本,于是立即更新SDK,重新运行,发现不再出现类似的提示。

问题解决,这个处理方式。


发现不足:

刚开始尝试了1和2的方法,但是当时时间紧任务重,没想是SDK版本问题,着急先做新增模块了。后来在开发的过程中偶然回想到SDK版本迭代,才用了第3个处理方案。

但是,我查看了极光推的SDK更新日志,并没有提到卡顿的情况,以及解决方案;工单也没有看到类似的问题。要解决这个问题只能去不断的尝试,太过依赖开发经验,这是很致命的。


当然,还有个最直接的方法,就是使用Instruments-time profile 工具做性能优化检测,可以直接找出现卡顿的具体事哪个方法。然后作出对应的解决方法。至于性能优化检测怎么用,有很多可以参考的,这里不作简述了。


相关文章
|
2月前
|
移动开发 小程序 Android开发
基于 uni-app 开发的废品回收类多端应用功能与界面说明
本文将对一款基于 uni-app 开发的废品回收类多端应用,从多端支持范围、核心功能模块及部分界面展示进行客观说明,相关资源信息也将一并呈现。
138 0
|
4月前
|
Java Shell Maven
【Azure Container App】构建Java应用镜像时候遇无法编译错误:ERROR [build 10/10] RUN ./mvnw.cmd dependency:go-offline -B -Dproduction package
在部署Java应用到Azure Container App时,构建镜像过程中出现错误:“./mvnw.cmd: No such file or directory”。尽管项目根目录包含mvnw和mvnw.cmd文件,但依然报错。问题出现在Dockerfile构建阶段执行`./mvnw dependency:go-offline`命令时,系统提示找不到可执行文件。经过排查,确认是mvnw文件内容异常所致。最终通过重新生成mvnw文件解决该问题,镜像成功构建。
164 1
|
9月前
|
前端开发 安全 开发工具
【11】flutter进行了聊天页面的开发-增加了即时通讯聊天的整体页面和组件-切换-朋友-陌生人-vip开通详细页面-即时通讯sdk准备-直播sdk准备-即时通讯有无UI集成的区别介绍-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
【11】flutter进行了聊天页面的开发-增加了即时通讯聊天的整体页面和组件-切换-朋友-陌生人-vip开通详细页面-即时通讯sdk准备-直播sdk准备-即时通讯有无UI集成的区别介绍-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
588 90
【11】flutter进行了聊天页面的开发-增加了即时通讯聊天的整体页面和组件-切换-朋友-陌生人-vip开通详细页面-即时通讯sdk准备-直播sdk准备-即时通讯有无UI集成的区别介绍-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
|
9月前
|
机器学习/深度学习 存储 人工智能
MNN-LLM App:在手机上离线运行大模型,阿里巴巴开源基于 MNN-LLM 框架开发的手机 AI 助手应用
MNN-LLM App 是阿里巴巴基于 MNN-LLM 框架开发的 Android 应用,支持多模态交互、多种主流模型选择、离线运行及性能优化。
7182 80
MNN-LLM App:在手机上离线运行大模型,阿里巴巴开源基于 MNN-LLM 框架开发的手机 AI 助手应用
|
4月前
|
存储 移动开发 监控
App Trace功能实战:一键拉起、快速安装与免提写邀请码的应用实践
App Trace系统通过一键拉起、快速安装和免提写邀请码三大功能,显著提升用户转化率、安装成功率和邀请注册率。结合深度技术实现与优化,助力公司用户增长,成为移动端核心基础设施。
|
6月前
|
搜索推荐 API UED
淘宝/天猫获得淘宝app商品详情原数据 API 返回值的应用
该API专注于商品信息整合与展示,提供基础信息抓取、多媒体内容整合等功能,助力实时同步商品数据,构建丰富的详情页。同时支持数据分析与市场洞察,包括销售趋势分析和竞品对比,优化库存与定价策略。此外,动态促销管理和个性化推荐系统可提升营销效果,而实时库存预警和评价数据可视化则显著增强用户体验,为用户决策提供透明依据,全面提升平台竞争力与用户满意度。
|
8月前
|
小程序
【04】微信支付商户申请下户到配置完整流程-微信开放平台移动APP应用通过-微信商户继续申请-微信开户函-视频声明-以及对公打款验证-申请+配置完整流程-优雅草卓伊凡
【04】微信支付商户申请下户到配置完整流程-微信开放平台移动APP应用通过-微信商户继续申请-微信开户函-视频声明-以及对公打款验证-申请+配置完整流程-优雅草卓伊凡
570 1
【04】微信支付商户申请下户到配置完整流程-微信开放平台移动APP应用通过-微信商户继续申请-微信开户函-视频声明-以及对公打款验证-申请+配置完整流程-优雅草卓伊凡
|
9月前
|
前端开发 Java Shell
【08】flutter完成屏幕适配-重建Android,增加GetX路由,屏幕适配,基础导航栏-多版本SDK以及gradle造成的关于fvm的使用(flutter version manage)-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
【08】flutter完成屏幕适配-重建Android,增加GetX路由,屏幕适配,基础导航栏-多版本SDK以及gradle造成的关于fvm的使用(flutter version manage)-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
624 20
【08】flutter完成屏幕适配-重建Android,增加GetX路由,屏幕适配,基础导航栏-多版本SDK以及gradle造成的关于fvm的使用(flutter version manage)-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
|
9月前
|
Dart 前端开发 Android开发
【09】flutter首页进行了完善-采用android studio 进行真机调试开发-增加了直播间列表和短视频人物列表-增加了用户中心-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
【09】flutter首页进行了完善-采用android studio 进行真机调试开发-增加了直播间列表和短视频人物列表-增加了用户中心-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
297 4
【09】flutter首页进行了完善-采用android studio 进行真机调试开发-增加了直播间列表和短视频人物列表-增加了用户中心-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
|
9月前
|
供应链 数据挖掘 API
1688APP 原数据 API 接口的开发、应用与收益
1688作为阿里巴巴旗下的B2B平台,汇聚海量供应商和商品资源。其APP原数据API接口为开发者提供获取商品详细信息的强大工具,涵盖商品标题、价格、图片等。通过注册开放平台账号、申请API权限并调用接口,开发者可构建比价工具、供应链管理及自动化上架工具等应用,提升用户体验与运营效率,创造新的商业模式。示例代码展示了如何使用Python调用API并解析返回结果。
628 8

热门文章

最新文章

下一篇
oss云网关配置