Android AIDL(Android Interface description language)

Programming/Android 2013. 5. 6. 12:43 Posted by 생각하는로뎅
반응형

1. AIDL 이란?

  Android Interface description language

  안드로이드에는 로컬 서비스와 원격 서비스가 존재한다. 그 중에 원격서비스는 AIDL을 통해 제공된다.

  AIDL (안드로이드 인터페이스 정의 언어)는 하나의 안드로이드 장치 위에서 잠김 프로세스 통신 규약(IPC)에 의해 두 프로세스들 사이에 대화가 가능하도록 하기 위한 목적으로 생성되어진 코드를 사용할 수 있게 하는 IDL 언어 입니다.


2. AIDL 규칙

 1. AIDL은 Java의 primitive type은 import 없이 쓸 수 있다.

 2. String (CharSequence), List 도 import 없이 쓸 수 있다.

 3. Map 도 import 없이 쓸 수 있다.

 4. primitive type을 제외하고는 parameter로 쓰일 때, in, out, inout 을

    설정해줘야 한다.( in 이 default )


3. AIDL 플러그인

  패키지 안에 클래스말고 파일로 새로만들기애허 확장자를 aidl로 만들고, 저장하면 R 안에 자동으로 java파일도 생긴다.



4. Test Aidl

  (1) src/패키지/TestAidl.aidl을 넣은 후(파일로 생성한다), 아래와 같이 작성한다.



  (2) 저장하면, gen/패키지/ 밑에 java 파일이 생성되는 것을 볼 수 있다.

  (3) src/패키지/ITestAidl.java 를 생성 후, 아래와 같이 작성한다. extends TestAidl.Stub는 TestAidl 은 자동완성이 안되고, .Stub만 자동완성 기능이 나오므로 해깔리지 말자~

(4) Manifest.xml

<service android:name = "서비스 클래스 네임"> <axtion android:name="Aidl의 파일">

(5) 바인드 시킨다


  (6) bind 되면 onServiceConnected 메소드가 호출되면서 test_aidl 객체를

이용할 수 있게되는데, test_aidl. ~ 로 메소드를 호출하여 사용할 수 있다.

반응형

'Programming > Android' 카테고리의 다른 글

Android google map v2 example  (0) 2013.06.03
UUID  (0) 2013.05.27
Android stop animation  (0) 2013.04.30
Android remove layout  (0) 2013.04.30
Android get layout size  (0) 2013.04.30