博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
android性能优化
阅读量:4292 次
发布时间:2019-05-27

本文共 1130 字,大约阅读时间需要 3 分钟。

栈 Stack
:存放基本类型的数据和对象的引用..但对象本身不存放在栈中,而是存放在堆中.
一个类的实例消耗大约15字节的内存.
堆 Heap
:堆内存用来存放由new 创建的对象和数组.在堆中分配的内存,由Java虚拟机自动垃圾回收来(GC)管理.
静态存储区域 static Filed
:Java 在内存中专门划分了一个静态存储区域来管理.
常量池 Constant Pool

: 就是该类型所用到的常量的一个有序集合.

Tips:
1,对常量使用 static 修饰符.
2,使用静态方法,静态方法会比普通方法提高 15%左右的访问速度.
3,减少成员变量.可以局部,就不要成员.
4,减少不必要的对象,使用基础类型会比使用对象更加节省资源.
5,尽量不要使用 枚举,少用迭代器
6,对于,Cursor,Receiver,Sensor,File 等对象,注意创建回收,注册和销毁关闭.
7,避免使用 IOC 框架,大量的反射依然会带来性能的下降.
8,使用 RenderScript,OpenGL 来进行非常复杂的绘图操作.
9,使用 SurfaceView 来替代 View 进行大量,频繁的绘图操作.

10,尽量使用视图缓存.而不是每次都执行 inflate().来剖析视图.

Android 还有一些性能优化的方法:

●  首先内存方面,可以参考 Android 堆内存也可自己定义大小 和 优化Dalvik虚拟机的堆内存分配
 
●  基础类型上,因为Java没有实际的指针,在敏感运算方面还是要借助NDK来完成。Android 123提示游戏开发者,这点比较有意思的
是Google 推出NDK可能是帮助游戏开发人员,比如OpenGL ES 的支持有明显的改观,本地代码操作图形界面是很必要的。
 
●  图形对象优化,这里要说的是Android上的Bitmap对象销毁,可以借助recycle()方法显示让GC回收一个Bitmap对象,通常对一个
不用的Bitmap可以使用下面的方式,如
 
if(bitmapObject.isRecycled()==false) //如果没有回收  
         bitmapObject.recycle();   
 
●  目前系统对动画支持比较弱智对于常规应用的补间过渡效果可以,但是对于游戏而言一般的美工可能习惯了GIF方式的统一处理,
目前Android系统仅能预览GIF的第一帧,可以借助J2ME中通过线程和自己写解析器的方式来读取GIF89格式的资源。
 
● 对于大多数Android手机没有过多的物理按键可能我们需要想象下了做好手势识别 GestureDetector 和重力感应来实现操控。通
常我们还要考虑误操作问题的降噪处理。

转载地址:http://cdegi.baihongyu.com/

你可能感兴趣的文章
javascript闭包详解
查看>>
javascript类的创建与实例对象
查看>>
javascript原型详解(1)
查看>>
netty源码分析之-处理器详解(9)
查看>>
javascript原型对象存在的问题(3)
查看>>
javascript原型继承(1)
查看>>
javascript原型继承-实现extjs底层继承(2)
查看>>
javascript设计模式-建立接口的方式(1)
查看>>
javascript设计模式-单体singleton模式(2)
查看>>
javascript设计模式-链式编程(3)
查看>>
大型高并发与高可用缓存架构总结
查看>>
javascript设计模式-工厂模式(4)
查看>>
javascript设计模式-组合模式(6)
查看>>
javascript设计模式-门面模式(7)
查看>>
javascript设计模式-享元模式(10)
查看>>
javascript设计模式-代理模式(11)
查看>>
Executor相关源码分析
查看>>
react之setState解析
查看>>
elasticsearch7.3版本已经不需要额外安装中文分词插件了
查看>>
【重大好消息】elasticsearch 7.3版本已经可以免费使用x-pack就可以设置账号和密码了,让你的数据不再裸奔
查看>>