博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
地图类业务优化方法
阅读量:2351 次
发布时间:2019-05-10

本文共 1043 字,大约阅读时间需要 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最大数量也是不同的。

二、优化方法

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

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

三、目标

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

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

转载地址:http://zkqvb.baihongyu.com/

你可能感兴趣的文章
DirectShow应用——支持Windows Media格式
查看>>
WDM 视频捕获介绍
查看>>
Directshow中的视频捕捉
查看>>
使用dbghelp生成dump文件以及事后调试分析
查看>>
vs2010编译ActiveX Control Test Container工具
查看>>
windows 内核函数前缀解析
查看>>
漫谈兼容内核之十二:Windows的APC机制
查看>>
ring0和ring3简介
查看>>
DllMain说明及如何获取DLL路径
查看>>
Detour开发包介绍(1):概述
查看>>
Detour开发包介绍(2):使用
查看>>
20.IDA-修改二进制文件、显示修改点
查看>>
Interview with Matt Pietrek - by Chris Maunder, 11 Sep 2000
查看>>
Linux下autoconf和automake使用
查看>>
Linux下Makefile快速编写入门
查看>>
跟我一起写 Makefile(一)
查看>>
Linux Makefile文件编写详细步骤与实践
查看>>
Linux/Unix环境下的make和makefile详解
查看>>
SourceInsight添加对汇编语言文件.s和.S的支持
查看>>
windows 下实现函数打桩:拦截API方式
查看>>