内存优化

       若想做出 一款优秀的app 。除了 设计+,功能+ 外 还有一个很重要的就是体验。那么如何才能有一个良好的用户体验呢,就是用的时候不卡,没事别崩溃。。。所以有些时候并不是我们android 系统卡 是app 卡了。接下来我准备介绍几点关于不卡的优化问题。         
第一点 布局优化
布局优化,那么布局优化到底有什么作用。我们知道android渲染ui 它是由一定限度的超过这个临界点就会造成ui渲染的卡顿,这样用户 用起来就很卡。所以做好布局优化也是很重要的
1.减少布局层数.过度的层数嵌套必然导致ui渲染速度变慢.所以开发者在开发过程中,除了兼顾ui效果外.也别忘了不要过度的嵌套布局层数. 
2.不必要首先加载的布局可以在需要的时候加载进来.比如我们app 都会有个网络加载出错的也页面.这个页面是不需要刚进入就加载的.所以这时候可以使用viewstub  <viewsub> 是一个大小为0 不可见的view 。所以用这个 标签来实现动态载入的需求.


<viewstub
        android:id="@+id/stub_import"  
    android:inflatedId="@+id/panel_import"  
    android:layout="@layout/net_error" //这里引用了一个布局作为网络出错的布局  
    android:layout_width="fill_parent"  
    android:layout_height="wrap_content"  
    android:layout_gravity="bottom" />  

那么如何才能在需要的时候加载布局使用下面的代码可以在需要使用的时候讲viewstub 被引用的布局替换掉从而显示出来
((ViewStub) findViewById(R.id.stub_import)).setVisibility(View.VISIBLE);  
// or  
View importPanel = ((ViewStub) findViewById(R.id.stub_import)).inflate(); 


第二点 绘制优化 
绘制优化 主要我觉得就是我们自定义view 的优化
不要在ondraw 方法中不要创建对象  还有不要执行耗时的任务 。因为ondraw 方法可能会被多次调用。这样在这里创建对象势必会造成对象的大量创建。导致gc 频繁回收 势必会消耗内存。执行耗时任务也是同样的道理。

第三点 内存优化。

内存优化就涉及到很多方面了。我这里也是简单了的列举了几个方面希望能帮助到大家 
1.Bitmap的优化 。加载bitmap 可以在加载之前通过 这个 bitmapfactory 计算图片的大小,在根据实际情况进行等比例压缩,还有就是在上传的时候 如果对图片的质量要求不高可以适当的处理下减少图片的画质来减少上传的内存消耗。也能缩短上传时间。

2.尽量使用静态内部类。 若是非静态内部类。同时又持有了我们activity的引用这样在activity退出的时候,内部类持有我们activity的引用就不会释放activity,这样很容易造成内存泄露。可以改成静态内部类这样 传递一个activity的weakreference 对象就可以解决对象不能及时释放的问题。很常见的就是handler 

3.多线程解决复杂计算 .占用CPU较多的数据操作尽可能放在一个单独的线程中进行,通过handler等方式把执行的结果交于UI线程显示。特别是针对的网络访问,数据库查询,和复杂的算法。另外值得注意的是,应用开发中自定义View的时候,交互部分,千万不要写成线程不断刷新界面显示,而是根据TouchListener事件主动触发界面的更新。

4.  减少不必要的全局变量尽量避免static成员变量引用资源耗费过多的实例,比如Context。Android提供了很健全的消息传递机制(Intent)和任务模型(Handler),可以通过传递或事件的方式,防止一些不必要的全局变量。

第四点内存方面的小建议

1.inputstream 流及时关闭。还有 cursor 数据库查询等 。这些的细小的东西 也不要遗漏。当然现在很多框架的出现 ,可以减少我们很多麻烦。 

2.for循环不要在 括号内计算 集合的size 如 for(int i=0;i<list.size();i++) 因为每次循环都会计算集合的size 这是没有必要的 。

3.常量用staticfinal 修饰 

        我这里也只是一些平时的积累。内存优化是一个很深的东西。没有谁能完全的掌握。只能是在往里探索。所以大家还是要多多深入研究。多多思考。多积累。话说csdn 这个编辑器 我真是不会用每次发布的时候发现都是格式问题。丑了点大家将就看。哈哈。
 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值