요즘들어 안드로이드를 이용하여 하드웨어와 통신하는 사례가 부쩍 늘고 있다. 예를 들어 릴레이 도오락을 열거나, 문서를 프린트하거나 등... 하지만 인터넷에서 찾아볼수 있는 자료는 거의 대부분 쓰잘데기 없는 것들이여서 나름대로 여기에 정리 해 본다.시리얼 통신의 개념은 아주 간단하다, 즉 (bit) 비트단위로 데이터를 발송하거나 전송하는 방식을 말한다. 비록 (byte) 바이트 단위로 통신하는 병열통신 보다는 느리지만 시리얼 통신은 한가닥의 선으로 데이터를 전송하는 동시에 다른 한가닥의 선으로는 데이터를 받을 수 있다. 이런 장점 때문에 구현이 간단 할 뿐만 아니라 통신거리도 비교적 길다.Widnows, Linux, 혹은 Android 운영체제든 시리얼통신의 프로그래밍 순서는 아래와 같다.1. 시리얼포트를..
클래스 오브젝트 초기화오브젝트를 생성하기 위해서 메모리할당(alloc) 과 초기화(init)라는 두 단계를 거쳐야 한다.메모리할당: 오브젝트가 사용할 메모리를 힙에서 할당 받는다.초기화: 오브젝트에 필요한 초기 값을 채워준 다음 그 메모리 주소에 대한 포인터를 반환한다. Foo* myFoo = [[Foo alloc] init]; 메모리 할당(Alloc):NSObject 클레스에서 상속받은 클래스메소드 alloc으로 한다. 아래는 동작 방식:1. alloc은 새로운 오브젝트를 위한 메모리를 할당하고 그 주소를 가리키는 포인터를 반환.2. 컴파일러는 모든 오브젝트 인스턴스에 대해 isa라는 이름의 인스턴스 변수를 자동생성하고 alloc은 이 변수의 내용을 채운다. isa는 오브젝트의 클래스 구조에 대한 포인..
@property : accessor 메소드를 선언하는 간편한 방법 제공@synthesize : 컴파일러가 지정된 accessor 메소드를 자동으로 작성하게 만든다. 프로퍼티 이름과 그 프로퍼티를 나타내는 인스턴스 변수 이름을 달리하기. @synthesize propertyName = instance variableName;@dynamic : accessor를 직접 작성할 것임을 컴파일러에 알리기 위하여 사용, 즉 getter 와 setter가 구현되어 있지 않아도 상위 클래스 어딘가에서 선언되어 있다고 미리 알려주기 때문에 컴파일 할 때 오류가 발생하지 않는다. 주로 setter 에 입력값을 제한하는 로직이 들어있을때, 이것을 사용한다.프로퍼티속성에는 3가지가 있다.1. getter 와 setter의 ..