首页 > 行业知识

莲湖网站建模板:APP开发中性能如何优化?

2019-08-08
关注

**域名回收专员

5分钟前,TA获得超过2个赞

莲湖网站建模板:APP开发中***能如何优化?
 随着移动互联网的普及,手机已成为***常工作和生活的标准。面对庞大的移动用户流量,许多企业不仅开展PC端网站建设,还建立移动网站,APP开发,小程序开发,创建全面的互联网解决方案,实现品牌和渠道的快速沟通。今天,将向您介绍APP的一些***能优化建议,以便移动用户可以更顺畅地使用APP,并且手机将占用更少的空间,这将改善移动用户的用户体验。
 
 1.合理使用itmap:使用Bitmap后,需要及时调用recycle()方法释放Bitmap占用的内存空间,而不是等待Android系统释放。
 
 代码示例:
 
 //首先判断它是否已被回收
 
 if(bitmap!= null!bitmap.isRecycled()){
 
 Bitmap.recycle();
 
 位图= NULL;
 
 }
 
 的System.gc();
 
 2.对常量使用静态***终修饰符
 
 static final int intVal = 42;
 
 静态***终字符串strVal =“Hello,world!”;
 
 将方法或类声明为final不会导致***能提升,但会帮助编译器优化代码。例如,如果编译器知道getter方法不会被重载,编译器将内联调用它。
 
 3.静态方法而不是虚方法
 
 如果您不需要访问对象的字段,请将方法设置为静态,并且调用将加速15?o 20?这也是一种很好的做法,您可以从方法声明中看到调用此方法方法不需要更新此对象的状态。
 
 4.减少不必要的全局变量
 
 尽量避免静态成员变量引用消耗太多实例的资源,例如Context,因为Context引用超出了自己莲湖网站建模板 的生命周期,导致Context泄漏。因此,尝试使用Context类型的Application。通过调用Context.getApplicationContext()或Activity.getApplication()可以轻松获得Application对象。
 
 5.避免创建不必要的对象:避免创建短暂的临时对象。减少对象创建可减少垃圾收集并减少对用户体验的影响。
 
 例如,当您经常操作字符串时,请使用StringBuffer而不是String。对于所有基本类型的所有组合:int数组优于Integer数组,这也总结了两个并行int数组比(int,int)对象数组执行得更好的基本事实。避免使用浮点数。通常的经验法则是,在Android设备中,浮点数的速度是整数的两倍。
 
 7.使用实体模拟接口
 
 假设您有一个HashMap对象,您可以将其声明为HashMap或Map:
 
 Map map1 = new HashMap();
 
 HashMap map2 = new HashMap();
 
 8.访问成员变量比访问局部变量要慢得多
 
 For循环:不要在for的第二个条件中调用任何方法
 
 反例:for(int i = 0; i   
 正例:int count = this.mCount; int count = this.getCount();
 
 For(int i = 0; i   
 }
 
 9.资源类对莲湖网站建模板象应在不使用时及时关闭,以便及时回收缓存的数据。
 
 例如,Cursor,File等需要***终关闭资源对象,以避免资源对象在异常***况下未发布的隐患。
 
 10.注册广播接收器,注册观察员等需要在不使用时取消注册。
 
 例如:假设在Activity,侦听系统的电话服务中,您可以在Activity中定义PhoneStateListener对象,并在TelephoneManager服务中注册它。对于Activity对象,理论上,Activity对象将在Activity退出后释放。但是,如果在释放Activity对象时忘记取消先前注册的PhoneStateListener对象,则GC不会回收活动。如果您继续进入和退出此活动,由于无法回收大量活动对象,***终会导致频繁的GC***况甚至内存不足。

  
  11.有效利用系统自有资源,Android系统内置了大量资源,如字符串,颜***定义,常见的Icon图像,动画样式,以及简单的布局,没有特殊要求,资源可以直接在程序中引用。这不仅减少了内存开销,还减小了apk的大小。
  
  12.查看重用,使用ViewHolder实现ConvertView重用,这基本上是对所有容器控件的处理,如ListView,GridView等。
  
  13.当使用***优数据类型时,对象的数量相对较少,ArrayMap取代了使用HashMap,避免使用枚举,枚举变量非常方便,但遗憾的是它会牺牲执行速度并大大增加文件尺寸。
  
  14.图像内存优化
  
  在Android提供的各种位图格式中,***高的是RGB_8888,它也是系统的默认位图格式。其他人减少了位图通道,这可以减少内存开销,例如一些部分图像,小屏幕移动电话或图像质量要求。对于不高的场景,您可以使用RGB_565或ARGB_4444等图像格式。
  
  图像缩放:inSampleSize,inScaled,inDensity和inTargetDensity
  
  位图内存重用:使用inBitmap可以与LruCache结合使用。
  
  推荐的开源库:picasso,Glide
  
  15. Android网络通讯框架Volley。
  
  16.合理使用对象池和线程池。
  
  17.用IntentService替换服务。
  
  IntentService优点:新开的线程;顺序处理意图;执行后自动退出。
  
  18.尽量不要将大容量库用于一个或两个功能。
  
  19.***好在不使用对象时显式设置Null以减少GC开销。
  
  20.了解有关并使用类库的更多信息。
  
  一些例子
  
  2.使用JIT的Nexus One上的自编码循环的System.arraycopy方法快9倍。
  
  3. android.text.format包下的Formatter类提供了IP地址转换和文件大小转换的方法。 DateFormat类提供各种时间转换,是一种非常有效的方法。
  
  4. TextUtils类,用于字符串处理Android为我们提供了一个简单实用的TextUtils类,如果你处理相对简单的内容,不必考虑正则表达式,在android.text.TextUtils中尝试这个类
  
  5.高***能MemoryFile类主要用于I / O操作,主要与外部存储相关的I / O操作有关。 MemoryFile将NAND或SD卡上的文件转换为内存以进行修改处理。使用高速RAM代替ROM或SD卡,***能自然得到改善。对于Android手机,功耗也会降低。这个类实现了很多函数,直接从Object继承,并直接在C下通过JNI执行。
  
  内存优化工具
  
  推荐的内存分析工具:适用于Android 莲湖网站建模板Studio的内存监视器
  
  推荐内存泄漏分析工作:MAT for eclipse,Android Studio
  
  内存泄漏监控工具:LeakCanary
  
  
  
  

扫码立即咨询域名回收 疑难问题

已解决 1836 人的问题

热门问题

问题解答
域名回收网

1、域名回收平台都回收哪些域名?

2、高价回收域名安全吗?

3、过期域名回收**吗?

4、阿里云域名回收步骤?

5、备案域名回收吗?

立即咨询
微信扫码, 立即联系
域名回收高价
微信:a905200113
复制微信
微信扫码, 立即联系
域名回收平台
回收专员微信:a905200113
复制微信