2019학년도 1학기 기말시험 기출 문제 중, 중요한 개념에 대한 문제를 추려 설명했다.1. 안드로이드 프로젝트의 버전이나 이름 등과 같은 주요 속성을 정의하는 파일은 무엇인가? ① AndroidManifest.xml ② R.java ③ activity_main.xml ④ strings.xml ▶ 설명 · AndroidManifest.xml 파일은 앱에 대한 정보를 담고 있다. 애플리케이션의 구성 요소나 권한 등의 정보를 정의한 파일로 프로젝트에 상관없이 파일 이름이 고정돼 있다.· R.java 파일은 여러 XML 파일에서 정의된 데이터들에 대한 정보를 저장하고, 다양한 ID에 대한 접근 정보 등이 저장되고 관리되는 파일이다. 개발자는 이 파일을 변경해서는 안된다.· activity_main.xml 파일은 MainActivity.java에 대한 레이아웃을 정의한 파일로 화면 레이아웃에 대한 속성을 부여한다.· MainActivity.java 파일은 애플리케이션의 실행 부분으로 XML 파일을 사용해 앱의 화면을 구성하거나 작업을 수행하는 파일이다. 사용자의 요구에 반응해 새로운 액티비티를 생성하거나 사용자의 요구 사항을 만족시키는 작업을 수행한다. 실행의 시작이 되며, 사용자와의 상호작용의 주체 역할을 한다.· strings.xml 파일은 문자열의 속성을 정의한 XML 파일로 ID에 해당하는 문자열을 저장한다. 2. 특정 이벤트가 발생했을 때 시스템에 의해 자동으로 호출되는 메소드는 무엇인가? ① 핸들러 메소드 ② 콜백 메소드 ③ 이벤트 메소드 ④ 연산자 메소드 ▶ 설명 · 사용자의 이벤트를 처리하는 방법에는 콜백 메소드 재정의, 리스너 인터페이스의 구현, 액티비티를 통한 리스너의 구현, 뷰를 통한 리스너의 구현이 있다.· 콜백 메소드는 특정 이벤트가 발생했을 때 시스템에 의해 자동으로 호출된다. 이벤트가 발생했을 때, 발생 이벤트에 해당하는 콜백 메소드를 재정의하는 것이다. 콜백 메소드를 재정의하면 특정 이벤트가 발생할 시점에 콜백 메소드가 시스템에 의해 자동으로 호출되므로 특정 이벤트의 발생 시점을 알 수 있으며, 이벤트에 대한 상세한 정보까지 얻을 수 있다.· 리스너 인터페이스는 특정 이벤트를 처리하는 인터페이스이며, 이벤트 발생을 처리한다. 대응되는 이벤트를 받는 하나의 메소드가 선언돼 있으며, 모두 뷰의 내부 인터페이스로 선언돼 있다. 이벤트를 처리하려면 리스너 인터페이스가 리스너의 추상 메소드인 이벤트 핸들러를 구현해야 한다.· 액티비티를 통한 리스너의 구현에서 액티비티는 액티비티를 이미 상속받지만 리스너 인터페이스는 개수에 상관없이 얼마든지 구현할 수 있다. 선언문에서 리스너 인터페이스를 상속받고 본체에 이벤트 핸들러를 구현하기만 하면 된다. 별도의 클래스를 추가로 선언하지 않고 액티비티가 리스너 인터페이스를 직접 구현한다.· 뷰를 통한 리스너의 구현은 뷰를 생성하고 클래스 선언문이 있으므로 뷰 자신이 필요로 하는 리스너 인터페이스를 상속받아 구현한다. 3. 인텐트(Intent)에 대한 설명으로 틀린 것은 무엇인가? ① 액티비티끼리 서로 호출하기 위해 필요한 ‘통신 장치’ 혹은 ‘메시지 전달 방법’이다. ② 입력을 받는 액티비티를 호출할 경우에는 사용자가 입력한 정보가 무엇인지 반환할 필요가 없다. ③ 인텐트는 액티비티뿐만 아니라 BroadCastReceiver






