新闻资讯
您所在的位置:首页 > 新闻资讯 > 正文

为什么你的app卡住了而且很慢?

作者: 来源: 日期:2021/1/7 16:46:30 人气:0

  每个人都希望他们的应用程序非常流畅。你已经工作了几年了,你有很多经验,但是为什么你的应用程序仍然卡住而且很慢?

  Android手机的开发语言是Java(kotlin也是Java的包装),Java本身有一个非常好的内存管理机制,称为GC。然而,GC经常遇到无法回收的内存,例如,内存泄漏、内存抖动,结果可能是一个OOM。

  JAVA编程可以跨平台,但运行效率相对于iOS的Objective-C编程要低,运行时需要占用大量内存来换取执行速度,再加上不定期的内存自动回收机制,出现的现象就是卡顿。随着安装程序越多,程序运行时,大量的系统垃圾和后台运行占据了很多资源,如果你没做好性能优化,你的app就会又卡又慢,甚至直接黑屏死机,严重影响手机的正常使用体验。

20200628_125557_017.jpg

  为了避免这些问题,我们必须熟悉JVM。

  为什么有人说JVM是每个Android开发者都应该掌握的技能?

  如果要进行性能优化,虚拟机对象分配、垃圾收集、线程调度、磁盘管理都与设备的性能有关。

  从知识系统的角度来看,了解虚拟机可以加深你对语言的理解,这对系统调优很有帮助,会让你写出高效低成本的代码。

  从实践发展角度,在Android开发上,各大热修复技术方案,热更新等很多问题时候都离不开你对虚拟机管理机制的研究,因为我们很多工作时候你需要hook某些虚拟机的实现,如果不了解学生怎么成为可能可以做得到,例如通过阿里的sophix。

  Jvm将运行时数据划分为线程私有和共享数据区域。线程专用数据区域包含程序计数器、虚拟机堆栈和局部方法区域。所有线程共享的数据区域包含java堆、方法区域,并且在方法区域中有一个常量池。内存泄漏是指系统无法回收已分配但未使用的内存。打个比方,就像你家的水龙头没开,水就漏了。

20200628_125557_006.jpg

  内存泄漏分为:

  频繁的内存泄漏,偶尔的内存泄漏,一次内存泄漏,隐式内存泄漏。

  隐式内存泄漏问题非常重要有害,因为没有它们比常规的、偶尔的内存泄漏更难进行检测。内存泄漏的累积将消耗管理系统中的所有这些内存!

  APP性能优化是android开发者应该具备的一项综合素质,也是开发者能够完成高质量应用作品的保证。

  关于JVM的核心原则,你知道些什么?我们如何使用JVM原则来指导代码实践?我们如何在架构层次上优化产品性能?谷歌工程师如何实施性能和功能改进技术?在项目的总体框架设计中应该使用哪些优化技术?

    标签:
    版权所有:山川云数据(河南)有限公司 公司简称:山川云/山川云数据 网站地图
    业务咨询热线:15838307519(司经理) 13676968269(王经理) 15638947688(刘经理) 联系电话:0371-56683330 售后/投诉:0371-56683330
    地址:郑州市紫荆山路商城路金城国贸1505 备案号:豫ICP备2024092939号 豫公网安备:41010402002369号 营业执照公示:91410105590812745H
    X

    业务咨询

    司经理
    15838307519

    王经理
    13676968269

    刘经理
    15638947688

    售后服务热线

    0371-56683330

    app定制开发-微商城小程序开发-郑州网站建设找知网

    业务咨询:
    15838307519(司经理) 13676968269(王经理) 15638947688(刘经理)

    24小时服务热线:0371-56683330