2011. 7. 28. 05:37

[펌] Dalvik VM java assert 켜기

원본: http://blog.naver.com/PostView.nhn?blogId=treebystream&logNo=130087206849

 
##android device or emulator에서 java assert 켜기
 

모듈 통합에 있어서 어려운 점은 모듈에 버그가 있을 때 어떤 모듈에 있는지 찾는데 시간이 너무 많이 걸린다는 것이다. 버그가 발생했을때 빠르게 원인을 추적할 수 있는 방법 중에 하나는 assert를 효과적으로 사용하는 것이다. unit test의 testcase를 작성하여서 실행하는것도 중요한데 따로 케이스 작성할 여유가 없는 경우에는 java의 native assert를 이용할것을 적극 추천한다.


이방법은 에뮬레이터에서는 잘작동한다 그러나 실제 device에서는 root권한이 필요하므로 사용하지 못할 수 있다. (/data 경로에 파일을 생성해야한다.)

 

android의 Dalvik VM도 java native assert 기능을 제공한다. 다음은 assert를 켜는 방법이다.

1.file local.prop을 만들고  아래의 내용을 입력한다.
dalvik.vm.enableassertions=all

 

2.커맨드 창에서 다음을 실행한다.
adb push local.prop /data 
제대로 전송 되었는지 확인한다. 
adb shell ls -l /data/local.prop

 

3.device or emulator를 재부팅한다.

 

4. java 코드에서 assert(false);를 사용하여 잘 작동하는지 확인한다.

그 외 dalvik VM 속성 설정
dalvik.vm.enableassertions=all
dalvik.vm.stack-trace-file=/tmp/stack-traces.txt
dalvik.vm.deadlock-predict=err
dalvik.vm.checkjni=true

 
 

끄는 방법은 /data/local.prop파일을 삭제한 후 device를 재부팅하면 된다.

adb shell rm /data/local.prop

 

그외 Dalvik VM command line argument

adb shell dalvikvm -help


참고 문서

http://www.netmite.com/android/mydroid/dalvik/docs/embedded-vm-control.html#assertions