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

手机内存的含义

阅读更多

1. RAM和ROM

      对于手机内存,我们一般会混淆这个概念。手机内存存在两方面的含义。
      用来运行程序的RAM,这个可类比于PC中的内存 ,RAM是可读写的,掉电后信息会丢失。手机RAM实际也不是完全意义上的内存,因为手机的RAM一般由两部分组成,其中一部分存放着OS系统的配置/引导文件以及使用手机产生的数据,掉电后RAM上的东西不会丢失,这部分不是运行用的内存(常见的cache、SQLite等消耗的实际上就是这一部分RAM),因此,G1的RAM为192M,但实际其运行用内存并达不到192M;而在手机上还有一种存储介质Flash ROM,这种介质也可以叫做内存(手机上绝大部分都是电子的存储介质,而没有像PC上的硬盘这样的机械式存储介质,所以人们干脆把 Flash ROM也叫作内存),实际类比于PC中的硬盘 ,对于普通用户ROM是只读的(拥有root权限才可以改写ROM),掉电后信息不会丢失。
      一般来说,ROM比RAM要大,只有智能手机的ROM和RAM才能达到G级别的容量,而且价格很昂贵。手机所说的4G/8G一般指的是SD存储卡 。J2ME中通过Runtime.getRuntime().freeMemory()得到的数据实际也是RAM数据。
      虚拟机堆栈(heap)大小,即内存大小在手机制作过程中已由厂商烧制好,用户无法改动(这个和服务器相关EE程序不同,如果出现内存溢出,你只能从程序中考虑解决)。
      对于GPhone,ROM可以理解为操作系统(GPhone的ROM存储的是android OS),好比Windows XP。我们可以在手机的Settings --> About phone中查看ROM的版本号。手机刷机实际就是刷ROM,好比重装系统。GPhone的root权限实际就是管理员权限,好比Windows中的 Administrator,用户只有拥有root权限,才可以刷机。

 

2. wtk内存

      totalMemory()表示调用时刻,java虚拟机现在已经从操作系统那里获取来的内存大小。在java程序运行的过程的,内存总是慢慢的从操作系统那里取的,基本上是用多少取多少。 但是java虚拟机100%的情况下是会稍微多取一点的,这些取过来而又没有用上的内存,实际上就是freeMemory() 。freeMemory()表示调用时刻,java虚拟机现在已经从操作系统那里多获取来的内存大小。所以这2个方法都是没什么实际意义的。想要在真机上得到一个j2me应用程序最多能用多少,可以使用以下方法:写一个最最简单的应用,然后100kb、100kb的循环申请内存直到OutOfMemoryError,看看最多能申请多少内存。
      SUN WTK2.5.2模拟器默认情况下只能申请约1.9M。如果想要知道你的应用在不同时刻已经占用内存的情况,可以仿照上述方法。 分享一些我已经测试的真机应用可以申请的最大内存的数据,而且诺基亚多个应用互不干扰,BB没有测多个应用的情况:N95 14800K、N96 16200K、BB8800 34600K。

      以上论述针对智能机(动态分配内存,一开始totalMemory很小,以后逐渐增大),非智能机上系统是一次性分配给虚拟机的。

 

3. GC和RAM

      RAM中被应用程序占用的内存是一直会增加的,直至可分配的空间将要耗近时,Java的垃圾回收机制才会启动。才会回收内存。这就是Java的垃圾“自动”回收机制,“自动”,就是一般不回收,直至没有空间了才回收。下面的这张图片是内存被占用的情况,第二个转折点没有上升至最高点就进行内存回收是因为我点击了Run GC。手动回收空间了。

  • 大小: 16.8 KB
分享到:
评论
1 楼 elena_java 2010-09-02  
我在使用如下方法
private Bitmap getBitmap(String listUrl){
if(listUrl !=null){
pathName = getFilesDir().getPath()+File.separator+Global.LISTIMG+
File.separator + listUrl.substring(listUrl.lastIndexOf("/")+1);
try{
d = BitmapFactory.decodeFile(pathName);
}catch(Error er){
Log.e("tag", "err", er);
}
// d.recycle();
}
return d;
}或是bitamp=BitmapFactory.decodeByteArray(b, 0, b.length);读取大量图片的时候经常会出现如下异常
09-02 16:49:31.326: ERROR/dalvikvm-heap(3548): 691200-byte external allocation too large for this process.

09-02 16:49:31.436: ERROR/AndroidRuntime(3548): Caused by: java.lang.OutOfMemoryError: bitmap size exceeds VM budget
09-02 16:49:31.436: ERROR/AndroidRuntime(3548):     at android.graphics.Bitmap.nativeCreate(Native Method)
09-02 16:49:31.436: ERROR/AndroidRuntime(3548):     at android.graphics.Bitmap.createBitmap(Bitmap.java:468)
09-02 16:49:31.436: ERROR/AndroidRuntime(3548):     at android.graphics.Bitmap.createBitmap(Bitmap.java:435)
09-02 16:49:31.436: ERROR/AndroidRuntime(3548):     at android.graphics.Bitmap.createScaledBitmap(Bitmap.java:340)
09-02 16:49:31.436: ERROR/AndroidRuntime(3548):     at android.graphics.BitmapFactory.finishDecode(BitmapFactory.java:488)
09-02 16:49:31.436: ERROR/AndroidRuntime(3548):     at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:462)
09-02 16:49:31.436: ERROR/AndroidRuntime(3548):     at android.graphics.BitmapFactory.decodeResourceStream(BitmapFactory.java:323)
09-02 16:49:31.436: ERROR/AndroidRuntime(3548):     at android.graphics.drawable.Drawable.createFromResourceStream(Drawable.java:697)
09-02 16:49:31.436: ERROR/AndroidRuntime(3548):     at android.content.res.Resources.loadDrawable(Resources.java:1705)
09-02 16:49:31.436: ERROR/AndroidRuntime(3548):     at android.content.res.TypedArray.getDrawable(TypedArray.java:548)
09-02 16:49:31.436: ERROR/AndroidRuntime(3548):     at android.view.View.<init>(View.java:1850)
09-02 16:49:31.436: ERROR/AndroidRuntime(3548):     at android.widget.ImageView.<init>(ImageView.java:109)
09-02 16:49:31.436: ERROR/AndroidRuntime(3548):     ... 28 more
请问如何解决啊?

相关推荐

    激活黑莓手机内存卡U盘功能

    此外,确保手机内存卡没有损坏,可以尝试在其他设备上读取,或格式化内存卡后重新尝试。 总的来说,激活黑莓手机的内存卡U盘功能是一项实用的操作,可以帮助用户方便地在电脑和手机之间交换文件。只要按照上述步骤...

    手机内存与缓存清理

    当手机内存不足时,手机运行速度会变慢,甚至可能导致应用崩溃。而“缓存”则是系统和应用为了提高加载速度而存储的部分数据副本,如网页图片、应用设置等。 Android系统的内存管理机制是自动的,但有时用户可能...

    应用宝怎么清理手机内存.docx

    本文将详细讲解如何使用腾讯的应用宝来有效地清理手机内存,以提高手机的运行效率。 应用宝是一款由腾讯公司推出的手机管理软件,它集应用下载、安装、更新、卸载以及手机优化等功能于一体。当手机内存不足或者运行...

    仿照内存加速器一键加速清理手机内存源码

    【标题】"仿照内存加速器一键加速清理手机内存源码"主要涉及到的是Android应用开发中的内存管理和优化技术。在Android系统中,内存管理对于应用性能至关重要,尤其是对于那些需要快速响应用户操作和高效利用系统资源...

    手机软件的工作原理!!!!

    手机软件的技术架构可以分为三层:第一层是操作系统(Operating System),第二层是内置的手机本地应用,第三层是在 J2ME 平台上开发的一些 Kjava 应用程序。 五、手机软件的未来发展 随着手机软件技术的不断发展...

    夏普手机,索尼手机,LG手机通用的黑域

    黑域,全称可能是“后台活动限制区域”或类似的含义,它是一个专门为安卓用户设计的应用程序,旨在控制和管理手机上的后台进程。在安卓系统中,很多应用即使在用户没有主动使用时也会在后台运行,消耗电池并占用系统...

    手机号吉凶占卜-一款智能手机软件

    总的来说,【手机号吉凶占卜】是一款基于数字命理学的娱乐性质软件,它为用户提供了一种探索手机号含义的方式,尽管其科学性有待商榷。同时,这也反映了技术如何与传统文化相结合,创造出适应市场需求的新应用。对于...

    手机归属地 数据库 手机归属地 数据库

    综上所述,手机归属地数据库不仅在电信领域有着重要的应用价值,在信息安全、商业服务等多个方面也扮演着不可或缺的角色。通过合理设计和维护数据库,可以极大地提高数据查询的效率和准确性,为用户提供更加便捷和...

    手机模拟器VC++源码

    2. **系统模拟层**:这部分代码模仿目标手机的操作系统,处理系统调用、进程管理、内存分配等功能。 3. **硬件模拟**:模拟各种手机硬件,如CPU、GPU、传感器等,提供API供应用程序调用。 4. **用户界面**:实现...

    手机绿色版联众游戏下载

    这种版本的游戏文件可以直接放在SD卡上,无需安装到手机内存中,减轻了手机存储空间的压力。对于那些内存有限的手机用户来说,这是一个非常实用的特点。 联众游戏平台拥有丰富的游戏种类,包括但不限于扑克、麻将、...

    诺基亚智能手机命令大全

    16. `#pw+(mastercode)+X#`:用于查看手机状态,mastercode是10位数字,X是1到4的数字,具体含义尚不清楚。 17. 各种硬件状态信息,如电压、电流、音频输入/输出等,这些信息可能有助于诊断手机硬件问题。 需要...

    手机知识宝典 扫盲教程

    首先,介绍了手机的基本知识,包括手机内部电路的基本原理和模块,IMEI的生成和作用,手机频率的含义,以及手机电池的工作原理。此外,还对比了不同类型的电池,分析了电池容量与待机、通话时间的关系。关于充电器,...

    易语言制作的手机刷机工具源码

    综上所述,易语言制作的手机刷机工具源码是一个涵盖多方面技术的学习资源,它不仅涉及到易语言的编程技巧,还涵盖了手机刷机的核心流程和技术要点。通过研究和学习,开发者可以加深对易语言的理解,同时掌握手机固件...

    手机RMVB播放器-run.rar

    这个列表中只包含了一个文件——"run.sisx",这通常是一个SISX文件,是Symbian OS(塞班系统)上的安装包格式,用于在基于Symbian操作系统的手机上安装应用程序。这里的"run"可能代表这是运行或启动RMVB视频的程序。...

    MTK手机维修指导

    **3.1 D/L站、S/N站、BT站**:这些站点涉及到手机生产过程中的不同测试阶段,常见的故障代码及其含义,例如&lt;256&gt;APC Fail表示自动功率控制失败,&lt;255&gt;Path Loss Calibration Fail表示路径损耗校准失败等。...

    易语言手机号码问吉凶游戏

    此外,为了保护用户隐私,手机号码的处理应当遵循安全原则,如不保存用户输入的号码,仅在内存中临时处理,并且不泄露给第三方。 总的来说,《易语言手机号码问吉凶游戏》是一款结合了易语言编程、API调用和数据...

    手机网站 医疗网站

    手机网站是指专为移动设备如智能手机和平板电脑设计的网站,它们通常具有响应式布局,能根据不同的屏幕尺寸自动调整显示方式,确保用户在小屏幕上也能获得良好的浏览体验。在医疗领域,手机网站不仅方便患者获取信息...

    MOTO手机原代码·最新

    9. **移植和兼容性**:有了源代码,开发者可以将其他设备的功能移植到MOTO手机上,或者让MOTO手机运行其他设备的软件,增强设备的兼容性和可玩性。 10. **学习资源**:对于学生和新手开发者,MOTO手机原代码提供了...

    全国手机号归属地

    综上所述,全国手机号归属地查询是一个涉及数据库管理、SQL编程、数据导入、查询优化以及合规性等多个IT领域的实践项目。在实际操作中,我们需要结合这些知识点来构建一个高效、安全且合规的解决方案。

Global site tag (gtag.js) - Google Analytics