Android 优化 篇

Android应用程序窗口(Activity)的运行上下文环境(Context)的创建过程分析

1. 能用 Application  的 上下文 就用。 因为如果用 Activity 的 Context ,如果用太多的 Activity, 如果 有些资源 还在引用 Activity的context的资源,会导致 这个 Activity 没有被回收,有可能导致 oom、

2. bitmap 回收

3. Dialog 用完之后, dismiss 之后,设为 null。

4. 图片不要做内存缓存,可以做磁盘缓存。 例如 Volley 的 下载图片。 做磁盘缓存

源码分析:

    protected void onDestroy() {
        if (DEBUG_LIFECYCLE) Slog.v(TAG, "onDestroy " + this);
        mCalled = true;

        // dismiss any dialogs we are managing.
        if (mManagedDialogs != null) {
            final int numDialogs = mManagedDialogs.size();
            for (int i = 0; i < numDialogs; i++) {
                final ManagedDialog md = mManagedDialogs.valueAt(i);
                if (md.mDialog.isShowing()) {
                    md.mDialog.dismiss();
                }
            }
            mManagedDialogs = null;
        }

        // close any cursors we are managing.
        synchronized (mManagedCursors) {
            int numCursors = mManagedCursors.size();
            for (int i = 0; i < numCursors; i++) {
                ManagedCursor c = mManagedCursors.get(i);
                if (c != null) {
                    c.mCursor.close();
                }
            }
            mManagedCursors.clear();
        }

        // Close any open search dialog
        if (mSearchManager != null) {
            mSearchManager.stopSearch();
        }

        getApplication().dispatchActivityDestroyed(this);
    }

Android 优化 篇

时间: 2024-09-30 18:02:35

Android 优化 篇的相关文章

Android 优化篇

http://my.oschina.net/u/586684/blog/207844 1. 使用保守的Service 2. 当视图变为隐藏状态后释放内存: 当用户跳转到不同的应用并且你的视图不再显示时, 你应该释放应用视图所占的资源. 这时释放所占用的资源能显著的提高系统的缓存处理容量, 并且对用户的体验质量有直接的影响. 使用优化后的数据容器: 比如 SparseArray, SparseBooleanArray 和 LongSparseArray. 传统的 HashMap 在内存上的实现十分

【转】Android性能优化之布局优化篇

转自:http://blog.csdn.net/feiduclear_up/article/details/46670433 Android性能优化之布局优化篇 分类: andorid 开发2015-06-29 16:28 238人阅读 评论(0) 收藏 举报 性能布局viewStubinclude布局优化 目录(?)[-] Hierarchy View检测布局嵌套层次 显示GPU过度绘制 懒加载布局 ViewStub Android Lint 工具 怎样才能写出优秀的Android App,是

Android学习之——优化篇(2)

一.高级优化 上篇主要从初级优化的方式,本篇主要将从程序运行性能的角度出发,分析各种常用方案的不足,并给出对象池技术.基础数据类型替换法.屏蔽函数计算三种能够节省资源开销和处理器时间的优化策略. 目前普遍采用的优化方案有:     · 优化循环,通过重新组织重复的子表达式来提高循环体的运行性能     · 减少使用对象的数量来提高运行性能     · 缩减网络传输数据来缩短等待时间等 本篇学习另外三种性能优化的策略:     1. 采用对象池技术,提高对象的利用率 Java 中创建和释放对象会占

【朝花夕拾】Android性能优化篇之(一)序言及JVM篇

序言        笔者从事Anroid开发有些年头了,深知掌握Anroid性能优化方面的知识的必要性,这是一个程序员必须修炼的内功.在面试中,它是面试官的挚爱,在工作中,它是代码质量的拦路虎,其重要性可见一斑.在团队中,性能优化的工作又往往由经验丰富的老师傅来完成,可见要做好性能优化,绝不是一件容易的事情. 性能优化方面涉及的知识点比较广,有理论基础知识,也有实际操作技能,笔者将通过一系列的文章来进行整理,将主要包括Java虚拟机.内存分配.垃圾回收,android虚拟机.进程管理.内存优化.

【朝花夕拾】Android性能优化篇之(五)Android虚拟机简介

前言 Android虚拟机的使用,使得android应用和Linux内核分离,这样做使得android系统更稳定可靠,比如程序中即使包含恶意代码,也不会直接影响系统文件:也提高了跨平台兼容性.在Android4.4以前的系统中,Android系统均采用Dalvik作为运行andorid程序的虚拟机,在android发展中具有举足轻重的地位,而Android 5.0及以后的系统使用ART虚拟机取代Dalvik,在性能上做了很大的优化.本文将对这两款虚拟机做一些介绍,主要内容如下: 一.什么是Dal

Android中级篇之百度地图SDK v3.5.0-一步一步带你仿各大主流APP地图定位移动选址功能

定位+移动选址 百学须先立志-学前须知: 我们经常在各大主流APP上要求被写上地址,如百度外卖.爱鲜蜂收货地址等等:其中他们大多数是可以让我们在地图上移动选址.就如下面这段GIF演示的一样: 尽信书,不如无书-能学到什么? 1.地图状态MapStatus类及监听setOnMapStatusChangeListener 2.定位LocationClient类 3.反地理编码GeoCoder类 工欲善其事必先利其器-申请Key 百度地图访问应用(AK)申请地址:http://lbsyun.baidu

你该知道的东西 &lt;Android优化&gt;

前言 本篇文章为Android优化的布局部分,该部分应该是Android中很重要的,无论是在自定义控件中,还是在简单的书写布局时,都应该尽量遵循一些优化原则,这样布局的绘制效率才会更高,体验才能更好. 一 优化layout的层级 Layout结构如果太复杂,Android的绘制过程就会很复杂,measure过程就会很复杂,我分析的View绘制机制中详细介绍了整个测量.布局和绘制过程,过于复杂.嵌套的布局会造成性能问题. 1.1 避免嵌套 嵌套的 LinearLayout 可能会使得 View 的

【朝花夕拾】Android性能篇之(六)Android进程管理机制

前言        Android系统与其他操作系统有个很不一样的地方,就是其他操作系统尽可能移除不再活动的进程,从而尽可能保证多的内存空间,而Android系统却是反其道而行之,尽可能保留进程.Android这样设计有什么优势呢?又是通过怎样的方法来管理这些被保留的进程的呢?Android用户又该如何正确使用手机从而更好发挥Android系统所特有的优势呢?本文将一一为您解开这些谜团.        一.Android进程管理的特殊设计 Linux系统对进程的管理方式是一旦进程活动停止,系统就

Android优化App启动时间

原文地址:https://developer.android.com/topic/performance/vitals/launch-time 用户希望App能够快速相应和加载,应用启动缓慢会带来糟糕的用户体验,导致用户恶评,甚至会卸载你的应用. 这篇文章提供的信息能够帮助你优化应用的启动时间.首先,我们先来了解应用启动的内部原理,接下来,我们会讨论如何分析启动性能.最后,最后我们会介绍一些影响启动性能的常见问题,并会给出相应的解决办法. 应用启动原理 应用启动可以分为三种类型,冷启动,暖启动,