神州电商网站建设

申请试用

新闻中心
您当前位置:首页>新闻中心
新闻动态News center
产品动态 公司新闻 行业新闻
最新动态
  • 电商时代自动售卖行业未来的前景怎么样? 2018-02-08

    电商时代自动售卖行业未来的前景怎么样?说起自动行业的话就不能不提日本,日本就是因为发达自动售卖机而导致线上生存不下去,那么在国内我们的自动售卖行业前景会怎么样?企业必须建立基于市场变化的快速反应机制,...

  • 深圳分销商城系统如何快速裂变2000人的微商团队? 2018-02-08

    深圳分销商城系统如何快速裂变2000人的微商团队?1. 激活朋友圈老粉丝常用朋友圈激活方法有四招:点赞、评论、传播、搞活动。俗话说:“有关系找关系,没关系强迫发生关系”,每天花上两个小时,早上7-8点,中午12-1...

  • 运营在互联网公司是怎么样的存在? 2018-02-08

    运营在互联网公司是怎么样的存在?联网公司三大支柱大家都是知道的,产品、运营和技术。技术给人的印象是敲代码的,把产品经理画出来的图给做出来;而产品经理就是分析现状想东西的,并且很多出色公司的CEO都是产品...

  • 神州电商:为什么现在程序员要会Machine Learning? 2018-02-07

    神州电商:为什么现在程序员要会Machine Learning?机器学习(Machine Learning, ML)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习...

  • 神州电商告诉你微软的MSN为什么比不过腾讯QQ 2018-02-07

    神州电商告诉你微软的MSN为什么比不过腾讯QQMSN是微软公司旗下的门户的网站,在1995年正式上线,是1999年推出的MSN Messenger。经历了多次的变革之后,现在以Skype为主流。MSN 作为即时通讯软件,可以进行文字聊天、...

神州电商-APP性能该怎么优化?

2017-12-14

浏览 0 次   来源:admin

    神州电商-APP性能该怎么优化?

  1. itmap的合理使用:使用Bitmap过后,就需要及时的调用recycle()方法来释放Bitmap占用的内存空间,而不要等Android系统来进行释放。

  代码示例:

  // 先判断是否已经回收

  if(bitmap != null && !bitmap.isRecycled()){

  bitmap.recycle();

  bitmap = null;

  }

  System.gc();

  2. 对常量使用static final修饰符

  static final int intVal = 42;

  static final String strVal = “Hello, world!”;

  将一个方法或类声明为final不会带来性能的提升,但是会帮助编译器优化代码。举例说,如果编译器知道一个getter方法不会被重载,那么编译器会对其采用内联调用。

  3. 静态方法代替虚拟方法

  如果不需要访问某对象的字段,将方法设置为静态,调用会加速15%到20%。这也是一种好的做法,因为你可以从方法声明中看出调用该方法不需要更新此对象的状态。

  4. 减少不必要的全局变量

  尽量避免static成员变量引用资源耗费过多的实例,比如Context,因为Context的引用超过它本身的生命周期,会导致Context泄漏。所以尽量使用Application这种Context类型。 可以通过调用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();分销商城系统

  哪个更好呢?

  按照传统的观点Map会更好些,因为这样你可以改变他的具体实现类,只要这个类继承自Map接口。传统的观点对于传统的程序是正确的,但是它并不适合嵌入式系统。调用一个接口的引用会比调用实体类的引用多花费一倍的时间。如果HashMap完全适合你的程序,那么使用Map就没有什么价值。如果有些地方你不能确定,先避免使用Map,剩下的交给IDE提供的重构功能好了。(当然公共API是一个例外:一个好的API常常会牺牲一些性能)

  8. 访问成员变量比访问本地变量慢得多

  for循环:不要在for的第二个条件中调用任何方法

  反例:for(int i =0; i < this.getCount(); i++) {}

  正例:int count = this.mCount;  int count = this.getCount();

  for(int i =0; i < count; i++)  {

    }

  9. 资源类对象在不使用的时候,应该及时关闭它们,方便它们的缓存数据能够及时回收。

  例如:Cursor、File文件等都需要在finally中关闭资源性对象,避免在异常情况下资源对象未被释放的隐患

  10. 注册广播接收器、注册观察者等需要在不使用的时候取消注册。

  例如:假设在Activity中,监听系统的电话服务,可以在Activity中定义一个PhoneStateListener的对象,同时将它注册到TelephoneManager服务中。对于Activity对象,理论上要求Activity退出后该Activity的对象就会被释放掉。但是如果在释放Activity对象时,忘记取消之前注册的PhoneStateListener对象,则会导致Activity无法被GC回收。如果不断的进出这个Activity,则最终会由于大量的Activity对象没有办法被回收而引起频繁的GC情况,甚至导致Out Of Memory。

  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替代Service。

  IntentService优势:新开线程;顺序处理Intent;执行完自动退出。

  18. 尽量不要因一两个特性而使用大体积类库。

  19. 对象不用时最好显式置为Null可以减少GC开销。

    神州电商专注于分销商城系统_深圳分销商城系统_微商城分销系统_商城系统开发_微信商城_APP定制_神州电商等业务 有需要请拨打热线:15118148970 曹小姐


返回

上一篇:微信号能修改了!面对这个喜讯你还能冷静吗?

下一篇:神州电商为你带来常见又有效的分销商城营销手法

神州电商(深圳)有限公司 网站建设 粤ICP备16122026号-2

QQ:849924915 Tel:0755-23281900 15118148970

地址:深圳市龙华新区观澜街道大和路观澜商务大厦B623-624室

在线客服 地图导航