안드로이드 개발 질문/답변
(글 수 45,052)
안녕하세요..
모두 RPC에 관련된 내용이것 같은데.. 모두 호출하는 형태가 다 다른것 같습니다.
왜 각각의 방식이 필요한지.. 그리고 내부 메커니즘은 어떻게 다른지 전반적으로 알고 싶습니다...
1. Intent를 이용하여 다른 Activity를 호출할때 startActivity()를 이용하는데요, 호출 당하는 Activity는 기본적으로 다른 Process에서 동작하는지요? 만약 다른 Process에서 동작한다면 startActivity()내부에서 RPC관련 내용이 포함되어 있을것 같은데 맞나요?? AIDL을 정의하지 않아도 어떻게 다른 Process를 호출할 수 있나요? AIDL이 내부적으로 숨어 있나요?
2. AIDL을 이용하여 Remote Interface를 만들고 이를 노출 시킨 후 이 Interface를 호출하려면 ServiceConnection, bindService()등을 이용해야 하는데요... 왜 AIDL을 써야하는지, 어떤경우에 AIDL을 이용하여 개발해야되는지요..또한 startActivity나 startService()와는 어떤관계인지요..
3. Android에서 제공하는 Service를 이용하려면 getSystemService()를 이용해야 하는데요. 왜 이런행태로 호출해야 되는지요?
왜 startServcie()로 하면 안되는지... 그리고 AIDL과는 어떠한 연관성이 있는지 궁금합니다.
감사합니다.
모두 RPC에 관련된 내용이것 같은데.. 모두 호출하는 형태가 다 다른것 같습니다.
왜 각각의 방식이 필요한지.. 그리고 내부 메커니즘은 어떻게 다른지 전반적으로 알고 싶습니다...
1. Intent를 이용하여 다른 Activity를 호출할때 startActivity()를 이용하는데요, 호출 당하는 Activity는 기본적으로 다른 Process에서 동작하는지요? 만약 다른 Process에서 동작한다면 startActivity()내부에서 RPC관련 내용이 포함되어 있을것 같은데 맞나요?? AIDL을 정의하지 않아도 어떻게 다른 Process를 호출할 수 있나요? AIDL이 내부적으로 숨어 있나요?
2. AIDL을 이용하여 Remote Interface를 만들고 이를 노출 시킨 후 이 Interface를 호출하려면 ServiceConnection, bindService()등을 이용해야 하는데요... 왜 AIDL을 써야하는지, 어떤경우에 AIDL을 이용하여 개발해야되는지요..또한 startActivity나 startService()와는 어떤관계인지요..
3. Android에서 제공하는 Service를 이용하려면 getSystemService()를 이용해야 하는데요. 왜 이런행태로 호출해야 되는지요?
왜 startServcie()로 하면 안되는지... 그리고 AIDL과는 어떠한 연관성이 있는지 궁금합니다.
감사합니다.
1.보통 같은 애플리케이션 안에 있는 Activity는 같은 프로세스에서 다른 애플리케이션에 있는 Activity는 다른 프로세스에서 실행됩니다. 물론 동작하는 프로세스를 조정하는 방법도 있지만 일반적으로 그렇습니다. Intent라는 것이 전부 내부적으로 RPC를 통해서 이루어진다고 보시면 됩니다.
2. http://www.androidpub.com/8013 이 글을 참고하시기 바랍니다.
3. http://www.androidpub.com/6167 이 글을 참고하시기 바랍니다.
3번도 다르게 답변해둔게 있었는데 질문하신 분이 지웠네요. 안드님도 http://www.androidpub.com/10799 이 글 필독 부탁드립니다.