전체 글 썸네일형 리스트형 [Android] OOM (Out of Memory) 와 LMK (Low Memory Killer) 이야기. 출처 : http://shadowxx.egloos.com/10781292 안녕하세요. 멀티미디어팀에 이상철입니다. 오늘은 여러분들이 프로젝트를 진행하면서 한번을 들어 볼(?) OOM (Out of Memory) 와 LMK (Low Memory Killer) 에 대한 이야기를 해볼까 합니다. 오늘 이야기는 예전에 제가 보내드렸던 "[Android] Background process 줄여서 Memory 확보로 성능 개선하기." 메일과 관련이 깊은 내용입니다. 사실 이번 이야기는 제 동기가 찾아서 보내준 내용을 제가 여러분들과 공유하고자 전송해드리는 정도입니다. 간단히 정리하면, OOM 은 Linux 커널에서 예전부터 쭈~욱 있어왔던 메모리 관리 모듈이고 이게 휴대기기에 들어가는 system 에서는 안맞다고 .. 더보기 OOM killer & Android LMK 출처 : http://lucidtale.wordpress.com/?s=Android+Low+Memory+Killer OOM killer & Android LMK현재 리눅스 커널에는 OOM(Out of Memory) killer가 있다. 소스 파일 위치는 mm/oom_kill.c 이며메모리가 부족해서 할당에 실패할 경우alloc_pages -> … -> out_of_memory() -> select_bad_process() -> badness() 가 불리게 된다.bad process의 선정은 다음과 같다./* * The baseline for the badness score is the proportion of RAM that each * task’s rss, pagetable and swap space .. 더보기 Dalvik Optimization and Verification중에서 (dexopt) 출처 : http://anzero.blog.me/89651858 안드로이드 소스를 빌드해서 생성하면 dalvik문서가 생성되는데,Android site에서는 공개되지 않은 것 같다.dalvik vm 목적, 구현 mechanism, prepared dex등으로 구성되는데,관심사순으로 재구성하여 발췌하였다. There are at least three different ways to create a "prepared" DEX file, sometimes known as "ODEX" (for Optimized DEX):The VM does it "just in time". The output goes into a special dalvik-cache directory. This works on the desk.. 더보기 [Android] stop_drawing_early_suspend: timeout waiting for userspace to stop drawing 출처 : http://iamyooon.tistory.com/86안드로이드 디바이스를 사용하는 도중터치는 동작하지만 화면이 refresh되지 않는 문제를 경험한 적이있다.디버그메시지를 살펴보니 stop_drawing_early_suspend: timeout waiting for userspace to stop drawing라고 warning메시지를 띄우는것을 볼 수있었다.kernel/kernel/power/fbearlysusepnd.c에는 early suspend 진입시에 호출되는 stop_drawing_early_susepnd()가 있다.이 함수에서는 fb_state변수를 FB_STATE_REQUEST_STOP_DRAWING으로 설정한 다음 HZ시간 동안 해당 변수가 FB_STATE_STOP_DRAWIN.. 더보기 recovery 디버그 메세지를 커널 메세지로 보고 싶을때 기본적으로 리커버리 종료시 "/cache/recovery/log" 에 저장된다.만약 recovery 디버그 메세지를 커널 메세지로 실시간으로 보고 싶을때 하기처럼 바꿔주면 된다.static const char *TEMPORARY_LOG_FILE = "/tmp/recovery.log"; 를static const char *TEMPORARY_LOG_FILE = "/dev/kmsg"; 로 Tip) user 영역에서 커널 메세지를 찍고 싶을땐 /dev/kmsg에 써주면 된다. 더보기 MTP 설치 실패시 Error Code 19 안드로이드 MTP 설치 실패시 장치관리자에서 설치실패한 MTP 장치에서 우측 버튼 눌러서 제거한 후 레지스트리에서 하기 Upperfilters키값 자체를 삭제 한후 다시 꼽아서 설치 하도록 하면 된다. [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{EEC5AD98-8080-425F-922A-DABF3DE3F69A}“Upperfilters” = klfltdrv 자동실행 옵션 사용안함(or 기본값설정)으로 하면 된다는 사람도 있다. 더보기 GIT 개념도 아래 그림 한장으로 개념 끝 더보기 git diff 보다 편리하게 git change 보기 출처 : http://blog.daum.net/bluebread/15 안드로이드에서 git을 사용하는데 적응이 안되는 부분이 변경사항을 보는 것입니다.(물론 gerrit을 사용하는 환경이라면 또다른 이야기입니다.) araxis merge 나 beyond compare 와 같은 디렉토리 비교툴에 익숙하시다면, git diff의 결과물이 낮설겁니다. git diff 의 표시형식은 다음과 같이 - + 로 추가 삭제된 내용을 표시합니다. 이런 diff 형식이 낮선 분들은 git difftool을 사용하여 다음과 같은 좌우로 비교창을 열어 볼 수도 있습니다. (vimdiff를 사용한 예) 위에서는 vimdiff를 사용하였지만, git difftool은 실행할 파일을 지정할 수가 있습니다. 이 기능을 이용하여 (g.. 더보기 이전 1 ··· 10 11 12 13 14 15 16 ··· 53 다음