android 系统优化
文章平均质量分 69
Rainbow Chang
这个作者很懒,什么都没留下…
展开
-
Android屏幕刷新机制解析
之所以要讲这点,是因为,当我们的 app 界面没有必要再刷新时(比如用户不操作了,当前界面也没动画),这个时候,我们 app 是接收不到屏幕刷新信号的,所以也就不会让 CPU 去计算下一帧画面数据,但是底层仍然会以固定的频率来切换每一帧的画面,只是它后面切换的每一帧画面都一样,所以给我们的感觉就是屏幕没刷新。其实,想想就能明白了。这也是我们从代码上看到的,每一个屏幕刷新信号来的时候,只会去执行一次 performTraversals(),因为只需遍历一遍,就能够刷新所有的 View 了。转载 2023-09-28 16:25:36 · 360 阅读 · 0 评论 -
System.gc()与Runtime.gc()的区别
System.gc()与Runtime.gc()的区别(1) GC是垃圾收集的意思(Gabage Collection),内存处理是编程人员容易出现问题的地方,忘记或者错误的内存回收会导致程序或系统的不稳定甚至崩溃,Java提供的GC功能可以自动监测对象是否超过作用域从而达到自动回收内存的目的,Java语言没有提供释放已分配内存的显示操作方法。(2) 对于GC来说,当程序员创建对象时,GC就开始监控这个对象的地址、大小以及使用情况。通常,GC采用有向图的方式记录和管理堆(heap)中的所有对象。通过转载 2021-01-21 10:38:12 · 988 阅读 · 0 评论 -
Runtime类中的freeMemory,totalMemory,maxMemory几个方法
最近在网上看到一些人讨论到java.lang.Runtime类中的freeMemory(),totalMemory(),maxMemory ()这几个方法的一些问题,很多人感到很疑惑,为什么,在java程序刚刚启动起来的时候freeMemory()这个方法返回的只有一两兆字节,而随着 java程序往前运行,创建了不少的对象,freeMemory()这个方法的返回有时候不但没有减少,反而会增加。这些人对freeMemory()这 个方法的意义应该有一些误解,他们认为这个方法返回的是操作系统的剩余可用内存,其实转载 2021-01-21 10:35:09 · 210 阅读 · 0 评论 -
android中常见的内存溢出和解决办法
android中的内存溢出估计大多数人在写代码的时候都出现过,其实突然觉得工作一年和工作三年的区别是什么呢,其实干的工作也许都一样,产品汪看到的结果也都一样,那区别就是速度和质量了。写在前面的一点儿想法:工作做完了其实不会的还有很多,每天都有莫名的危机感,从真正写代码的这一年多总觉得自己的学习速度比别人的慢很多内存溢出是什么鬼?当某些对象不再被程序所使用,但是这些对象仍转载 2016-09-17 07:02:50 · 11947 阅读 · 0 评论 -
android ANR产生原因和解决办法
ANR (Application Not Responding) ANR定义:在Android上,如果你的应用程序有一段时间响应不够灵敏,系统会向用户显示一个对话框,这个对话框称作应用程序无响应(ANR:Application Not Responding)对话框。用户可以选择“等待”而让程序继续运行,也可以选择“强制关闭”。所以一个流畅的合理的应用程序中不能出现anr,而让转载 2016-09-16 19:10:03 · 1778 阅读 · 0 评论 -
Android防止内存溢出浅析
Android的虚拟机是基于寄存器的Dalvik,它的最大堆大小一般是16M。但是Android采用的是Java语言编写,所以在很大程度上,Android的内存机制等同于Java的内存机制,在刚开始开发的时候,内存的限制问题会给我们带来内存溢出等严重问题。在我们不使用一些内存的时候,我们要尽量在Android或者其他平台上避免在运行其他程序时,保存必要的状态,使得一些死进程所带来的内存问题转载 2016-09-16 18:01:32 · 831 阅读 · 0 评论 -
Android 内存溢出和内存泄漏的区别
android内存管理android应用层是由java开发的,android的davlik虚拟机与jvm也类似,只不过它是基于寄存器的。在java中,通过new为对象分配内存,所有对象在java堆内分配空间;而内存的释放是由垃圾收集器(GC)来回收的。 Java采用了有向图的原理。Java将引用关系考虑为图的有向边,有向边从引用者指向引用对象。线程对象可以作为有向图的起始顶点,该图就是转载 2016-09-16 17:45:25 · 6252 阅读 · 1 评论 -
Java内存管理原理及内存区域详解
一、概述Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干不同的数据区域,这些区域都有各自的用途以及创建和销毁的时间。Java虚拟机所管理的内存将会包括以下几个运行时数据区域,如下图所示:下面就每一个区域进行阐述。二、运行时数据区域程序计数器程序计数器,可以看做是当前线程所执行的字节码的行号指示器。在虚拟机的概念模型里,字节码解释器工作就是通过改变转载 2016-09-16 17:26:05 · 240 阅读 · 0 评论 -
java中的各种数据类型在内存中存储的方式
1.java是如何管理内存的java的内存管理就是对象的分配和释放问题。(其中包括两部分)分配:内存的分配是由程序完成的,程序员需要通过关键字new为每个对象申请内存空间(基本类型除外),所有的对象都在堆(Heap)中分配空间。释放:对象的释放是由垃圾回收机制决定和执行的,这样做确实简化了程序员的工作。但同时,它也加重了JVM的工作。因为,GC为了能够正确释放对象,GC转载 2016-09-16 16:47:16 · 4571 阅读 · 1 评论 -
Android内存优化之OOM
10月14日-16日,由CSDN和创新工场联合主办的MDCC 2015中国移动开发者大会将在北京新云南皇冠假日酒店隆重召开,现在抢注大会门票,即享多重好礼!在平台与技术iOS专场议题全方位揭秘之后,平台与技术Android专场也有新动作!与会讲师——腾讯Android应用开发工程师 胡凯围绕着“Android内存优化之OOM”进行了非常深度的技术分享。以下为正文:Andro转载 2016-04-01 11:24:56 · 323 阅读 · 0 评论 -
OOM Killer的运行与结构
本节介绍OOM Killer的运行与结构。 Linux中的Out Of Memory(OOM) Killer功能作为确保内存的最终手段,可以在耗尽系统内存或交换区后,向进程发送信号,强制终止该进程。 这个功能即使在无法释放内存的情况下,也能够重复进行确保内存的处理过程,防止系统停滞。还可以找出过度消耗内存的进程。本节将介绍2.6内核的OOM Killer。 确认运行、日志 进行转载 2016-07-04 10:23:43 · 2120 阅读 · 0 评论 -
Broadcast学习笔记
整个广播发送流程如下图:1、mIntentSenderRecords是一个PendingIntentRecord哈希表。一个PendingIntentRecord对象对应的是应用层的一个PendingIntent对象(延迟性的intent),其中包含send系列方法,主要用于触发PendingIntent的Intent行为。上层应用每获取一个PendingInten转载 2016-07-03 23:31:14 · 3707 阅读 · 0 评论 -
android 中 任务、进程和线程的区别
任务、进程和线程 关于Android中的组件和应用,之前涉及,大都是静态的概念。而当一个应用运行起来,就难免会需要关心进程、线程这样的概念。在Android中,组件的动态运行,有一个最与众不同的概念,就是Task,翻译成任务,应该还是比较顺理成章的。Task的介入,最主要的作用,是将组件之间的连接,从进程概念的细节中剥离出来,可以以一种不同模型的东西进行配置,在很多时候,能够转载 2016-07-03 22:40:12 · 1692 阅读 · 0 评论 -
Android消息推送机制
1.推送方式基础知识:当我们开发需要和服务器交互的应用程序时,基本上都需要获取服务器端的数据,比如《地震应急通》就需要及时获取服务器上最新的地震信息。要获取服务器上不定时更新的信息一般来说有两种方法,第一种是客户端使用Pull(拉)的方式,隔一段时间就去服务器上获取信息,看是否有更新的信息出现。第二种就是服务器使用Push(推送)的方式,当服务器端有新信息了,则把最新的信息Push到客转载 2016-07-03 22:06:41 · 2764 阅读 · 0 评论 -
为什么安卓机没有iPhone流畅?
为什么iPhone 6内存仅有1GB,而很多安卓机配置相当高了,还是觉得iPhone流畅一些?腾讯科技:相信很多网友都有类似疑问,感觉安卓手机在流畅度上不如iPhone手机。先不说一些配置低的安卓机,即便是最新版安卓系统的旗舰手机,也会感觉达不到iPhone手机的那种流畅度,因此有人以此判断安卓手机不好。其实,这都是二者系统机制不同导致的差异。渲染机制不同Andro转载 2016-07-03 14:31:46 · 431 阅读 · 0 评论 -
内存溢出和内存泄漏的区别
内存溢出 out of memory,是指程序在申请内存时,没有足够的内存空间供其使用,出现out of memory;比如申请了一个integer,但给它存了long才能存下的数,那就是内存溢出。内存泄露 memory leak,是指程序在申请内存后,无法释放已申请的内存空间,一次内存泄露危害可以忽略,但内存泄露堆积后果很严重,无论多少内存,迟早会被占光。memory leak会最终会导转载 2016-07-03 12:31:50 · 243 阅读 · 0 评论 -
Android 性能优化方法
在Android开发中,优化,是一直困扰开发者的一个难题,为什么这么说呢,一是为了项目的运行效果考虑,一个是为了让你的项目在别人眼里高端大气上档次,哈哈,开个玩笑,更重要的是能更好优化项目的一些性能,减少冗余,现就将这些大家在开发中经常遇到的需要优化的技术点整合出来,这样就不用被你的项目经理骂喽,呵呵,先一睹为快吧!http://mobile.51cto.com/android-4转载 2016-07-03 12:00:05 · 202 阅读 · 0 评论 -
Android M新特性Doze and App Standby模式详解
作者:MagiLu链接:https://zhuanlan.zhihu.com/p/20323263来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。Optimizing for Doze and App Standby1. 从Android6.0开始,Android提供了两种省电延长电池寿命的功能:Doze和App Standby;2. 表现转载 2016-07-02 23:22:59 · 652 阅读 · 0 评论