전체 글
-
[안드로이드] 빠른 에뮬레이터 Genymotion 설치 방법Programming/안드로이드 2014. 5. 22. 00:25
안녕하세요 오랜만에 포스팅을 하네요개인적인 사정(면접, 과제)로 정신없이 지내다 보니 조금은 소홀해졌네요 ^^..댓글로 질문하신 분도 꽤 있으신데 제가 관련 내용을 업데이트 못 해서 죄송합니다 ^^.. 빠른 시일 내에 하도록 하겠습니다! Genymotion 설치 방법 안드로이드 프로그래밍을 하다 보면 스마트폰에 예제 어플들이 수도 없이 깔려서 거슬린 적이 많을 것이다. 하지만 느린 에뮬레이터를 쓸 바에는 불편함을 감수하고 스마트폰을 사용하는 분들이 많을 것이라고 생각된다. 하지만 이 에뮬레이터는 빠르다.Genymotion 설치법에 대해서 알아보자! 1. 회원가입 및 다운로드http://www.genymotion.com 에 들어가서 회원가입을 한다. GET GENYMOTION 클릭! 유료 버전이 기능이 더..
-
[안드로이드] 블루투스(Bluetooth)통신 - 연결하기Programming/안드로이드 2014. 4. 5. 06:09
지금까지 블루투스를 활성화 하고 기기 검색을 하는 단계까지 진행하였다. 이전 글 : 블루투스 활성화 글 보기, 블루투스 기기 검색하기 글 보기 저번 프로젝트에 이어 블루투스 연결하는 단계를 포스팅 하겠다. 검색한 기기에 연결하기 위해서는 ConnectThread와 ConnectedThread에 대해서 알고 있어야 한다.BluetoothService.java 파일에 ConnectThread와 ConnectedThread 클래스를 내부 클래스로 삽입해준다. 1. ConnectThread BluetoothService.java public class BluetoothService { ... // 이전 부분 생략 // RFCOMM Protocol private static final UUID MY_UUID = ..
-
[JAVA] synchronized - 스레드 동기화Programming/JAVA 2014. 4. 5. 05:56
자바에서는 스레드를 동기화 하기 위해서 synchronized를 제공한다.스레드는 synchronized 메소드에 들어가기 위해 lock을 얻고 메소드가 끝이나면 lock을 반환한다. 어떠한 스레드가 lock을 얻어 synchronized 메소드를 사용중이면 다른 메소드는 lock이 없으므로 synchronized에 접근할 수 없고, 다른 스레드가 lock을 반환 할 때까지 기다려야 한다. 쉽게 설명하자면 synchronized 메소드를 화장실에 비교하고 lock을 화장실 열쇠로 비교하겠다. 화장실(synchronized)에 들어가기 위해서는 열쇠(lock)가 필요한데 열쇠(lock)은 단 1개만 존재하는 것이다. 그래서 어떤 사람이 화장실(synchronized)에 열쇠(lock)를 들고 들어가면 다른..
-
[C] Log2 (밑이 2인 로그 함수) 구하기Programming/C언어 2014. 3. 28. 02:53
C에는 자연로그를 구하는 log() 함수와, 밑(base)이 10인 상용 로그를 구하는 log10()함수만 있기때문에 밑이 2인 로그를 구하려면 직접 함수를 만들어야 한다. logB(숫자, 밑) 이라는 함수를 만들어 사용하도록 하자. double logB(double x, double base) { return log(x)/log(base); } 매크로 함수로 정의해서 사용해도 잘 된다. #define logB(x, base) log(x)/log(base) base에 2.0 대신 다른수를 넣어주면 다양한 밑을 가진 로그를 구할 수 있다. 원리는 다음과 같은 공식을 사용한 것이다. 예제 #include #include //#define logB(x, base) log(x)/log(base) double l..
-
[C] C언어 M_PI 사용하기Programming/C언어 2014. 3. 26. 00:58
#include 를 사용하여 수식을 계산할때, 원주율값이 필요 한 경우가 있다. 원주율값을 잘 외우고 있는경우 상관은 없지만, 단순히 3.14라는 값을 사용하여 알고리즘 문제를 풀 때 소수점 뒷자리 문제로 답이 틀리는 경우가 종종 발생할 수 있다. 그렇다고 원주율을 소수점 10자리 이상 외우고 다닐수는 없다. 이럴경우 math.h에서 원주율 값을 제공해주지 않을까 찾아보지만 M_PI를 사용하면 에러가 발생한다. M_PI 상수는 C표준이 아니기때문에 기본적으로 사용할 수 없다고 한다. math.h를 include 하기전에 #define _USE_MATH_DEFINES 를 정의해 주어야 한다. 이제 M_PI를 사용할 수 있다. #define _USE_MATH_DEFINES를 써주는 이유 #define _US..
-
[자료구조] 기본 Queue 소스Programming/자료구조&알고리즘 2014. 3. 21. 18:29
큐 소스입니다. #include #include // 큐 크기 #define QSIZE(5) // 큐 선언 int queue[QSIZE]; int front, rear;// front == 0, rear == 0 int is_full() { return rear == QSIZE; } void put(int data) { queue[rear] = data; rear++; } int is_empty() { return front == rear; } int get() { int temp = queue[front]; front++; return temp; } // 큐 출력 void display() { int i; system("cls"); // 콘솔창 초기화 printf("\n"); printf("%*s\n"..
-
[자료구조] 기본 Stack 소스Programming/자료구조&알고리즘 2014. 3. 18. 03:14
스택 소스 입니다. #include #include // 스택 크기 #define STACK_MAX (5) // 스택 선언 int arr[STACK_MAX]; int top = -1; void push(int data) { arr[++top] = data; } int pop() {return arr[top--]; } int is_full() { return top == STACK_MAX-1; } int is_empty() { return top == -1; } // 스택 출력 void display() { int i; system("cls"); // 콘솔창 초기화 printf("\n"); for(i = 0; i top) printf("..
-
[안드로이드] 블루투스(Bluetooth)통신 - 기기 검색하기Programming/안드로이드 2014. 3. 17. 22:30
저번 포스팅에서는 블루투스를 활성화 하는 단계까지 진행하였다. 이전 글 : 블루투스 활성화 글 보기 이번에는 저번 프로젝트에 이어 기기 검색하는 부분부터 시작하겠다. 1. 기기 검색하기 - 프로젝트 파일 복사하기 기기 검색하기에 앞서 기기 검색하기 기능 실행시 보여줄 화면을 위해 안드로이드 블루투스 채팅 예제프로젝트에서 몇가지 파일을 가져오도록 하겠다. 번거로울수 있어서 아래 포스팅을 하였다. 접힌 내용을 펼쳐서 보길 바란다.java 파일인 DeviceListActivity.java레이아웃 xml 파일인 device_list.xml, device_name.xml을 복사해서 붙여넣고 [res]->[values]->[string.xml] 에 string 들을 추가해준다.(복사해서 붙여넣는다.) .. 추가중 ..