地图类业务优化方法

作者: brycegao | 来源:发表于2019-06-16 18:28 被阅读3次

一、背景
在百度地图、高德地图上显示Marker, 如果显示数量很多时,滑动地图会出现卡顿的现象。 根本原因是地图是个耗内存的功能, 我们看到的地图和marker都是Bitmap。 想想在手机屏幕上添加100个小的Bitmap和背景的大Bitmap需要多少内存? 这些图片没有复用机制,都是储存在Java堆里,显示的Marker越多占用的内存越多
滑动地图时可能出现卡顿甚至ANR的现象, 其实就是内存开销太大了,地图上显示了过多的Marker。

(Java_com_baidu_mapsdkplatform_comjni_map_basemap_JNIBaseMap_addOneOverlayItem+106)
  native: #06 pc 00003c47  /data/app/com.lianjia.beike-yIWV6AK0FFsvTyKR4wM2sA==/oat/arm/base.odex (Java_com_baidu_mapsdkplatform_comjni_map_basemap_JNIBaseMap_addOneOverlayItem__JLandroid_os_Bundle_2+110)
  at com.baidu.mapsdkplatform.comjni.map.basemap.JNIBaseMap.addOneOverlayItem(Native method)
  at com.baidu.mapsdkplatform.comjni.map.basemap.a.f(unavailable:-1)
  at com.baidu.mapsdkplatform.comapi.map.e.b(unavailable:-1)
 ...

什么是“多”? 这个词缺少量化的标准。 不同性能的手机可以显示的Marker最大数量也是不同的。

二、优化方法


优化方法.png

一些业务在滑动屏幕时会删除所有地图上的Marker, 然后添加新的Marker点。 这种操作方式不存在内存开销大的问题, 可以忽略上面的方法;

使用缓存的优点是拖动屏幕时可以看到以前的Marker, 缺点是管理好Marker数量(避免内存开销大导致的卡顿)。

三、目标
缩放、滑动地图时可以看到缓存数据且操作流畅, 不会出现卡顿现象;

由于手机性能限制, 既要充分利用手机资源又要保证地图操作流畅, 需要合理的管理Marker的添加、删除行为。 每个Marker都是张Bitmap,太多了手机扛不住。

相关文章

  • 地图类业务优化方法

    一、背景在百度地图、高德地图上显示Marker, 如果显示数量很多时,滑动地图会出现卡顿的现象。 根本原因是地图是...

  • DSP常见的定向及优化设置【基础类】

    其实除了前两篇文章《DSP主要优化要点_上【业务类】》、《DSP主要优化要点_下【业务类】》重点介绍的时间、地点、...

  • JAVA动态代理

    动态代理 静态代理 静态代理是由业务实现类、业务代理类两部分组成。业务实现类负责实现组主要的业务方法,业务代理类负...

  • iOS优化

    性能优化一般分为两类: 业务逻辑实现优化 卡顿情况优化 卡顿情况优化方式 合理的线程由于GCD太方便了,如果不加控...

  • 动态规划. 换钱的最少货币数和最多方法数

    通过对换钱类题目的学习,我们将了解到 暴力递归及优化方法 记忆搜索(优化一) 动态规划的基本实现方法(优化二) 动...

  • 一些模型

    一、战略洞察类 (1)BLM模型 (2)战略地图 (3)商业画布 二、业务理解类 (1)CSF分析法 (2)VRI...

  • Android安装包Apk瘦身方案

    代码混淆 proguard混淆压缩,Shrink,去除代码无用的类,字段,方法。优化,Optimize,优化字节码...

  • 数据分析

    业务报表体系搭建及优化根据报表基本数据项,跟据要求出具业务类相关报表业务数据专项分析业务考核数据完善业务数据库

  • 关于proguard,你需要知道的全部

    proguard分为4个步骤: 压缩(shrink)移除未使用的类、方法、字段等; 优化(optimize)优化字...

  • 关于App端地图组件国际化的方案浅析

    导语: 现在的App中,很多业务都会涉及到地图的展示或者交互, 例如车联网类应用,打车类应用以及LBS类应用,这类...

网友评论

    本文标题:地图类业务优化方法

    本文链接:https://www.haomeiwen.com/subject/rbwgfctx.html