移动APP卡顿问题解决实践

本文涉及的产品
应用实时监控服务-应用监控,每月50GB免费额度
应用实时监控服务-用户体验监控,每月100OCU免费额度
简介: 本APP为面向用户的一款基于NFC的安全支付产品。本APP本作品将密码学原理、计算机技术、NFC通信技术和数字货币思想有机结合,在全面保障安全性的同时最大限度的提高了消费者的支付体验。相对于传统方案,本作品具有以下特点:1)实现货币的数字化;2)商家与用户双向身份认证;3)交易过程安全保障;4)完善的移动支付体系;5)离线支付,脱离网络;6)账户丢失可找回;7)差错协商,保障交易双方利益;8)标签型商城,便捷最大化;9)成本低廉,便于推广。

一、项目背景

本APP为面向用户的一款基于NFC的安全支付产品APP本作品将密码学原理、计算机技术、NFC通信技术和数字货币思想有机结合,在全面保障安全性的同时最大限度的提高了消费者的支付体验。相对于传统方案,本作品具有以下特点:1)实现货币的数字化;2)商家与用户双向身份认证;3)交易过程安全保障;4)完善的移动支付体系;5)离线支付,脱离网络;6)账户丢失可找回;7)差错协商,保障交易双方利益;8)标签型商城,便捷最大化;9)成本低廉,便于推广。

用户是需要使用本产品进行消费的客户,需要安装用户钱包客户端。主要功能结构图如下所示:

1.jpg商家是商品或者服务的提供方,需要安装商家客户端。主要功能结构图如下所示:

2.jpg

二、所遇到的挑战

APP用户反馈APP使用过程中存在卡顿等问题。对于手机APP而言,流畅度的重要性是不言而喻。为了提升流畅度,Google对Android系统进行了大量的优化,包括使用了GPU硬件加速,引入了VSync,把Dalvik换成了Art等。那么对于我们的APP出现卡顿问题,势必会影响用户体验感,所以必须对APP卡顿的问题进行分析并且予以解决

三、解决问题的步骤

首先,我们进行了几轮的代码review,尝试从逻辑层面优化代码结构,从而减少卡顿问题的发生。这方面的优化,主要是找出在主线程中耗时较大的函数,通过优化逻辑去减少API的耗时,分析CPU的工作,尽量让CPU执行主线程中的工作。这方面的工作有很多,比如优化逻辑去减少API的耗时,缓存数据以方便更快地对数据进行加载,把耗时的操作移出主线程,在子线程中进行操作。

其次,优化数据库表结构,将一些常用的数据放到缓存中,在异步更新到数据库中。可以把所有的数据库操作都统一放到一个线程队列当中。

最后,需要完善监控体系。因为虽然产品上线之前,必然会经过严密的测试工作,但还由于模式的固定以及测试死角的存在,比如,对于较大规模的APP产品,测试人员是基本无法做到覆盖到全部的手机机型和ROM,所以很多问题必然还是要依赖于真正上线之后用户的反馈。在这种情况下,完善的质量监控方案就显得非常必要,所以需要建立一套牢固的监控体系。这样,对线上产品的APP质量问题才能第一时间召回,并做到快速修复。那对于如何完善监控体系,目前来看,是有两个选择的,一种是基于开源的SkywalkingCatZipkinPinpointAPM系统,以Skywalking为例来讲,其是一款基于分布式跟踪的应用程序性能监控系统SkyWalking的核心是数据分析和度量结果的存储平台,通过 HTTP gRPC 方式向 SkyWalking Collecter 提交分析和度量数据,SkyWalking Collecter 对数据进行分析和聚合,存储到 ElasticsearchH2MySQLTiDB 等其一即可,最后我们可以通过 SkyWalking UI 的可视化界面对最终的结果进行查看。Skywalking 支持从多个来源和多种格式收集数据:多种语言的 Skywalking Agent Zipkin v1/v2 Istio 勘测、Envoy 度量等数据格式。整体架构看似模块有点多,但在实际上还是比较清晰的,主要就是通过收集各种格式的数据进行存储,然后展示。所以搭建 Skywalking 服务我们需要关注的是SkyWalking CollecterSkyWalking UI 和 存储设备,SkyWalking CollecterSkyWalking UI 官方下载安装包内已包含,最终我们只需考虑存储设备即可。但是使用这种系统,就会面临工程师不熟悉,工期紧张等问题。第二种选择就是使用成熟的APM系统,这种,不言而喻,会有较大的短期资金压力,但是鉴于我们项目的紧迫性,我们选择使用友盟+应用性能监控平台U-APM。友盟+U-APM应用性能监控平台基于强大的捕获采集能力,快速定位错误根源,提供用户维度的崩溃统计,快速还原崩溃现场,并设立多种警告通道,助力开发者7*24监控应用情况。非常适用于我们的APP

四、项目总结

交易安全是当前互联网+支付存储应用设计的重中之重。我们的APP为 了实现交易流程的安全与快捷,在使用 NFC 功能短距安全传输的同时,设计了以下交易流程增强安全性。本APP具有数字化、移动化、高效化的优势特点。但在APP运行期间出现了卡顿的问题,影响了用户体验感,于是我们通过修改代码逻辑及数据库表结构,同时完善监控体系的方法解决优化了这个问题。




作者:陈静茹

北京大学研究生在读,7年开发经验。


相关实践学习
通过云拨测对指定服务器进行Ping/DNS监测
本实验将通过云拨测对指定服务器进行Ping/DNS监测,评估网站服务质量和用户体验。
相关文章
|
9月前
|
移动开发 JavaScript 小程序
从入门到实践:Uni-app跨平台开发与应用
从入门到实践:Uni-app跨平台开发与应用
470 1
|
3月前
|
数据采集 网络协议 算法
移动端弱网优化专题(十四):携程APP移动网络优化实践(弱网识别篇)
本文从方案设计、代码开发到技术落地,详尽的分享了携程在移动端弱网识别方面的实践经验,如果你也有类似需求,这篇文章会是一个不错的实操指南。
109 1
|
6月前
|
XML 安全 Java
App安全检测实践基础——工具
App安全检测实践基础——工具
147 0
|
8月前
|
XML 监控 安全
Android App性能优化之卡顿监控和卡顿优化
本文探讨了Android应用的卡顿优化,重点在于布局优化。建议包括将耗时操作移到后台、使用ViewPager2实现懒加载、减少布局嵌套并利用merge标签、使用ViewStub减少资源消耗,以及通过Layout Inspector和GPU过度绘制检测来优化。推荐使用AsyncLayoutInflater异步加载布局,但需注意线程安全和不支持特性。卡顿监控方面,提到了通过Looper、ChoreographerHelper、adb命令及第三方工具如systrace和BlockCanary。总结了Choreographer基于掉帧计算和BlockCanary基于Looper监控的原理。
154 3
|
数据采集 JavaScript 前端开发
利用无头浏览器进行APP提取数据的技术与实践
利用无头浏览器进行APP提取数据的技术与实践
|
9月前
|
开发框架 JavaScript 前端开发
深入探讨Vue.js核心技术及uni-app跨平台开发实践
深入探讨Vue.js核心技术及uni-app跨平台开发实践
159 0
|
开发框架 JavaScript 前端开发
深入探讨Vue.js核心技术及uni-app跨平台开发实践
深入探讨Vue.js核心技术及uni-app跨平台开发实践
116 1
|
运维 Cloud Native 测试技术
极氪汽车 APP 系统云原生架构转型实践
极氪汽车 APP 系统云原生架构转型实践
1931 13
极氪汽车 APP 系统云原生架构转型实践

热门文章

最新文章

  • 1
    MNN-LLM App:在手机上离线运行大模型,阿里巴巴开源基于 MNN-LLM 框架开发的手机 AI 助手应用
  • 2
    原生鸿蒙版小艺APP接入DeepSeek-R1,为HarmonyOS应用开发注入新活力
  • 3
    【11】flutter进行了聊天页面的开发-增加了即时通讯聊天的整体页面和组件-切换-朋友-陌生人-vip开通详细页面-即时通讯sdk准备-直播sdk准备-即时通讯有无UI集成的区别介绍-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
  • 4
    【08】flutter完成屏幕适配-重建Android,增加GetX路由,屏幕适配,基础导航栏-多版本SDK以及gradle造成的关于fvm的使用(flutter version manage)-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
  • 5
    【Azure App Service】基于Linux创建的App Service是否可以主动升级内置的Nginx版本呢?
  • 6
    【Azure Function】Function App出现System.IO.FileNotFoundException异常
  • 7
    1688APP 原数据 API 接口的开发、应用与收益
  • 8
    PiliPala:开源项目真香,B站用户狂喜!这个开源APP竟能自定义主题+去广告?PiliPala隐藏功能大揭秘
  • 9
    APP-国内主流安卓商店-应用市场-鸿蒙商店上架之必备前提·全国公安安全信息评估报告如何申请-需要安全评估报告的资料是哪些-优雅草卓伊凡全程操作
  • 10
    语音app系统软件源码开发搭建新手启蒙篇
  • 1
    iOS|记一名 iOS 开发新手的前两次 App 审核经历
    9
  • 2
    flutter3-wetrip跨平台自研仿携程app预约酒店系统模板
    24
  • 3
    通过外部链接启动 Flutter App(详细介绍及示例)
    21
  • 4
    【03】仿站技术之python技术,看完学会再也不用去购买收费工具了-修改整体页面做好安卓下载发给客户-并且开始提交网站公安备案-作为APP下载落地页文娱产品一定要备案-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
    55
  • 5
    【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
    46
  • 6
    【01】仿站技术之python技术,看完学会再也不用去购买收费工具了-用python扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-客户的麻将软件需要下载落地页并且要做搜索引擎推广-本文用python语言快速开发爬取落地页下载-优雅草卓伊凡
    40
  • 7
    【Azure Function】Function App门户上的Test/Run返回错误:Failed to fetch
    36
  • 8
    小游戏源码开发之可跨app软件对接是如何设计和开发的
    42
  • 9
    原生鸿蒙版小艺APP接入DeepSeek-R1,为HarmonyOS应用开发注入新活力
    174
  • 10
    PiliPala:开源项目真香,B站用户狂喜!这个开源APP竟能自定义主题+去广告?PiliPala隐藏功能大揭秘
    77