본문 바로가기

개발 개발

Debugging Deadlocks on Android 출처 : http://quequero.org/Debugging_Deadlocks_on_Android Debugging Deadlocks on AndroidDebugging Deadlocks on AndroidContents1 Debugging Deadlocks on Android1.1 Introduction1.2 Debugging Deadlocks1.3 Deadlock Identification1.4 Disclaimer IntroductionDeadlocks are well known to be difficult to debug, especially when you're dealing with a large amount of concurrent code. Fortunately on Android we h.. 더보기
소프트웨어 제작의 기본 출처 : http://zedoul.tistory.com/411 소프트웨어 제작의 기본이란 어떤 것이 있을까? 흔히 말하는 소프트웨어 제작의 기본이란 왠만한 책을 보면 당연하다는 듯이 나와 있는 것들이다. 딱 봤을 때 에이 당연히 지켜야 하는 거지라고 말하기 쉽다. 하지만 그렇게 알고만 있으면 역시 머리에 남지 않는다. 모두 지킬 수 있도록 노력해봐야 한다. 내가 가진 실력에 비해 무척 과한 주제긴 하지만 요즘 시간도 많이 남는 덕분에 개발 과정에서 느낀 점 위주로 적어보자 한다. 1. 언제든지 실행할 수 있는 최신의 바이너리 확보 자신이 책임지는 바이너리는 최신의 기능으로 모든 순간에서 실행할 수 있어야 한다. 이건 간단한 말처럼 보이지만 이걸 할 수 있는 수준의 개발자는 많지 않다. 실력이 문제가 아니.. 더보기
ICS에서 MTP대신 Mass Storage 추가하기 출처 : http://codewalkerster.blogspot.com/2012/02/android-mtp-mass-storage.html android ICS부터 MTP를 지원합니다. Gingerbread의 Mass Storage 방식으로 수정해 보겠습니다. overlay/frameworks/base/core/res/xml/storage_list.xml 입니다. 아래와 같이 바꿉니다. init.[PRODUCT_NAME].rc fuse 관련된 부분 삭제 합니다. on post-fs-data # we will remap this as /mnt/sdcard with the sdcard fuse tool mkdir /data/media 0775 media_rw media_rw chown media_rw med.. 더보기
[OpenSSL 프로그래밍] 출처 : http://funkylocker.tistory.com/ : 각타이틀을 누르면 원작자 페이지로 이동함.[OpenSSL 프로그래밍] AES 암호화 (EVP)1. AES 암호화 알고리즘 - 기본적으로 암호화란 평문(plain text)을 암호문(cipher text)으로 바꾸는 작업을 말한다. - AES 란 Advanced Encryption Standard의 약자로 가장 많이 쓰이는 블럭 암호화 알고리즘으로 128 bit/192 bit/256 bit 의 대칭키를 이용하여 데이터를 암호화 한다. 2. OpenSSL 라이브러리 제공 (AES 암호화 방식) 1) EVP 라이브러리 2) AES 라이브러리 OpenSSL에서는 두 가지 방식의 AES 암복호화 라이브러리를 제공한다. 기본 AES 암호화 API.. 더보기
안드로이드 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 할 수 있다. 더보기
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 ->메뉴 -.. 더보기