Enviar pesquisa
Carregar
[A3]deview 2012 network binder
•
0 gostou
•
1,550 visualizações
NAVER D2
Seguir
Tecnologia
Negócios
Denunciar
Compartilhar
Denunciar
Compartilhar
1 de 28
Baixar agora
Baixar para ler offline
Recomendados
Scala as "Better Java" from object-oriented viewpoint
Scala as "Better Java" from object-oriented viewpoint
lyrical_logical
R Fi Short Overview09
R Fi Short Overview09
FinbarrMcGrath
Data access layer and schema definitions
Data access layer and schema definitions
Luciano Resende
Python
Python
Vinayak Hegde
Deview 2013 - 나는 왜 개발자인데자신이 없을까?
Deview 2013 - 나는 왜 개발자인데자신이 없을까?
Minsuk Lee
142 리눅스와 모바일 day1-track4_2_v1.5
142 리눅스와 모바일 day1-track4_2_v1.5
NAVER D2
C5 모바일 웹ui개발 아직도 맨땅에 삽질부터 하십니까
C5 모바일 웹ui개발 아직도 맨땅에 삽질부터 하십니까
NAVER D2
[E5]googles engineering culture
[E5]googles engineering culture
NAVER D2
Recomendados
Scala as "Better Java" from object-oriented viewpoint
Scala as "Better Java" from object-oriented viewpoint
lyrical_logical
R Fi Short Overview09
R Fi Short Overview09
FinbarrMcGrath
Data access layer and schema definitions
Data access layer and schema definitions
Luciano Resende
Python
Python
Vinayak Hegde
Deview 2013 - 나는 왜 개발자인데자신이 없을까?
Deview 2013 - 나는 왜 개발자인데자신이 없을까?
Minsuk Lee
142 리눅스와 모바일 day1-track4_2_v1.5
142 리눅스와 모바일 day1-track4_2_v1.5
NAVER D2
C5 모바일 웹ui개발 아직도 맨땅에 삽질부터 하십니까
C5 모바일 웹ui개발 아직도 맨땅에 삽질부터 하십니까
NAVER D2
[E5]googles engineering culture
[E5]googles engineering culture
NAVER D2
Connections and Ports in ESX / ESXi
Connections and Ports in ESX / ESXi
Dudley Smith
EXPERIENCES WITH HIGH DEFINITION INTERACTIVE VIDEO ...
EXPERIENCES WITH HIGH DEFINITION INTERACTIVE VIDEO ...
Videoguy
Microsoft lync server 2010 protocol workloads poster
Microsoft lync server 2010 protocol workloads poster
Huda Kamaruzaman
고품질웹앱개발전략
고품질웹앱개발전략
민태 김
Evolution of a Memcached Deployment Webinar 2010 01 13
Evolution of a Memcached Deployment Webinar 2010 01 13
Gear6
Benchmarker - A Good Friend for Performance
Benchmarker - A Good Friend for Performance
kwatch
Living Company vol.1 Review
Living Company vol.1 Review
Hyuncheol Jeon
HTML5를 활용한 하이브리드 앱개발하기
HTML5를 활용한 하이브리드 앱개발하기
정현 황
SDEC2011 Replacing legacy Telco DB/DW to Hadoop and Hive
SDEC2011 Replacing legacy Telco DB/DW to Hadoop and Hive
Korea Sdec
Stefan Tilkov Pragmatic Intro To Rest
Stefan Tilkov Pragmatic Intro To Rest
deimos
Cloud Scaling with Memcached
Cloud Scaling with Memcached
Gear6
Oracle E-Business Suite Open Interfaces and Integrations (11.5.10.2 Financials)
Oracle E-Business Suite Open Interfaces and Integrations (11.5.10.2 Financials)
David Kelly
Best of Breed OpenStack Compute & Block Storage Cloud... .pdf
Best of Breed OpenStack Compute & Block Storage Cloud... .pdf
OpenStack Foundation
Providing user support in Web-of-Things enabled Smart Spaces
Providing user support in Web-of-Things enabled Smart Spaces
Benoit Christophe
[F6]sooin lang vlab
[F6]sooin lang vlab
NAVER D2
Product card super_sign_send
Product card super_sign_send
openerp1
クラウドコンピューティングと OSS
クラウドコンピューティングと OSS
Open Source Software Association of Japan
Copy (1) Of Rack Layout
Copy (1) Of Rack Layout
jakeborton
Port Logistics Group Overview
Port Logistics Group Overview
mheilman
Exchange 2007 poster
Exchange 2007 poster
Huda Kamaruzaman
[211] 인공지능이 인공지능 챗봇을 만든다
[211] 인공지능이 인공지능 챗봇을 만든다
NAVER D2
[233] 대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing: Maglev Hashing Scheduler i...
[233] 대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing: Maglev Hashing Scheduler i...
NAVER D2
Mais conteúdo relacionado
Semelhante a [A3]deview 2012 network binder
Connections and Ports in ESX / ESXi
Connections and Ports in ESX / ESXi
Dudley Smith
EXPERIENCES WITH HIGH DEFINITION INTERACTIVE VIDEO ...
EXPERIENCES WITH HIGH DEFINITION INTERACTIVE VIDEO ...
Videoguy
Microsoft lync server 2010 protocol workloads poster
Microsoft lync server 2010 protocol workloads poster
Huda Kamaruzaman
고품질웹앱개발전략
고품질웹앱개발전략
민태 김
Evolution of a Memcached Deployment Webinar 2010 01 13
Evolution of a Memcached Deployment Webinar 2010 01 13
Gear6
Benchmarker - A Good Friend for Performance
Benchmarker - A Good Friend for Performance
kwatch
Living Company vol.1 Review
Living Company vol.1 Review
Hyuncheol Jeon
HTML5를 활용한 하이브리드 앱개발하기
HTML5를 활용한 하이브리드 앱개발하기
정현 황
SDEC2011 Replacing legacy Telco DB/DW to Hadoop and Hive
SDEC2011 Replacing legacy Telco DB/DW to Hadoop and Hive
Korea Sdec
Stefan Tilkov Pragmatic Intro To Rest
Stefan Tilkov Pragmatic Intro To Rest
deimos
Cloud Scaling with Memcached
Cloud Scaling with Memcached
Gear6
Oracle E-Business Suite Open Interfaces and Integrations (11.5.10.2 Financials)
Oracle E-Business Suite Open Interfaces and Integrations (11.5.10.2 Financials)
David Kelly
Best of Breed OpenStack Compute & Block Storage Cloud... .pdf
Best of Breed OpenStack Compute & Block Storage Cloud... .pdf
OpenStack Foundation
Providing user support in Web-of-Things enabled Smart Spaces
Providing user support in Web-of-Things enabled Smart Spaces
Benoit Christophe
[F6]sooin lang vlab
[F6]sooin lang vlab
NAVER D2
Product card super_sign_send
Product card super_sign_send
openerp1
クラウドコンピューティングと OSS
クラウドコンピューティングと OSS
Open Source Software Association of Japan
Copy (1) Of Rack Layout
Copy (1) Of Rack Layout
jakeborton
Port Logistics Group Overview
Port Logistics Group Overview
mheilman
Exchange 2007 poster
Exchange 2007 poster
Huda Kamaruzaman
Semelhante a [A3]deview 2012 network binder
(20)
Connections and Ports in ESX / ESXi
Connections and Ports in ESX / ESXi
EXPERIENCES WITH HIGH DEFINITION INTERACTIVE VIDEO ...
EXPERIENCES WITH HIGH DEFINITION INTERACTIVE VIDEO ...
Microsoft lync server 2010 protocol workloads poster
Microsoft lync server 2010 protocol workloads poster
고품질웹앱개발전략
고품질웹앱개발전략
Evolution of a Memcached Deployment Webinar 2010 01 13
Evolution of a Memcached Deployment Webinar 2010 01 13
Benchmarker - A Good Friend for Performance
Benchmarker - A Good Friend for Performance
Living Company vol.1 Review
Living Company vol.1 Review
HTML5를 활용한 하이브리드 앱개발하기
HTML5를 활용한 하이브리드 앱개발하기
SDEC2011 Replacing legacy Telco DB/DW to Hadoop and Hive
SDEC2011 Replacing legacy Telco DB/DW to Hadoop and Hive
Stefan Tilkov Pragmatic Intro To Rest
Stefan Tilkov Pragmatic Intro To Rest
Cloud Scaling with Memcached
Cloud Scaling with Memcached
Oracle E-Business Suite Open Interfaces and Integrations (11.5.10.2 Financials)
Oracle E-Business Suite Open Interfaces and Integrations (11.5.10.2 Financials)
Best of Breed OpenStack Compute & Block Storage Cloud... .pdf
Best of Breed OpenStack Compute & Block Storage Cloud... .pdf
Providing user support in Web-of-Things enabled Smart Spaces
Providing user support in Web-of-Things enabled Smart Spaces
[F6]sooin lang vlab
[F6]sooin lang vlab
Product card super_sign_send
Product card super_sign_send
クラウドコンピューティングと OSS
クラウドコンピューティングと OSS
Copy (1) Of Rack Layout
Copy (1) Of Rack Layout
Port Logistics Group Overview
Port Logistics Group Overview
Exchange 2007 poster
Exchange 2007 poster
Mais de NAVER D2
[211] 인공지능이 인공지능 챗봇을 만든다
[211] 인공지능이 인공지능 챗봇을 만든다
NAVER D2
[233] 대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing: Maglev Hashing Scheduler i...
[233] 대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing: Maglev Hashing Scheduler i...
NAVER D2
[215] Druid로 쉽고 빠르게 데이터 분석하기
[215] Druid로 쉽고 빠르게 데이터 분석하기
NAVER D2
[245]Papago Internals: 모델분석과 응용기술 개발
[245]Papago Internals: 모델분석과 응용기술 개발
NAVER D2
[236] 스트림 저장소 최적화 이야기: 아파치 드루이드로부터 얻은 교훈
[236] 스트림 저장소 최적화 이야기: 아파치 드루이드로부터 얻은 교훈
NAVER D2
[235]Wikipedia-scale Q&A
[235]Wikipedia-scale Q&A
NAVER D2
[244]로봇이 현실 세계에 대해 학습하도록 만들기
[244]로봇이 현실 세계에 대해 학습하도록 만들기
NAVER D2
[243] Deep Learning to help student’s Deep Learning
[243] Deep Learning to help student’s Deep Learning
NAVER D2
[234]Fast & Accurate Data Annotation Pipeline for AI applications
[234]Fast & Accurate Data Annotation Pipeline for AI applications
NAVER D2
Old version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing
Old version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing
NAVER D2
[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지
[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지
NAVER D2
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기
NAVER D2
[224]네이버 검색과 개인화
[224]네이버 검색과 개인화
NAVER D2
[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)
[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)
NAVER D2
[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기
[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기
NAVER D2
[213] Fashion Visual Search
[213] Fashion Visual Search
NAVER D2
[232] TensorRT를 활용한 딥러닝 Inference 최적화
[232] TensorRT를 활용한 딥러닝 Inference 최적화
NAVER D2
[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지
[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지
NAVER D2
[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터
[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터
NAVER D2
[223]기계독해 QA: 검색인가, NLP인가?
[223]기계독해 QA: 검색인가, NLP인가?
NAVER D2
Mais de NAVER D2
(20)
[211] 인공지능이 인공지능 챗봇을 만든다
[211] 인공지능이 인공지능 챗봇을 만든다
[233] 대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing: Maglev Hashing Scheduler i...
[233] 대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing: Maglev Hashing Scheduler i...
[215] Druid로 쉽고 빠르게 데이터 분석하기
[215] Druid로 쉽고 빠르게 데이터 분석하기
[245]Papago Internals: 모델분석과 응용기술 개발
[245]Papago Internals: 모델분석과 응용기술 개발
[236] 스트림 저장소 최적화 이야기: 아파치 드루이드로부터 얻은 교훈
[236] 스트림 저장소 최적화 이야기: 아파치 드루이드로부터 얻은 교훈
[235]Wikipedia-scale Q&A
[235]Wikipedia-scale Q&A
[244]로봇이 현실 세계에 대해 학습하도록 만들기
[244]로봇이 현실 세계에 대해 학습하도록 만들기
[243] Deep Learning to help student’s Deep Learning
[243] Deep Learning to help student’s Deep Learning
[234]Fast & Accurate Data Annotation Pipeline for AI applications
[234]Fast & Accurate Data Annotation Pipeline for AI applications
Old version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing
Old version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing
[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지
[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기
[224]네이버 검색과 개인화
[224]네이버 검색과 개인화
[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)
[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)
[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기
[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기
[213] Fashion Visual Search
[213] Fashion Visual Search
[232] TensorRT를 활용한 딥러닝 Inference 최적화
[232] TensorRT를 활용한 딥러닝 Inference 최적화
[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지
[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지
[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터
[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터
[223]기계독해 QA: 검색인가, NLP인가?
[223]기계독해 QA: 검색인가, NLP인가?
Último
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
gurkirankumar98700
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
Allon Mureinik
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
HostedbyConfluent
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAG
Sujit Pal
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
BookNet Canada
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
Enterprise Knowledge
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
Sinan KOZAK
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Drew Madelung
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Miguel Araújo
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
ThousandEyes
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
Michael W. Hawkins
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
HampshireHUG
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
Maria Levchenko
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
shyamraj55
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
giselly40
How to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
naman860154
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
Pooja Nehwal
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
2toLead Limited
Último
(20)
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAG
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
How to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
[A3]deview 2012 network binder
1.
2.
2.1
3.
4.
Motives
5.
2.2
6.
7.
Service
8.
Requirements
9.
3.1
10.
11.
It
12.
Should
13.
Be
14.
…⋯
15.
3.2
16.
17.
Key
18.
Technical
19.
Ideas
20.
3.3
21.
Technical
22.
Issues
23.
3.4
24.
25.
Future
26.
Works
27.
4.1
28.
29.
Remote
30.
Content
31.
Provider
32.
4.2
33.
34.
Remote
35.
Intent
36.
37.
38.
■ 플랫폼
39.
Biz
40.
영역에서
41.
고객에게
42.
새로운
43.
가치를
44.
제공하고
45.
세계적
46.
수준의
47.
경쟁력을
48.
가진
49.
플랫폼
50.
사업을
51.
수행하고자
52.
2011년
53.
10월
54.
SK텔레콤으로부터
55.
분할하여
56.
신설한
57.
회사
58.
■ Contents
59.
Delivery
60.
/
61.
LBS
62.
/
63.
New
64.
Media
65.
/
66.
Commerce
67.
68.
Ad
69.
/
70.
Communication
71.
72.
SNS
73.
/
74.
Music
75.
/
76.
Internet
77.
78.
Finance
79.
Portal
80.
/
81.
RD
82.
등
83.
다양한
84.
사업
85.
영역에서
86.
가치를
87.
창출
88.
■ 대표적
89.
서비스는…⋯
90.
■ 더
91.
많은
92.
정보는…⋯
93.
• 홈
94.
페이지:
95.
96.
http://www.skplanet.co.kr/
97.
• 인재
98.
채용:
99.
http://www.skplanet.co.kr/Recruit/Vision.aspx
100.
101.
■ Binder
102.
-
103.
The
104.
facility
105.
to
106.
provide
107.
bindings
108.
to
109.
functions
110.
and
111.
data
112.
from
113.
one
114.
execution
115.
e
nvironment
116.
to
117.
another
118.
■ Basic
119.
Usage
120.
• Create
121.
AIDL
122.
• Implement
123.
Remote
124.
Interface
125.
(Method)
126.
• Create
127.
and
128.
return
129.
Stub
130.
Object
131.
in
132.
onBind()
133.
method
134.
in
135.
Service
136.
• Request
137.
bindService()
138.
and
139.
get
140.
Remote
141.
Interface
142.
through
143.
onServiceConnected()
144.
callback
145.
• Use
146.
Remote
147.
Interface
148.
just
149.
like
150.
local
151.
Interface
152.
■ Basic
153.
Concept
154.
• Communication
155.
Model
156.
- Cllient/Server
157.
- Proxy/Stub
158.
• Transaction
159.
- Request
160.
and
161.
reply
162.
• Parcel
163.
and
164.
marshalling/unmarshalling
165.
166.
IRemoteSvc.aidl
167.
interface IRemoteSvc { void foo(); }
168.
Client
169.
Proxy
170.
IRemoteSvc.java
171.
Stub
172.
Service
173.
IRemoteSvc.Stub.Proxy
174.
implements
175.
IRemoteSvc.Stub
176.
public
177.
void
178.
foo()
179.
{
180.
public
181.
void
182.
foo()
183.
{
184.
185.
//
186.
…⋯
187.
188.
mRemote.transact();
189.
}
190.
}
191.
public
192.
interface
193.
IRemoteSvc
194.
extends
195.
android.os.Iinterface
196.
{
197.
198.
public
199.
static
200.
abstract
201.
class
202.
Stub
203.
extends
204.
android.os.Binder
205.
implements
206.
IRemoteSvc
207.
{
208.
209.
210.
public
211.
static
212.
IRemoteSvc
213.
asInterface(android.os.IBinder
214.
obj)
215.
{
216.
…⋯
217.
}
218.
219.
220.
public
221.
boolean
222.
onTransact(int
223.
code,
224.
Parcel
225.
data,
226.
Parcel
227.
reply,
228.
int
229.
flags)
230.
{
231.
…⋯
232.
}
233.
234.
235.
236.
237.
238.
private
239.
static
240.
class
241.
Proxy
242.
implements
243.
IRemoteSvc
244.
{
245.
246.
247.
248.
public
249.
void
250.
foo()
251.
{
252.
253.
254.
255.
256.
//
257.
mRemote
258.
==
259.
IBinder
260.
261.
262.
263.
264.
mRemote.transact();
265.
266.
267.
268.
}
269.
270.
271.
}
272.
273.
}
274.
}
275.
276.
Activity
277.
Manager
278.
Service
279.
③
280.
PKGMgr
281.
Lookup
282.
Client
283.
Proxy
284.
④
285.
execute
286.
Stub
287.
Service
288.
⑧
289.
new
290.
IRemoteSvc.Stub.Proxy
291.
292.
attach
293.
implements
294.
IRemoteSvc.Stub. Proxy
295.
IRemoteSvc.Stub
296.
public
297.
void
298.
foo()
299.
{
300.
301.
//
302.
…⋯
303.
②
304.
IActivityManager.bindService()
305.
}
306.
①
307.
bindService(“IRemoteSvc”)
308.
⑥
309.
return
310.
IRemoteService.Stub
311.
(Binder)
312.
⑦
313.
return
314.
IBinder
315.
(BinderProxy)
316.
Main
317.
T
hread
318.
Android
319.
Framework
320.
Android
321.
Framework
322.
⑤
323.
Create
324.
325.
Bind
326.
Se
rvice
327.
Binder
328.
IActivityManager
329.
IServiceConnection
330.
Binder
331.
Thread
332.
User
333.
Space
334.
Kernel
335.
Space
336.
Binder
337.
338.
public
339.
boolean
340.
onTransact(int
341.
code,
342.
Parcel
343.
data,
344.
Parcel
345.
reply,
346.
int
347.
flags)
348.
{
349.
350.
switch(code)
351.
{
352.
353.
case
354.
TRANSACTION_foo:
355.
356.
357.
data.enforceInterface(DESCRIPTOR);
358.
359.
360.
this.foo();
361.
362.
}
363.
}
364.
Activity
365.
Manager
366.
Service
367.
Client
368.
Proxy
369.
Stub
370.
Service
371.
①
372.
call
373.
foo()
374.
IRemoteSvc.Stub. ⑥
375.
Call
376.
foo()’s
377.
Implementation
378.
Proxy.foo()
379.
IRemoteSvc.Stub. public
380.
void
381.
foo()
382.
{
383.
②
384.
Parcelizing
385.
③
386.
Call
387.
BinderProxy.transact()
388.
onTransact()
389.
390.
//
391.
…⋯
392.
}
393.
⑤
394.
De-Parcelizing
395.
④
396.
Binder.onTransact()
397.
Main
398.
T
hread
399.
Android
400.
Framework
401.
Android
402.
Framework
403.
Binder
404.
Binder
405.
IActivityManager
406.
IServiceConnection
407.
Thread
408.
User
409.
Space
410.
Kernel
411.
Space
412.
Binder
413.
public
414.
void
415.
foo
416.
()
417.
{
418.
419.
Parcel
420.
_data
421.
=
422.
Parcel.obtain();
423.
424.
Parcel
425.
_reply
426.
=
427.
Parcel.obtain();
428.
429.
_data.writeInterfaceToken(DESCRIPTOR);
430.
431.
mRemote.transact(Stub.TRANSACTION_foo,
432.
_data,
433.
_reply,
434.
0);
435.
}
436.
437.
438.
■ Binder는
439.
단말
440.
서비스
441.
간
442.
연동의
443.
핵심이
444.
되는
445.
기술임
446.
■ Binder를
447.
통해
448.
서로
449.
다른
450.
App.들이
451.
자신의
452.
Local
453.
Interface에
454.
접근하듯이
455.
서로간에
456.
서비스
457.
연동을
458.
할
459.
수
460.
있음
461.
■ 그러나,
462.
만약
463.
다른
464.
디바이스에
465.
있는
466.
서비스와
467.
연동하고자
468.
한다면...
469.
• 일단
470.
서버를
471.
만들고...
472.
• 서로
473.
다른
474.
디바이스가
475.
서버에
476.
특정
477.
ID를
478.
만들어
479.
등록하여
480.
서로를
481.
찾을
482.
수
483.
있도록
484.
해줘야
485.
하고...
486.
• 서버와
487.
단말
488.
간,
489.
단말과
490.
단말
491.
간
492.
프로토콜을
493.
설계해야
494.
하고...
495.
• 또
496.
배터리
497.
문제가
498.
있을지도
499.
모르니,
500.
서비스를
501.
제공하는
502.
디바이스
503.
상의
504.
서비스는
505.
Push를
506.
받도록
507.
해
야
508.
할
509.
듯
510.
하고...
511.
• 등등...
512.
■ 복잡하다!!
513.
■ 서로
514.
다른
515.
디바이스
516.
상에서도
517.
Binder를
518.
이용
519.
할
520.
수
521.
있으면
522.
편하겠네
523.
Network
524.
Binder
525.
526.
■ 네트워크
527.
의존성
528.
최소화
529.
• 모든
530.
네트워크
531.
환경(Cellular
532.
/
533.
WiFi,
534.
Behind
535.
the
536.
Firewall
537.
/
538.
Router,
539.
Private
540.
IP,
541.
etc)에서
542.
서비스
543.
제공
544.
가능해야
545.
함
546.
■ 모든
547.
Android
548.
디바이스
549.
지원(주1)
550.
• 기
551.
출시된
552.
Android
553.
디바이스에서도,
554.
Android
555.
Framework
556.
변경
557.
없이
558.
서비스
559.
제공
560.
가능해야
561.
함
562.
■ 원격
563.
서비스
564.
검색
565.
방법
566.
제공
567.
• 원격
568.
디바이스를
569.
Identify하고,
570.
또한
571.
원격
572.
디바이스
573.
내의
574.
서비스를
575.
Identify
576.
할
577.
수
578.
있는
579.
방법
580.
제공
581.
■ 개발
582.
환경의
583.
투명성
584.
보장
585.
• 기존
586.
Binder
587.
개발
588.
환경(AIDL,
589.
Auto-generated
590.
Proxy/Stub
591.
code,
592.
Binder-related
593.
API)을
594.
그대로
595.
이용할
596.
수
597.
있어야
598.
함
599.
■ 최소
600.
노력,
601.
최대
602.
효과
603.
• Network
604.
Binder를
605.
위한
606.
추가
607.
개발
608.
환경은
609.
One
610.
Package로
611.
제공되어
612.
적용이
613.
최대한
614.
간단해야
615.
함
616.
■ 보안
617.
• 자기
618.
단말
619.
접근
620.
/
621.
타인
622.
단말
623.
접근에
624.
대한
625.
보안
626.
정책
627.
제공
628.
가능해야
629.
함
630.
(주1)
631.
전화번호를
632.
가지는
633.
단말에
634.
국한함
635.
636.
637.
■ Security
638.
• 자기
639.
단말
640.
접근
641.
- 자기
642.
단말
643.
등록
644.
(SMS
645.
인증)
646.
• 타인
647.
단말
648.
접근
649.
- Remote
650.
Binding
651.
요청
652.
시
653.
서비스
654.
제공
655.
관련
656.
사용자
657.
동의
658.
얻도록
659.
함
660.
■ Device
661.
Look-up
662.
• 전화
663.
번호에
664.
기반
665.
• URI
666.
Scheme
667.
이용하여
668.
원격
669.
디바이스
670.
표현
671.
• URI
672.
Scheme
673.
- Scheme
674.
name:
675.
binder
676.
- Authority
677.
• userInfo:
678.
전화
679.
번호
680.
• Hostname:
681.
@skplanet.co.kr
682.
• Ex)
683.
binder://821098765432@skplanet.co.kr
684.
■ Service
685.
Look-up
686.
• 기존
687.
Inteface(
688.
bindService()
689.
API)와
690.
최대한
691.
유사해야
692.
함
693.
694.
■ Remote
695.
Service
696.
Export
697.
• AndroidManifest.xml
698.
■ Remote
699.
Service
700.
Binding
701.
Request
702.
• Client
703.
704.
■ Remote
705.
Service
706.
Creation
707.
• Server
708.
■ Remote
709.
Service
710.
Call
711.
• Client
712.
713.
■ Hooking
714.
Binding
715.
Request
716.
717.
Serializing
718.
Remote
719.
Method
720.
Call
721.
• IRemoteSvc.Stub.Proxy
722.
를
723.
통한
724.
원격
725.
메소드
726.
호출은
727.
결국,
728.
호출
729.
시
730.
전달된
731.
인자를
732.
Parcel은
733.
담은
734.
후
735.
시스템에서
736.
생
성해
737.
준(onServiceConnected)
738.
IBinder
739.
객체(mRemote)의
740.
transact()
741.
메소드를
742.
호출하여
743.
Binder에
744.
전달하는
745.
것임
746.
747.
시스템이
748.
반환하는
749.
IBinder
750.
객체를
751.
My
752.
Own
753.
Implementation으로
754.
바꿔
755.
줄
756.
수
757.
있다면,
758.
transact()로
759.
들어오는
760.
인자(code,
761.
data,
762.
reply,
763.
flags)를
764.
직접
765.
Serialize하여
766.
원격
767.
디바이스에
768.
네트워크로
769.
전송
770.
가능
771.
772.
Custom
773.
Binder
774.
개
발
775.
/
776.
Custom
777.
Bind
778.
기능
779.
제공
780.
• 원격
781.
디바이스에서는
782.
AIDL이
783.
생성해준
784.
Stub
785.
상의
786.
onTransact()
787.
메소드가
788.
클라이언트의
789.
IBinder.transact()
790.
에
791.
전달
된
792.
인자를
793.
동일하게
794.
받아
795.
De-Parcelizing
796.
하여
797.
실제
798.
foo()
799.
함수를
800.
호출해
801.
줌
802.
803.
클라이언트에서
804.
전달받은
805.
transact(
)
806.
인자(code,
807.
data,
808.
reply,
809.
flags)만
810.
그대로
811.
Input으로
812.
넣어서
813.
IRemoveSvc.Stub.onTransact()
814.
에
815.
넣어주면
816.
그냥
817.
실
행되지
818.
않을까?
819.
Client
820.
Proxy
821.
Stub
822.
Service
823.
①
824.
call
825.
foo()
826.
③
827.
Call
828.
BinderProxy.transact()
829.
IRemoteSvc.Stub. ⑥
830.
Call
831.
foo()’s
832.
Implementation
833.
Proxy.foo()
834.
④
835.
Binder.onTransact()
836.
IRemoteSvc.Stub. public
837.
void
838.
foo()
839.
{
840.
Binder
841.
②
842.
Parcelizing
843.
onTransact()
844.
845.
//
846.
…⋯
847.
Thread
848.
}
849.
⑤
850.
De-Parcelizing
851.
public
852.
boolean
853.
onTransact(int
854.
code,
855.
Parcel
856.
data,
857.
Parcel
858.
reply,
859.
int
860.
flags)
861.
{
862.
public
863.
void
864.
foo
865.
()
866.
{
Baixar agora