본문 바로가기

전체 글

안드로이드 Init 프로세스 분석 출처 : http://puresay.springnote.com/pages/5470395.xhtml 안드로이드의 초기화 과정 중 Init 프로세스를 생성하고 init 프로세스가 동작하는 과정에 대하여 정리한다. Init 프로세스는 부팅 과정에서 커널이 생성하는 첫번째 프로세스로 PID는 1이다.리눅스 커널의 부팅 과정을 보면 알겠지만 다음 과정에서 생성된다. /kernel/init/main.c 파일을 참조하면 다음과 같은 초기화 과정을 거친다. start_kernel()rest_init()kernel_init()init_post() init_post()에서 init 프로세스를 생성하는데, 이를 위해서 ramdisk_execute_command를 kernel_init()에서 "/init" 으로 설정하고 ac.. 더보기
Android system property 개수 출처 : http://netxy.tistory.com/31Property set 하는 경우 property name이 "persist." 로 시작하는 경우에는 data/persist/ 에 파일로 저장이 되어 reboot 되어도 남아있다. system property 최대 개수는 system/core/init/property_service.c 의 PA_COUNT_MAX 값을 보면 알 수 있다. MAX 값을 초과하게 되어 필요시 못쓰게 되는 경우를 막기 위해 init.rc에서 setprop 할 수 있다. 더보기
오픈소스 라이센스 비교 출처 : http://www.codeproject.com/info/Licenses.aspxLicensesAuthorsWhen uploading an article you need to be aware of the risks and legal issues involved. We live in a litigious world so you need to protect yourself against those seeking damages against you for problems that may (or may not) have been caused by your article. Just saying "The code is free for use" is no longer enough. What does .. 더보기
tar, gzip, split 출처 : http://hanguy.egloos.com/1383287 [파일 나누기] => 띄워쓰기 및 공백 주의# split -b 650m 원파일명.tar.gz 분할파일명.tar.gz_# tar cvf - 압축할디렉토리 | split -b 1024m - 분할압축파일명.tar# tar zcvf - 압축할디렉토리 | split -b 1024m - 분할압축파일명.tar.gz_ [압축 풀기]# cat 분할압축파일명.tar.gz_* | ( cd 압축_풀경로;tar zxvf - ) [새파일 추가하기]# tar vfr a.tar test.php# tar vfr a.tar ./test [특정 파일 또는 디렉터리 추출]# tar xvfp a.tar /home/test.php# tar xvfp a.tar /home/test 더보기
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와 통신한다. .. 더보기
Git 사용자 설명서 출처 : http://namhyung.springnote.com/pages/3132772 목차저장소와 브랜치git 저장소 가져오기다른 버전의 프로젝트 체크아웃 하기변경 이력 이해하기: 커밋변경 이력 이해하기: 커밋, 부모, 도달 가능성변경 이력 이해하기: 변경 이력 다이어그램변경 이력 이해하기: 브랜치란 무엇인가?브랜치 다루기새 브랜치를 만들지 않고 이전 버전 살펴보기원격 저장소의 브랜치 살펴보기브랜치, 태그 및 다른 참조에 대한 이름 붙이기git-fetch를 이용하여 저장소 업데이트하기다른 저장소에서 브랜치 가져오기Git 변경 이력 조사하기regression을 찾기 위해 bisect 이용하기커밋 이름 붙이기태그 만들기버전 살펴보기차이점 생성하기예전 버전의 파일 보기예제특정 브랜치 상의 커밋 개수 세기두.. 더보기
adb를 wifi로 쓰기 Wifi을 이용해서 adb 사용가능합니다. 사용방법은 1. 폰을 USB로 연결한 후 tcpip 포트를 5555로 변경합니다. #adb tcpip 5555 2. 폰을 USB 분리하고 wifi을 잡습니다. Wifi 잡힌 이후에 IP를 확인 합니다. 설정 > 무선 및 네트워크 > wifi 설정 > 연결된 wifi 클릭하면 ip 정보가 보입니다. (ex) 192.168.11.176 # adb connect IP주소:5555 ex) adb connect 192.168.11.176:5555 성공하면 connected to 192.168.11.176:5555 라고 메세지가 뜨며 이제 무선으로 adb 커맨드를 사용하실수 있습니다.ex) adb shell화면이 꺼져도 wifi 연결이 안끊기도록설정->wifi ->메뉴 -.. 더보기
vi 키맵핑 차이점 Vim: What is the difference between the remap, noremap, nnoremap and vnoremap mapping commands?remap is an option that makes mappings work recursively. By default it is on and I'd recommend you leave it that way. The rest are mapping commands, described below: :map and :noremap are recursive and non-recursive versions of the various mapping commands. What that means is that if you do: :map j gg .. 더보기