본문 바로가기

분류 전체보기325

[안드로이드] OutOfMemory 왜 발생하는거야? PC의 응용프로그램을 개발하다가 안드로이드 앱을 개발하게 되는 케이스들이 많을 거라고 생각합니다. 저 역시 그런 종류의 사람입니다. PC에서는 메모리 자원이 많아서 대부분의 자료를 메모리에 할당하여 사용합니다. 속도도 더 빠르겠죠.. 안드로이드 앱도 그렇게 코드를 작성해버렸네요. 그래서 결국 OutOfMemory라는 철천지 원수를 만나게 됐습니다. 대략적인 구조는 웹으로부터 XML 데이터를 가져오고, DOM파서로 데이터를 파싱해옵니다. 그리고 하나의 일치된 타입으로 데이터를 변환하여 저장하지요. 여기서 DOM파서와 변환된 데이터 이 두개가 한순간에는 동시에 존재하면서 많은 메모리를 차지하는 것 같더군요. 그리고 무엇보다도 Bitmap을 사용하고 있었는데 메모리 할당이 제대로 되지 않고 있었습니다. 개발 .. 2011. 10. 24.
[Android 문서번역] Avoiding Memory Leaks (메모리 누수를 피하는 방법) 원문 : http://distress.tistory.com/48 아래와 같은 방법으로 최대 힙 메모리와 사용되고 있는 힙 메모리를 구할 수 있다고 합니다. 그런데 어플에서 사용되고 있는 힙 메모리의 크기는 정확히 구하지를 못한다는군요. System.gc(); long lTotMemory = Runtime.getRuntime().maxMemory() / (1024*1024); long lUseMemory = lTotMemory - ( Runtime.getRuntime().freeMemory() / (1024*1024)); 원문 : http://developer.android.com/resources/articles/avoiding-memory-leaks.html T-Mobile의 G1폰의 경우, 안드로이드.. 2011. 10. 23.
[안드로이드] 시스템 분석을 위한 쉘 명령어 원문 : http://ecogeo.tistory.com/256 안드로이드 시스템 분석에 사용할만한 shell 명령을 알아보자. 시스템 기본 정보: 하드웨어, 커널 등 cat /proc/version : 커널 버전 cat /proc/cpuinfo : 프로세서 정보. CPU 타입, 모델, 제조사 등 cat /proc/meminfo : 메모리 정보. 실제 메모리 및 가상 메모리 cat /proc/devices : 현재 커널에 설정되어 있는 장치 목록 mount : 마운트된 모든 장치 정보 df : 하드디스크 사용량 cat /proc/filesystems : 커널에 설정되어 있는 파일시스템 목록 cat /proc/swaps : 스왑 파티션의 크기와 사용량 cat /proc/interrupts : 장치가 사용중인.. 2011. 10. 21.
안드로이드 Cache 파일 삭제하기 WebView를 사용하게되면 '/data/data/[pakage name]/cache/'에 파일들이 생성이 됩니다. cache 파일들이 꾀 많은 용량을 차지하는 것 같아서 어플이 종료되면 삭제를 하도록 하고 싶어졌습니다. 코드는 아래와 같이 작성하시면 됩니다. public class CustomActivity extends Activity { @Override public void onDestroy() { super.onDestroy(); clearCache(); } private void clearCache() { final File cacheDirFile = this.getCacheDir(); if (null != cacheDirFile && cacheDirFile.isDirectory()) { cl.. 2011. 10. 20.
[소스인사이트] Tab 설정하기 여러사람과 같이 개발을 하다보면, 서로간에 개발환경이 다를 수 있습니다. 어떤분은 vi를 사용하고, 어떤분은 ultra edit을... 어떤분은 source insight를 사용합니다. 저는 source insight를 사용하고 있습니다. 이러다 보니 보기 좋게 Tab으로 들여쓰기한 것이 다른분에는 이상하게 보이나 봅니다. 또한 저도 다른 분이 작성한 코드들이 들여기가 이상해보이구요. 소스인사이트에서는 Tab에 대한 설정을 할 수 있습니다. 아래 두가지만 지키면 들여쓰기 문제를 발생을 막을 수 있습니다. 1. Tab을 space로 사용하도록 설정하기 - Alt + T를 누른 후 Expand tabs를 체크 합니다. - Tab width를 '4'로 설정합니다. 2. 가변 폰트를 사용하지 않기 - Fixed.. 2011. 10. 19.
아두이노 시작하기 Getting Started Arduino on Windows (영문) → http://arduino.cc/en/Guide/Windows 1. 아두이노 소프트웨어 다운로드 다운로드 : http://arduino.cc/en/Main/Software mirror site: http://rullru.tistory.com/144 (Arduino 0022 release) 오픈소스 아두이노 환경은 i/o 보드에 쉽게 코드를 쓰고, 업로드 할 수 있게 만든다. 그리고 Windows, Mac OS X, 그리고 Linux에서 동작한다. 이 환경은 Java, avr-gcc, 다른 오픈 소스 소프트웨어에서 사용된다. The open-source Arduino environment makes it easy to write c.. 2011. 10. 18.