`
ZaneLee007
  • 浏览: 20878 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Android内存限制

阅读更多

 先摘一段Google的官方文档:

        Mobile devices typically have constrained system resources. Android devices can have as little as 16MB of memory available to a single application. The Android Compatibility Definition Document (CDD), Section 3.7. Virtual Machine Compatibility gives the required minimum application memory for various screen sizes and densities. Applications should be optimized to perform under this minimum memory limit. However, keep in mind many devices are configured with higher limits.

        大致意思是说Android设备为每个app分配16MB的内存空间,虽然厂商会更改rom,定制更高的单个App内存空间,但是开发者应该依据最小的内存限制即16MB控制内存开销。

 

        Android设备屏幕大小不一,分辨率低至320*240,高至1280*720,对图片的需求也不同。如果在UI中需要加载一副大图片,明智的做法是先获取屏幕的分辨率,然后再决定加载图片的大小。在一款低分辨率的设备上加载高分辨率图片除了增加内存消耗,别无他用。因为设备最大能展示的清晰度为本身的屏幕分辨率。所以,如果一个不需要放大图片的控件需要加载图片,最大只需要加载该控件本身宽高的图片即可。

       Given that you are working with limited memory, ideally you only want to load a lower resolution version in memory. The lower resolution version should match the size of the UI component that displays it. An image with a higher resolution does not provide any visible benefit, but still takes up precious memory and incurs additional performance overhead due to additional on the fly scaling.

分享到:
评论

相关推荐

    ANDROIDBITMAP内存限制OOM,OUTOFMEMORY.pdf

    ANDROIDBITMAP内存限制OOM,OUTOFMEMORY.pdf

    Android获取当前应用分配的最大内存和目前使用内存的方法

    我们创建的对象是在这里面分配的,对于内存的限制是 native+dalvik 不能超过最大限制. Android 原生系统一般默认16M,但是国内手机一般都是特殊定制的,都有修改系统的内存大小,所有有时候,要查看具体应用系统分配的...

    ANDROIDBITMAP内存限制OOM,OUTOFMEMORY[文].pdf

    ANDROIDBITMAP内存限制OOM,OUTOFMEMORY[文].pdf

    android加载大图

    由于android内存的限制,andoid系统给每个应用分配的内存是有限的,当直接加载一个占用内存加大的图片时就会发生OOM. 一、降采样大图 主要是利用BitmapFactory.Options对象的inSampleSize参数,根据空间尺寸与大图...

    Android编程内存溢出与防范方法浅析

    但是Android采用的是Java语言编写,所以在很大程度上,Android的内存机制等同于Java的内存机制,在刚开始开发的时候,内存的限制问题会给我们带来内存溢出等严重问题。在我们不使用一些内存的时候,我们要尽量在...

    Android编程中避免内存泄露的方法总结

    Android的应用被限制为最多占用16m的内存,至少在T-Mobile G1上是这样的(当然现在已经有几百兆的内存可以用了——译者注)。它包括电话本身占用的和开发者可以使用的两部分。即使你没有占用全部内存的打算,你也...

    新版Android开发教程.rar

    � 采用了对有限内存、电池和 CPU 优化过的虚拟机 Dalvik , Android 的运行速度比想象的要快很多。 � 运营商(中国移动等)的大力支持,产业链条的热捧。 � 良好的盈利模式( 3/7 开),产业链条的各方:运营商、...

    Android高级编程--源代码

    由于现有的手机应用程序的开发是构建在各手机厂家的私有操作系统之上的,所以它限制了第三方应用程序的开发,而Android为我们提供了一个开放和通用的选择。因为没有了人为制造的障碍,所以Android开发人员可以自由地...

    Android代码-DroidIPC

    为了应对移动应用内存限制的问题,移动应用通常进行多进程化(根据职责驱动原则和模式分解,分割业务 到不同的进程中提高应用稳定性),而多进程间通信的实现方式有多种方法,比如:aidl;那么DroidIPC 主要抛开aidl...

    Android程序设计基础

    Android针对低能耗、低内存的设备进行了优化,这种根本性的优化是之前的平台从未尝试过的。  高质量的图形和声音。将类似于Flash的光滑、无锯齿的2D矢量图形和动画与3D加速的OpenGL图形相结合,可实现各种新式的...

    Android加载图片内存溢出问题解决方法

    2. 由于Android对图片使用内存有限制,若是加载几兆的大图片便内存溢出。Bitmap会将图片的所有像素(即长x宽)加载到内存中,如果图片分辨率过大,会直接导致内存OOM,只有在BitmapFactory加载图片时使用...

    快速入门android AIDL(开启多进程并进行通信)

    二、由于android对单个应用所使用的最大内存做了限制,为了加大一个应用可使用的内存,所以通过多进程来获取多份内存空间。 本篇文章demo重点: 1、开启多进程 2、两个进程之间使用AIDL进行通信

    使用Android MediaStore裁剪大图片

    拍照传大图片,如果用普通方式会耗用极大的内存,Android一个App原则上的16M内存限制可以一下子被耗光。Android在拍照上有一个隐藏的设计,如果拍照图片过大,只返回一张缩略图。具体到不同手机,都是不一样的。

    Android应用程序开发教程PDF电子书完整版、Android开发学习教程

    Android 的核心系统服务依赖于 Linux 2.6 内核,如安全性,内存管理,进程管理, 网络协议栈和驱动模型 。 Linux 内核也同时作为硬件和软件栈之间的抽象层。 5 建立 Android Android Android Android 开发环境 ① ...

    flying-pigeon:flying-pigeon 是一个IPC 跨进程通信组件,底层是匿名内存+Binder , 突破1MB大小限制,无需写AIDL文件,让实现跨进程通信就像写一个接口一样简单

    Flying-PigeonFlying-Pigeon 是一个IPC跨进程通信组件,把跨进程通信简化到极致,并且突破binder 1MB内存大小限制。引入Gradleimplementation 'com.github.Justson:flying-pigeon:v1.0.7'方式一Serverprivate Api ...

    Android插件

    当我们有一些非常棒的代码需要拿到其他项目使用,但是我们发现,那个项目对第三方库的使用是有限制的,我们不能使用butterknife,这时候,我们又得从注解改回findviewbyid 针对上面的两种情况,如果view比较少还...

    android中软引用的使用测试

    在android程序开发过程中,可能会有很多人会和我一样,因为内存溢出而感觉到苦恼,因为本身引用是个很多很多(基本就是个看网络美女图片的软件,哈哈),大家都知道android对于每个应用分配的内存是有限制的,不同机型...

    Android日期时间选择器的使用

    Android日期时间选择器的使用,主要功能是日期的选择、编辑和修改,具体使用方法见代码,使用过程中常见的问题见我的博客《Android日期时间选择器的使用》。

Global site tag (gtag.js) - Google Analytics