首页 文章 精选 留言 我的

精选列表

搜索[模块],共10000篇文章
优秀的个人博客,低调大师

Android 接入高德地图SDK模块的优化点点滴滴

起因: 由于在最近接手了一个关于导航的App,发现地图页面跳来跳去实在是卡顿地不行(运行在车载设备上的APP,机器性能实在是有限)。 初步判断: 应该是是关于地图等控件的反复创建和销毁,给内存GC带来了很大的压力。 简单调查: 通过 命令 adb shell dumpsys meminfo com.xxxx.xxx (后面那个是包名,当然你可以使用MAT等工具来看) 带有地图控件的页面之间跳来跳去,大量对象没有及时被回收,导致内存占用过高 解决方案: 利用Fragment来抽离各个有MapView的Activity中的业务逻辑,留下一个MapActivity就专门负责地图业务逻辑的效果展示; 这样多个带地图控件的Activity页面,就可以复用首页的地图控件即可,这样就可以复用地图控件这样的大对象了 上图,仅仅做了一个涉及到地图业务的优化(搜索页面),就少了10多M,效果还不错,目前在首页和搜索页面来回切换也都流畅许多了 探索高德地图: 有了上面的解决方案后,我就猜想高德地图可能也是这么干的,因为从首页到线路规划,再到导航,都是用了地图控件,那也是肯定是地图复用,才能减少大对象的创建和销毁 通过命令来:adb shell dumpsys activity | grep -i run 查看当前运行的activity,无论我在高德地图中怎么跳转,始终都是NewMapActivity,因此更加印证我的猜想 通过ui automator viewer 工具,看到了id为:fragment_container的全面覆盖页面的控件,id名称字面意思大家肯定都知道了,就是一个装fragment的容器 我也反编译了高德APK的代码,里面确实也是通过Fragment来实现多个页面的跳转和切换的 总结一下 在日常开发中,能复用的代码或者说是组件,能复用的就尽量复用,不要反复创建和销毁对象,那样真的很消耗系统资源;特别在后台开发中,高并发场景中更是如此,当然还要处理好多线程的问题,在移动端的开发中,多线程的问题还是比较好处理的。

优秀的个人博客,低调大师

自制一个python下载文件的进度条模块

我们在做Python爬虫脚本的时候,往往希望在运行的过程中可以实时查看到我的下载进度!之前我也一直想实现这个功能(绝对不是为了炫(装)耀(B)),也查看了很多博客但是各种解决方案都不是很满意(当然,progressBar和tqdm这两个库都是可选择也可操作的),很多时候我们需要一些定制功能的时候就需要考虑自己实现,这个功能其实很简单,我们可以自己去实现它! 实现办法 进度条最大的问题是实现输出在一行,且实时变化,不要换行。有的同学可能已经想到了,有2种办法: 一个是来自sys库的sys.stdout.write()函数 可以替代print的一个函数,具体的大家可以自行查找相关资料哦,我们今天用第二种办法: print本身就有可以实现的办法,比如下面的代码,大家可以运行下! import time for i in range(10): print('\r'+'>'*i,end='') 这段代码会生成一个缓缓前行的‘>’,是不是很简单。重点是’ ‘和end参数, 是跳到行开头,end=”是将原本的print完成后换行改为不换行,这样就实现了这个小功能 那么,进度条完成了,怎么和我们的代码结合,比如我们下载1个10M的东东,怎么控制每1M显示10%呢,这就用到了我们爬虫最常用的一个库requests库的一个功能了 用requests库相关功能实现分段下载 一般情况下我们下载文件使用的是requests.get(url).content的方法来下载文件的二进制格式,然后在保存即可!这里我们添加一个参数steam=True,在对下载的文件大小进行指定,比如每次下载1024b,最后获取文件的总大小,即可完成我们的功能实现了!来看下面的代码: 这个函数就实现了通过文件的url+保存路径和名字2个参数,下载文件,并提供一个简单的进度条以及消耗时间的功能,我们下载个文件,试试效果: ok~是不是很简单~~大家也可以在里面按自己的喜好添加各种元素哦! 如果有更好的办法,也喜欢在评论区发一下,大家一起讨论下!

资源下载

更多资源
优质分享App

优质分享App

近一个月的开发和优化,本站点的第一个app全新上线。该app采用极致压缩,本体才4.36MB。系统里面做了大量数据访问、缓存优化。方便用户在手机上查看文章。后续会推出HarmonyOS的适配版本。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册