본문 바로가기

Study/Programming

안드로이드 서비스 - 꼬로미 안녕하세요 꼬로미입니다 안드로이드 프로그래밍 서비스에 대한 포스팅입니다 서비스(Service) 사용자 인터페이스 없이 백그라운드에서 실행되는 동작이 필요한 경우 사용되는 것이 서비스로주기적으로 데이터를 읽을때, 주기적으로 폰 사용량을 계산시 등에 사용됩니다한번 시작된 서비스는 사용자가 다른 애플리케이션으로 이동하더라고 계속하여 백그라운드에서 실행됨프로세스간 통신(IPC; interprocess communication) 기능도 구현 가능네트워크 트랜잭션이나 음악 재생, 파일 입출력, 콘텐트 제공자와의 통신을 위해 주로 사용 서비스의 종류 서비스 시작후 무한정하게 실행 (unbounded)서비스를 시작한 액티비티가 실행되고 있는 동안만 실행 (bounded) 서비스도 액티비티와 마찬가지로 인텐트 객체를 이.. 더보기
윈도우 기반의 쓰레드 생성 - 꼬로미 안녕하세요 꼬로미입니다 윈도우 기반 쓰레드 포스팅입니다 커널 오브젝트(Kernel Objects)윈도우 운영체제가 생성해서 관리하는 리소스들커널 오브젝트의 소유자는 운영체제 윈도우기반 쓰레드 작성예제 WaitForSingleObject 함수 사용예제 WaitForSingleObject하나의 커널 오브젝트에 대해서 signaled 상태인지 확인하기 위해서 호출하는 함수 WaitForMultipleObjects커널 오브젝트를 대상으로 상태를 확인하는 경우 호출하는 함수 WaitForSingleObject & WaitForMultipleObjects 함수 사용예제 -스레드 수 50개 여러번 실행했지만 정상적인 결과가 아니며실행결과도 매번 다른것이 확인, 동기화기법을 사용하면 원하는 결과를 가질 수 있음 더보기
안드로이드 리소스와 보안 안녕하세요 꼬로미입니다 안드로이드 프로그래밍 리소스와 보안 포스팅입니다 리소스(resource) 이미지, 문자열, 레이아웃, 동영상 파일 등을 의미모든 리소스들은 프로젝트의 res 디렉토리에 저장됨res 디렉토리 안에는 여러 서브 디렉토리가 존재 리소스의 종류 기본 리소스와 대체 리소스 기본 리소스(default resource)장치 구성과 상관없이 기본적으로 사용되는 리소스 대체 리소스(alternative resource)특정한 장치 구성을 위해 설계된 리소스 안드로이드는 자동적으로 장치의 현재 구성과 리소스 디렉토리 이름을 매치하여 적절한 리소스를 적용 리소스 참조 안드로이드에서는 리소스 아이디를 통해서 리소스를 참조모든 리소스 아이디는 R.jvava 파일에 정의R.java 파일에는 R 클래스가 있.. 더보기
쓰레드 동기화 세마포어(Semaphore) 안녕하세요 꼬로미입니다 쓰레드 동기화 세마포어에 대한 프로그래밍 입니다 리눅스 기반으로 작성했습니다 ^^* 세마포어(Semaphore)0과 1만을 사용하는 세마포어 ( 0이면 대기, 1ㅇ디면 접근가능)뮤텍스의 lock과 unlcok에 해당하는 post, wait 함수를 사용한 임계영역하나의 Dead Lock을 회피하는 기법동기화 대상이 여럿일 경우에 사용(화장실이 여러칸있다고 생각) 세마포어 예제(리눅스) 세마포어 2개 생성sem_init(&sem_one, 0, 0);sem_init(&sem_one, 0, 1); 세마포어 변수 sem_two를 이용한 wait와 post 함수 호출sem_wait(&sem_two);sem_post(&sem_two);* 뮤텍스(Mutex) 방식의 lock, unlock에 해당.. 더보기
쓰레드 동기화 뮤텍스(Mutex) 안녕하세요 꼬로미입니다 쓰레드 동기화 뮤텍스에 대한 프로그래밍 입니다 뮤텍스(Mutex, Mutual Exclusion)쓰레드의 동시접근을 허용하지 않음동기 접근에 대한 해결책으로 주로 사용쓰레드 동기화로 한번에 하나의 쓰레드만이 실행가능하게 하는 방법쓰레드가 사용중일 때 강제적으로 다른 쓰레드의 접근을 막음화장실을 이용하는데 하나의 열쇠가 있고 그 열쇠가 있어야만 이용이 가능한 화장실과 유사 실행결과50000, 50000로 설정했을때 결과값은 0500000, 50000로 설정했을때 결과값은 22500000 더보기