android_DDMS学习笔记

anddroid中最主要的也是--Debug程序(界面如图)


android还给我们提供了一个主要查看信息的机制,就是Log:

其中Log分为两种:

app Log(方便)和kermel log(全面)

  Log.v():verbose:黑色,啰嗦,任何消息都会输出
  Log.d()dabug:蓝色,调试信息,仅输出调试信息
  Log.i(),information:绿色
  Log.w(),warning:橙色,代码可能不会出现错误,但是也要关心
  Log.e();error:红色,如果出现这个log需要修改代码


-------------------------------------------SHELL---------------------------------------------------------------

android是基于linux系统下的.所有,本身的模拟器提供了一个shell,具体命令如下cmd-->adb.exe shell

然后:

#  cd (进入某一目录), ls(dir), exit (退出SHELL),df(查看android盘大小) ,其中/data(盘不小于50M)
# am start -a android.intent.action.CALL -d tel:1234   向模拟器打一个电话,来电号码为:1234
# am start -a android.intent.action.VIEW  传递一个VIEW。也是一个命令


# echo off > /sys/power/state  "使模拟器屏幕暗下去(部分手机没有这个属性)"
# 。。。

---------------------DDMS :Dalvik Debug Monitor Service---------------------------------------------
Devices:设备
DDMS可以:截屏,查看正在运行的线和以及堆栈信息,logcat,广播状态消息,模拟电话呼叫,接收sms,虚拟地理坐标等...
一台电脑只能启动一个DDMS,用一个端口
也可以用cmd启动DDMS:cmd-->ddms.bat(找到目录,没有装eclipse情况下也可以用DDMS)
--监听端口
--Heap(忘记了)

cmd-->adb shell monkey -p com.example.Sudoku -v 500       自动测试Sudoku(以机器自由检测)可以检测出bug,是否会死机,内存泄露等等。


内存泄露:

android每个应用程序,都会有zygote服务进程孵化出一个dalvik虚拟机运行.每个应用程序都属于自己的进程中运行.
如果程序出现了内在泄露的问题,仅仅会是自己的进程被kill掉,而不会影响其它的进程(如果system.process等系统进程出现问题的话,会引起系统重启).
android为不同类型的进程分配了不同的内存使用上限(设置在ststem/core/rootdir/init.rc)


内存使用不当的情况
1.查询数据库没有关闭cursor.如图如果没关闭Cursor就会引起内存泄露

2.构造Adapter时,没有使用缓存的convertView.
3.Bitmap对象,不再使用时调用recycle()释放内存,不是呢须的,一般图片较大时,可以考虑调用。
4.释放对象的引用:
  4.1在锁屏界面(LockScreen)中,监听系统中的电话服务以获取一些信息(信号强度等 ),可以在LockScreen中定义一个PhoneStateListener的对象,同时注册到TelphoneManager服务中.
   对于一个LockScreen对象,当需要显示锁屏界面时,会创建一个新的LockScreen对象,而当锁屏界面消失时,该对象会被释放掉.但是如果没有取消之前注册的PhoneStateListener对象,会导致LockScreen无法被垃圾回收.如果锁屏,解锁,锁屏,解销.....最终会有大量的对象没办法被回收而造成OutOfMemory,手机重启.


  4.2
经验:
1.当一个生命周期较短的对象A,被一个生命周期较长的对象B保有引用的情况下,在A的生命周期结束时,需要在B中清除掉对A的引用.


2.一般来说,应用程序需要清除资源的情况是在Activity的生命周期中,在onPause(),onStop(),onDestoy()这些方法中.


5.static:java中的一个关键字,当用它来修饰成员变量时,该变量就属于该类,而不是该类的实例.它的生命周期很长,如果用它来引用一些资源消耗过多的实例(如如context),就需要谨慎.
Drawable-<




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值