1. 1
2014 Mid-term Examination (100)
Smart Device Structure
Date: October 28, 2014
1. Wearable Device(or Wearable)를 이용하여 할 수 있는 응용예를 하나
만 제시하고 논리적으로 설명하시오. Wearable 가까이에 Smartphone
이 있을 수도 있다고 가정. (20)
[건강 관리 장치]
- Wearable에 다양한 센서(3축 가속, 혈압, 박동 등)를 장착하여 현재 사용자
의 다양한 상태를 계속 저장한다.
- Wearable은 Battery 한계로 인해 복잡한 계산은 수행할 수 없고, 무선 접속
도 제한을 받으므로 주변에 Smartphone이 있을 경우에만 Smartphone을 활
용하여 정보 계산과 무선 접속을 실행한다.
- 사용자의 생체 정보는 Wearable에 보관하지 않고 Smartphone을 거쳐
Cloud Server에 보낸다. 다만, 생체 정보는 개인 정보이므로 암호화를 통해
사용자 이외에는 복원할 수 없도록 한다.
- Cloud Server는 다양한 Algorithm을 이용하여 사용자의 건강 상태를 분석
하고 타사용자와의 비교를 통해 다양한 권고 사항을 사용자에게 제공한다.
2. Smart Device의 3대 구성 요소중 I/O Interface가 필요한 이유는 무엇
인지 구체적으로 설명하시오. I/O Interface를 활용한 예도 하나 제시하라.
(20)
- Smart Device는 Battery와 Memory 한계로 인해 다양한 계산이나 상황 판
단을 하기는 부족하다. 이를 해결할 수 있는 것이 외부 Network과 연결되는
것이다.
- 따라서, Smart Device는 유선이나 무선 등으로 외부 Network과 연결하기
위해 I/O Interface가 반드시 필요하다.
- 예를 들면, 음성 인식이나 문자 인식은 복잡한 계산과 정보가 필요하므로,
Smartphone이 자체적으로 해결하지 않고 최소한의 핵심 정보만 Cloud
Server에 보내어 음성이나 문자 인식을 수행한 후, Smartphone의 I/O
2. 2
Interface를 이용하여 그 결과만 Smartphone에 보낸다.
3. Java로 작성한 Android Application이 Compile되어 Dalvik Virtual
Machine(DVM)으로 실행(Runtime)되는 시간적 순서를 파일 확장자 중심
으로 설명하시오. XML에 대해서는 기술하지 말 것. (20)
- Java로 Source Code(*.java)를 작성한다.
- Java Source Code를 Compile하면 Java Virtual Machine(JVM)이 실행할 수
있는 Bytecode인 *.class File이 생긴다.
- Android에서는 JVM을 직접 구동하지 않고 Mobile에 최적화된 DVM을 사
용하므로 Dalvik Executable인 *.dex를 만든다. DEX는 Dalvik 실행 File이다.
- *.dex를 Smartphone에서 구동하기 위해 Application Package(APK)인 *.apk
를 만들어 Smartphone에 넣는다. APK는 Application 설치를 위한 File이다.
4. Smartphone에서 호수신(Receiving Call)을 처리하는 방법을 설명하시오.
(40)
1) 현재 호상태를 확인하는 Listener인 PhoneStateListener를 초기화해서
Activity에서 실행하는 순서를 문장으로 설명하시오. (20)
- Android OS에서 Telephony Manager를 제공하고 있으므로 Context를 이용
해 OS의 Telephony Manager에 접근한다.
- Telephony Manager가 제공하는 listen 함수를 이용해 우리가 만든
PhoneStateListener를 등록한다.
- 전화가 걸려오면 우리 Activity는 Background로 들어가 실행이 되지 않으
므로 Background에서 돌아갈 수 있는 Service를 만든다.
- 이 Service에 우리가 작성한 PhoneStateListener를 Member Variable로 만
들어 Background에서도 Telephony Manager에 등록된 PhoneStateListener가
구동되게 한다.
2) Android Activity에서 Service를 실행하는 방법을 Intent 중심으로
Programming하라. (10)
3. 3
① onCreate 함수에만 작성: 자동 생성 Code는 적을 필요 없음, Error
처리할 필요 없음
② Activity에 선언된 Service명은 PhoneRxService로 가정
③ onCreate 함수내 Code는 전체 2줄 내외로 작성할 것
public void onCreate(Bundle savedInstanceState) {
Intent cIntent = new Intent(this, PhoneRxService.class);
startService(cIntent);
}
3) 문제 2)와 동일한 조건에서 Service를 종료하는 방법을 제시하라. (10)
public void onCreate(Bundle savedInstanceState) {
Intent cIntent = new Intent(this, PhoneRxService.class);
stopService(cIntent);
}