摘要: 一、概述 1二、Android(Java)中常见的容易引起内存泄漏的不良代码 1(一) 查询数据库没有关闭游标 2(二) 构造Adapter时,没有使用缓存的 convertView 3(三) Bitmap对象不在使用时调用recycle()释放内存 4(四) 释放对象的引用 4(五) 其他 5三、内存监测工具 DDMS --> Heap 5四、内存分析工具 MAT(Memory Analyzer Tool) 7(一) 生成.hprof文件 7(二) 使用MAT导入.hprof文件 8(三) 使用MAT的视图工具分析内存 8一、概述 Java编程中经常容易被忽视,但本身又十分重要的一个问 阅读全文
posted @ 2012-11-29 16:18 忆冉 阅读(744) 评论(0) 推荐(0) 编辑
摘要: 一、Android的内存机制Android的程序由Java语言编写,所以Android的内存管理与Java的内存管理相似。程序员通过new为对象分配内存,所有对象在java堆内分配空间;然而对象的释放是由垃圾回收器来完成的。C/C++中的内存机制是“谁污染,谁治理”,java的就比较人性化了,给我们请了一个专门的清洁工(GC)。那么GC怎么能够确认某一个对象是不是已经被废弃了呢?Java采用了有向图的原理。Java将引用关系考虑为图的有向边,有向边从引用者指向引用对象。线程对象可以作为有向图的起始顶点,该图就是从起始顶点开始的一棵树,根顶点可以到达的对象都是有效对象,GC不会回收这些对象。如果 阅读全文
posted @ 2012-11-29 16:17 忆冉 阅读(5539) 评论(0) 推荐(0) 编辑
摘要: 前面给大家分享了listview中adapter的开发技巧,下面我继续跟着2009年google开发大会上当分享的技巧给大家分享背景和图像的开发技巧。视图背景的优化视图的背景是根据视图的大小自动调节的。不管图像的尺寸是多大,如果图像做为视图的背景的时候,图像会自动缩放来匹配填充视图的大小。当视图大小和背景图片的尺寸不匹配的的时候,系统会自动的缩放图片。这样的自动调整如果多次甚至大量的出现在我们的应用中,那么势必会造成程序加载到延时、效率降低。那么我们如何尽量的避免自动缩放呢?一、提供的背景图片正好和视图的大小一致我们在制作程序的时候选择的背景图片正好和视图的大小一致,这样可以避免背景图标的自动 阅读全文
posted @ 2012-11-29 15:40 忆冉 阅读(3938) 评论(0) 推荐(0) 编辑
摘要: ListView的Adapter的作用如下图所示:Adapter的作用就是ListView界面与数据之间的桥梁,当列表里的每一项显示到页面时,都会调用Adapter的getView方法返回一个View。想过没有? 在我们的列表有1000000项时会是什么样的?是不是会占用极大的系统资源?先看看下面的代码:public View getView(int position, View convertView, ViewGroup parent) {View item = mInflater.inflate(R.layout.list_item_icon_text, null);((TextView 阅读全文
posted @ 2012-11-29 14:57 忆冉 阅读(289) 评论(0) 推荐(0) 编辑
摘要: xml界面代码:<?xml version="1.0" encoding="UTF-8"?><TabHost android:id="@android:id/tabhost" android:background="@android:color/black" android:layout_width="fill_parent" android:layout_height="fill_parent" xmlns:android="http://sch 阅读全文
posted @ 2012-11-29 14:38 忆冉 阅读(2966) 评论(0) 推荐(0) 编辑