上一页 1 2 3 4 5 6 7 8 ··· 14 下一页
摘要: 本篇博文主要讨论一下复杂界面中常用的一种技术——界面延迟加载技术。 有时候,我们的页面中可能会包含一些布局,这些布局默认是隐藏的,当用户触发了一定的操作之后,隐藏的布局才会显示出来。比如,我们有一个Activity用来显示好友的列表,当用户点击Menu中的“导入”以后,在当前的Activity中才会显示出一个导入好友的布局界面。从需求的角度来说,这个导入功能,一般情况下用户是不使用的。即大部分时候... 阅读全文
posted @ 2016-10-01 21:22 杨伟乔 阅读(175) 评论(0) 推荐(0) 编辑
摘要: Android编程中一个共同的困难就是协调Activity的生命周期和长时间运行的任务(task),并且要避免可能的内存泄露。思考下面Activity的代码,在它启动的时候开启一个线程并循环执行任务。 1 /** 2 * 一个展示线程如何在配置变化中存活下来的例子(配置变化会导致创 3 * 建线程的Activity被销毁)。代码中的Activity泄露了,因为线程被实 4 * 例为一... 阅读全文
posted @ 2016-10-01 21:22 杨伟乔 阅读(3881) 评论(0) 推荐(0) 编辑
摘要: 在Android应用开发过程中,屏幕上控件的布局代码和程序的逻辑代码通常是分开的。界面的布局代码是放在一个独立的xml文件中的,这个文件里面是树型组织的,控制着页面的布局。通常,在这个页面中会用到很多控件,控件会用到很多的资源。Android系统本身有很多的资源,包括各种各样的字符串、图片、动画、样式和布局等等,这些都可以在应用程序中直接使用。这样做的好处很多,既可以减少内存的使用,又可以减少部分... 阅读全文
posted @ 2016-10-01 21:21 杨伟乔 阅读(237) 评论(0) 推荐(0) 编辑
摘要: 来自为知笔记(Wiz) 阅读全文
posted @ 2016-10-01 21:15 杨伟乔 阅读(106) 评论(0) 推荐(0) 编辑
摘要: 通常我们写程序,都是在项目计划的压力下完成的,此时完成的代码可以完成具体业务逻辑,但是性能不一定是最优化的。一般来说,优秀的程序员在写完代码之后都会不断的对代码进行重构。重构的好处有很多,其中一点,就是对代码进行优化,提高软件的性能。下面我们就从几个方面来了解Android开发过程中的代码优化。 1)静态变量引起内存泄露在代码优化的过程中,我们需要对代码中的静态变量特别留意。静态变量是类相关的变量... 阅读全文
posted @ 2016-10-01 21:15 杨伟乔 阅读(192) 评论(0) 推荐(0) 编辑
摘要: 为什么会有OOMandroid系统app的每个进程或者说每个虚拟机(一个进程一个虚拟机)有最大内存限制(不同手机/版本限制不同), 如果应用申请的内存超过了限制, 系统就会抛出OOM异常. 这个整个设备的身影内存没关系. 较早的android系统一个虚拟机最多16M内存, 当一个app启动后, 如果虚拟机不停的申请内存资源来加载图片, 最终会OOM.上面说的是虚拟机可以申请的最大内存, 对于h... 阅读全文
posted @ 2016-10-01 21:12 杨伟乔 阅读(120) 评论(0) 推荐(0) 编辑
摘要: 1.资源对象没关闭造成的内存泄漏描述:资源性对象比如(Cursor,File文件等)往往都用了一些缓冲,我们在不使用的时候,应该及时关闭它们,以便它们的缓冲及时回收内存。它们的缓冲不仅存在于java虚拟机内,还存在于java虚拟机外。如果我们仅仅是把它的引用设置为null,而不关闭它们,往往会造成内存泄漏。因为有些资源性对象,比如SQLiteCursor(在析构函数finalize(),如果我们没... 阅读全文
posted @ 2016-10-01 21:12 杨伟乔 阅读(227) 评论(0) 推荐(0) 编辑
摘要: 在Android应用里,最耗费内存的就是图片资源。而且在Android系统中,读取位图Bitmap时,分给虚拟机中的图片的堆栈大小只有8M,如果超出了,就会出现OutOfMemory异常。所以,对于图片的内存优化,是Android应用开发中比较重要的内容。 1) 要及时回收Bitmap的内存Bitmap类有一个方法recycle(),从方法名可以看出意思是回收。这里就有疑问了,Android系统有... 阅读全文
posted @ 2016-10-01 21:11 杨伟乔 阅读(151) 评论(0) 推荐(0) 编辑
摘要: 多线程:★★★★进程:正在进行中的程序。其实进程就是一个应用程序运行时的内存分配空间。线程:其实就是进程中一个程序执行控制单元,一条执行路径。进程负责的是应用程序的空间的标示。线程负责的是应用程序的执行顺序。 一个进程至少有一个线程在运行,当一个进程中出现多个线程时,就称这个应用程序是多线程应用程序,每个线程在栈区中都有自己的执行空间,自己的方法区、自己的变量。jvm在启动的时,首先有一个主线程,... 阅读全文
posted @ 2016-10-01 21:03 杨伟乔 阅读(139) 评论(0) 推荐(0) 编辑
摘要: 集合框架:★★★★★,用于存储数据的容器。特点:1:对象封装数据,对象多了也需要存储。集合用于存储对象。2:对象的个数确定可以使用数组,但是不确定怎么办?可以用集合。因为集合是可变长度的。 集合和数组的区别:1:数组是固定长度的;集合可变长度的。2:数组可以存储基本数据类型,也可以存储引用数据类型;集合只能存储引用数据类型。3:数组存储的元素必须是同一个数据类型;集合存储的对象可以是不同数据类型。... 阅读全文
posted @ 2016-10-01 21:03 杨伟乔 阅读(187) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 ··· 14 下一页