android 应用对内存是如何限制的?我们应该如何合理使用内存?如何限制的?
2023-09-27 14:27:33 时间
Android 应用的开发语言为 Java,每个应用最大可使用的堆内存受到 Android 系统的限制
•Android 每一个应用的堆内存大小有限
•通常的情况为 16M-48M
•通过 ActivityManager 的 getMemoryClass()来查询可用堆内存限制
•3.0(HoneyComb)以上的版本可以通过 largeHeap=“true”来申请更多的堆内存
•NexusS(4.2.1):normal 192, largeHeap 512
•如果试图申请的内存大于当前余下的堆内存就会引发 OutOfMemoryError()
•应用程序由于各方面的限制,需要注意减少内存占用,避免出现内存泄漏。
mActivityManager=(ActivityManager)this.getSystemService(Context.ACTIVITY_SERVICE);
mMaxMemory=mActivityManager.getMemoryClass();
如何合理使用内存?
1、注意资源回收,像数据库,输入输出流,定位操作这样的对象,要在使用完及时关闭流。
2、少使用静态变量,因为系统将静态变量的优先级设定的很高,会最后回收。所以可能因为静态变量导致该回收的没有回收。而回收了不该回收的内存。
3、注意大图片的缩放,如果载入的图片很大,要先经过自己程序的处理,降低分辨率等。最好设置多种分辨率格式的图片,以减少内存消耗。
4、 动态注册监听, 把一些只有显示的时候才使用到的监听放进程序内部, 而不是放在 manifesat中去。
5、减少使用动画,或者适当减少动画的帧数。
6、注意自己的程序逻辑,在该关闭自己程序的控件的时候,主动关闭,不要交给系统去决定。(这个要自己把握好, 也不是说都自己搞定, 只有那些自己确定需要关闭的对象, 自己将其关闭。 )
相关文章
- Android开发--IntentService的用法,你错过了什么
- HTTPS 原理浅析及其在 Android 中的使用
- 新品秀:Dell Cast,让Android平板变身台式PC
- android studio如何开启与禁用版本控制vcs
- Android Jetpack全家桶(含Jetpack Compose)入门到熟练掌握
- android内存管理,安卓Apk安装过程,架构师必备技能
- Android application捕获崩溃异常
- Android: Avoid passing null as the view root
- 详解android的号码匹配
- Android 如何有效的解决内存泄漏的问题
- 深入Android渲染机制
- LeakCanary——直白的展现Android中的内存泄露
- Android优化—— 内存分析工具 MAT 的使用
- Android 性能优化之内存优化与泄漏分析工具LeakCanary
- React Native Android 应用内存使用探究
- Android OpenGL ES 学习(九) – 坐标系统和实现3D效果
- 【Android 事件分发】ItemTouchHelper 简介 ( 拖动/滑动事件 | ItemTouchHelper.Callback 回调 )
- Android内存优化的两个类:SoftReference 和 WeakReference
- 如何检查 Android 应用的内存使用情况
- 【Android 内存优化】使用 Memory Analyzer ( MAT ) 工具分析内存 ( hprof 文件转换 | MAT 工具下载 | MAT 工具使用 )
- Android开发中如何解决加载大图片时内存溢出的问题