Android异常与性能优化三
1、从application类开始,创建activity等
2、进程已存在,并保留在了后台(如果没有被系统杀死),会走application类
3、冷启动和热启动的启动特点
冷启动启动时会走application这个类,而热启动由于在后台中保有了这个进程,所以不会走application这个类,而是直接走activity这个类
4、
5、
6、
7、
二、其它的优化
1、
①静态变量等数据由于进程已经被杀死而被初始化
在Android中应用进程不是安全的,它包括application对象、进程变量以及其它一些数据,在进程级别内,不会一直保存在内存里面,有时候会被kill掉,或者在内存不够的时候被系统回收掉,app是会被重新打开的。app是会被重新启动的,Android系统会重新创建一个新的application对象,启动上次用户离开时的activity,造成系统重来没有杀掉这个app的假像。由于进程被杀死掉了,又重新进行了初始化,这里就造成了数据不安全的概念。这也就是尽量不要在Android中使用静态变量存储数据的概念。
②使用其它数据传输方式:文件/sp/contentProvider
2、
每个进程都维护了一个sharedpreference副本,当一个进程在操作的时候,另一个进程是不能访问的。
当sp文件过大时,会造成ui 卡顿
3、
serializeble在序列化的过程中会产生大量的临时变量,从而引起频繁的垃圾回收,频繁的垃圾回收会影响ui的性能,造成ui卡顿、内存抖动,最后有可能造成oom这种情况。
parcelable是Android中自带的一个序列化方式,特别是在使用内存的时候,parcelable比serializeble性能更好。但是parcelable不能序列化存储在磁盘中的数据。parcelable的本质是为了实现数据更好地在进程之间进行传递。它其实并不是一个通用的序列化机制。它用的场合基本上都是在Android中的进程间通信。所以要改变任何parcelable的底层实现的时候,都可能会导致数据不可读取。所以,尽量使用serializeble来序列化
4、
5、