본문 바로가기

Linux/Android

젤리빈 - 프로젝트 버터 핵심 사항 - jank 수정법 출처: http://www.iamroot.org/xe/77421#4 댓글Romain과 Chet의 설명을 들었는데 프로젝트 버터 (젤리빈의 부드러움을 담당한 프로젝트)에서 vsync나 트리플버퍼링가 사용되었다는 지적을 하였습니다. 가끔 프레임이 넘어가는 현상을 그들은 'jank'라고 불렀는데요. jank가 생기는 이유를 두가지로 설명했습니다. 1. 불규칙적인 이벤트 처리에 의해 두프레임 이상이 희생되는 경우. 한프레임이 다 그려지기 직전에 이벤트 처리가 시작되면 이 이벤트는 무조건 2프레임 이상의 처리가 소요되는 거죠. 2. 한 프레임을 그리기 위해 두 프레임 이상의 소요되는 경우. 한 프레임을 그리기 위해 두 프레임 이상 소요되는 경우 ICS의 더블 버퍼링에서는 갱신하지 못하고 다음 턴까지 기다리는 경우.. 더보기
Android 시스템 트윅? init.rc에 적용 각 항목이 뭘하는 걸까요?Android 시스템 트윅? init.rc에 적용# Increase readahead buffers on MMC devices echo "2048" > /sys/block/mmcblk0/bdi/read_ahead_kb; echo "2048" > /sys/block/mmcblk1/bdi/read_ahead_kb;# microSD card speed tweak echo "2048" > /sys/devices/virtual/bdi/179:0/read_ahead_kb;# Battery echo "500" > /proc/sys/vm/dirty_expire_centisecs; echo "1000" > /proc/sys/vm/dirty_writeback_centisecs;# ram tweak.. 더보기
MountService의 기본과 UMS 연결 과정 출처 : http://blog.daum.net/baramjin/16010974 안드로이드에서 USB 또는 SD 카드 등의 Mount 를 체크하고 동작하는 서버 서비스이다.관련된 내용에 대한 설명을 인터넷으로 찾은 곳은 다음과 같다. http://letsgoustc.spaces.live.com/?_c11_BlogPart_pagedir=Last&_c11_BlogPart_BlogPart=blogview&_c=BlogPart&partqs=cat%3DGoogle%2520Android 대략적으로 번역하면 다음과 같다. 실제 mount 관련 작업은 mountd에서 이루어진다. 시스템 서버 어플리케이션인 MountService는 JAVA 레이어이며 "/dev/socket/mountd를 통해서 mountd와 통신한다. .. 더보기
Android. Logcat 필터링. 출처 : http://baeksupervisor.tistory.com/130 adb logcat [TAG_NAME]:[priority1] *:[priority2] TAG_NAME 에 해당하는 로그는 priority1 이상 보여주고, 나머지는 priority2 이상만 보여준다. ::: priority (V < D < I < W < E < F < S) ::: V - Verbose D - Debug I - Info W - Warning E - Error F - Fatal S - Silent ::: Example ::: adb logcat BaekSupervisor:D *:E BaekSupervisor 태그는 Debug 이상 보여주고 나머지는 Error 이상 보여준다. adb logcat BaekSupervis.. 더보기
Input 디바이스의 상세 정보를 알아볼려면 Input 디바이스의 상세 정보를 알아볼려면 : 아래는 갤럭시 넥서스 결과 cat /proc/bus/input/devices I: Bus=0000 Vendor=0000 Product=0000 Version=0000 N: Name="barometer" P: Phys= S: Sysfs=/devices/virtual/input/input0 U: Uniq= H: Handlers=event0 B: PROP=0 B: EV=9 B: ABS=1000000 I: Bus=0018 Vendor=0000 Product=0000 Version=0000 N: Name="Melfas MMSxxx Touchscreen" P: Phys=3-0048/input0 S: Sysfs=/devices/platform/omap/omap_i2c... 더보기
java.io.FileNotFoundException: ~~~ Too many open files 가끔씩 안드로이드 빌드하다 보면 이런 에러가 난다... 소스상 문제가 있는게 아니라 리눅 컴팔머신에서 핸들이 너무 많이 열린것이다. 쉡에서 ulimit -a 라고 쳐보면 아래처럼 나왔다. core file size (blocks, -c) 0 data seg size (kbytes, -d) unlimited scheduling priority (-e) 0 file size (blocks, -f) unlimited pending signals (-i) 15917 max locked memory (kbytes, -l) 64 max memory size (kbytes, -m) unlimited open files (-n) 1024 pipe size (512 bytes, -p) 8 POSIX message que.. 더보기
android early suspend 간략하게 정리 출처 : http://notackle.blogspot.com/2011/11/android-linux-power-management-early.html android에는 linux의 power management에 early suspend와 late resume이 추가되어 있다. 굳이 early suspend / late resume을 추가한 이유는 아무래도 power consumption에 취약한 mobile device를 지원하기 위해서라고 생각된다. (다른 이유가 있을까? 알고 계신 분은 좀 알려주세요!!.) early suspend와 late resume을 간략하게 정리해 본다. kernel level source까지 정리하려니 귀차니즘이 발동되어서 이해할 수 있는 수준에서 정리하고자 한다. ear.. 더보기
[Android] Ice Cream Sandwitch 소스를 대충 훑어본 결과... 고도리님 말씀. http://www.aesop.or.kr/54050 많은 부분을 훑어보지는 않았습니다. 가장 큰 변화는 역쉬 Display/Audio에 있네요.....우쒸. 1. LayerBuffer가 없어지면서 Overlay가 없어지고, HWComposer가 새로 생겼습니다. 2. Audio HAL관련 부분에 변화가 많네요. 예제가 있어서 좋기는 한데, 예제가 꽝입니다............또 gingerbread에서 했던 짓을 해 놓은 듯 머 좋은거 주기 싫어서 제조사들 알아서 하삼....정도 이지만, 예전보다 나아졌네요...^^ 즉, Audio HAL은 전부 재작업 수준입니다. Froyo/Gingerbread에서 작업했던 분들은 알 수 있겠지만요. 참, ALSA를 쓰기는 하는데, 아마도 이 부분은 전.. 더보기