位置: 编程技术 - 正文

android:内存优化总结(android内存优化 简书)

编辑:rootadmin

推荐整理分享android:内存优化总结(android内存优化 简书),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:android内存优化三 简书,android内存优化三 简书,android内存优化内存泄露 简书,android内存优化内存泄露 简书,android内存优化工具,Android内存优化,android内存优化面试,android内存优化面试,内容如对您有帮助,希望把文章链接给更多的朋友!

android的内存优化对于大型的android项目来说,十分重要!今天就选几个常见的列举一下

1. Context的引用

在Activity和Fragment之外,使用Context的时候,尽量使用Application Context,在AndroidAnnotations中,也即是:

原因:应用的Context的生命周期很长,它与我们的app共存亡;我们尽量不要去hold Activity的Context,因为它的生命周期较短,否者,可能出现,Activity退出后,其Context依然被EBean的对象所持有。

2.Bitmap

Bitmap是android占用内存的大户,我们需要注意:

2.1 不在需要的Bitmap,要及时调用recycle()进行销毁。

2.2 设当的时候,使用Bitmap的时候,可以设置一定的采样率

3.Cursor

我们在读取第三方应用或者系统的ContentProvider的时候,通常会通过调用getContentResolver()的增删改查方法,获得Cursor对象,然后进行操作。操作完成后,务必要记得关掉!

4.ListView和GridView

ListView和GridView要进行View的复用,不懂复用的程序员,不是合格的android程序员。

5.自定义控件

我们自己经常通过View或者SurfaceView自定义自己的控件,通常会使用一个Thread,定期的去绘制,View通常使用postInvalidate()和onDraw()方法配合等等,注意:我们Override它的onDetachWindow方法的时候,要记得及时停止线程的绘制和资源的释放,特别是一些图片资源。

6.BroadcastReceiver一定要检查register和unregister的成对出现。

android:内存优化总结(android内存优化 简书)

7.Handler使用的时候,要声明为static

8.我们在单例模式下的内中的java 容器,如List,Queue,Stack,Map等,在适当的时候,要及时调用clear方法,因为,如果这些容器依然保留那些不再适用的对象的引用,JVM会认为该对象依然被引用,不会得到释放,如果运用不恰当,会出现内存泄露。

..............................

内存的分析工具:

1.Eclipse中,打开DDMS视图,选中我们应用的包名,我们可以Dump出我们应用的内存占用情况

2.Eclipse的第三上插件MAT(内存分析工具)

3.adb命令

我们可以通过如下步骤:

a). adb shell

adb进入手机

b). ps

查看所有的进程和包名,注意,我们需要查看,我们的应用对用的包名和pid(进程ID)

c). dumpsys meminfo <应用对用的pid>

通过该命令来查看内存的占用情况。

如下图是chrome浏览器的内存占用情况:

我们可以不断的通过操作我们的应用,实时查看内存的占用情况,以定位问题。

未经允许不得用于商业目的

欢迎加入QQ群讨论:android开发联盟:

android:ListView的局部刷新 1.简介对于android中的ListView刷新机制,大多数的程序员都是很熟悉的,修改或者添加adapter中的数据源之后,然后调用notifyDataSetChanged()刷新ListView。在这

Android: Receiving Data from the Send Intent,将自己的app注册系统分享 当用户在系统相册,点击分享时,能通过我们自己的app,分享该图片。1.注册主要是在AndroidManifest.xml中,对activity注册Intent-filter,如:activityandroid:name=.u

androidannotations的background和UiThread配合使用参考 简介androidannotations在开发中的代码规范思考:(MVC思考)时间太紧,先贴代码:Activity的代码:packageedu.njupt.zhb.main;importorg.androidannotations.annotations.AfterVie

标签: android内存优化 简书

本文链接地址:https://www.jiuchutong.com/biancheng/371351.html 转载请保留说明!

上一篇:android:View的setTag和getTag使用

下一篇:android:ListView的局部刷新

  • 电动三轮车发票和合格证丢了怎么上牌照
  • 企业所得税的征税对象包括
  • 纺织品产量
  • 金税盘电子发票怎么读入
  • 个人银行帐户可查询多少年
  • 先出货后开票
  • 运输费用和保险费用会计分录
  • 超市顾客返利如何做账务处理?
  • 收回赔款会计分录
  • 管理会计的目标包括多选题
  • 已出账但未认证的抵扣联怎么办?
  • 特许权使用费如何缴纳增值税
  • 账面价值大于计税基础产生什么差异
  • 审计风险可控吗
  • 建筑企业管理部门
  • 开票现代服务怎么选
  • 收代扣代缴个税手续费会计分录
  • 部队医院学校都没有税号吗
  • 委托招聘服务费怎么算
  • 汇兑损益怎么记账
  • 金融负债包括哪几项
  • 购入嵌入式软件能一次性扣除吗
  • Win11 Build 22454.1000 开发者预览版发布(附更新修改已知问题+安装)
  • 收益性支出与资本性支出的主要特点
  • 公司为实习生买保险列支什么科目?
  • 在产品定额工时怎么算
  • 女方结婚申请
  • php开发模板
  • php两个等号和三个的区别
  • 富文本编辑器使用
  • laravel分页
  • PHP 中 DOMDocument保存xml时中文出现乱码问题的解决方案
  • 独立核算的分公司责任承担问题
  • 金税盘开票系统复核人员设置在哪里
  • 买资产买负债
  • 会计实操和实际工作一样吗
  • 外贸企业收款有限额吗
  • python的series
  • dedecms官网
  • 消费税为什么要除以1减税率推导公式
  • 事业单位结余分配的去向有
  • SQL查询中in和exists的区别分析
  • mysql中You can’t specify target table for update in FROM clause错误解决方法
  • 一般纳税人无票收入填在哪一栏
  • 发票开具就能做账了吗?
  • 社保缴费基数怎么算
  • 租赁个人房屋租金怎么算
  • 消费税会计分录处理
  • 还借款收据怎么写
  • 建筑行业每月报税
  • 房地产契税新政策2023
  • 应收账款和应付账款属于什么科目
  • 投入的资金如何做账
  • 小规模纳税人没有进项发票违法吗
  • 企业和职工之间的财务关系属于
  • 企业资质证书丢失怎么办
  • 利息税额计算公式
  • 服务业建账科目设置
  • mysql的操作
  • 正确使用气体钢瓶的原则
  • unix系统采用什么结构
  • 索尼vpcea200c笔记本
  • wncloud.exe是什么程序
  • win10输入框在哪里
  • Linux Mount NTFS分区造成的权限问题如何解决?
  • win10日历提醒不显示
  • Linux系统怎么用命令行打开软件
  • Coroutine couldn't be started because the the game object 'GameController' is inactive!
  • android开发环境的搭建实验总结
  • 一键备份系统和一键还原系统
  • 腾讯im sdk
  • js 键盘码
  • 介绍一个简单的实验
  • jquery unload
  • jquery滚动到底部加载数据
  • unity方法调用
  • jquery怎么实现分页功能
  • 微信收款商业版和个人经营收款码区别
  • 固定资产转让要交企业所得税吗
  • 房地产企业所得税确认收入时间
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设