1 / 20

04. 안드로이드 응용 프로그램의 구조

04. 안드로이드 응용 프로그램의 구조. (1) 안드로이드 응용프로그램 수명주기. 1) 활동을 통한 과제 수행. 안드로이드 활동 - 응용프로그램이 수행하는 고유한 하나의 과제 또는 작업 - Activity Class (android.app.Activity). 게임 활동 구성예. 시동 / 스플래시 활동. 주 메뉴 활동. 고득점 활동. 게임 플레이 활동. 도움말 / 프로그램 정보 활동. (1) 안드로이드 응용프로그램 수명주기. 2) 의도를 통한 활동 전환.

long
Download Presentation

04. 안드로이드 응용 프로그램의 구조

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 04. 안드로이드 응용프로그램의 구조

  2. (1) 안드로이드 응용프로그램 수명주기 1) 활동을 통한 과제 수행 • 안드로이드 활동- 응용프로그램이 수행하는 고유한 하나의 과제 또는 작업- Activity Class (android.app.Activity) • 게임 활동 구성예 시동/스플래시 활동 주 메뉴 활동 고득점 활동 게임 플레이 활동 도움말/프로그램 정보 활동

  3. (1) 안드로이드 응용프로그램 수명주기 2) 의도를 통한 활동 전환 • 주 활동 (main activity) 설정 가능- iPhone 응용프로그램에는 main() 함수 없음- 안드로이드는 AndroidManifest.xml을 통해 가능 • 클래스 이름으로 새 활동 띄우기=> startActivity() 호출 (Intent형식의 매개변수) ※ Intent (의도를 나타내는 클래스) 란? - 비동기 메시지 메커니즘- 운영프로그램이 요청의 위해 의도메시지를 운영체제에 보냄,운영체제는 적절한 활동이나 서비스를 통해 요청처리 - 객체 구현 startActivity(new Intent(getApplicationContext(), MyDrawActivity.class)); 명시적인 Intent 객체, MyDrawActivity 해당하는 활동요청

  4. (1) 안드로이드 응용프로그램 수명주기 2) 의도를 통한 활동 전환 • 작용과 자료로 의도 만들기- 적절한 의도 필터(intent filter)를 만들어서 안드로이드 매니페스트 파일등록,운영체제가 조건을 만족하는 활동 선택- Intent객체는 작용과 자료로 이뤄짐 • 다른 응용프로그램에 속한 활동 띄우기- 적절한 권한보유시 다른 응용프로그램에 있는 외부활동들을 띄우는 것도 가능함- Intent객체는 작용과 자료로 이뤄짐- 구현예제 Uri number = Uri.parse(tel:5555551212);Intent dial = new Intent(Intent.ACTION_DIAL, number);startActivity(dial);

  5. (1) 안드로이드 응용프로그램 수명주기 2) 의도를 통한 활동 전환 • 의도를 통한 추가정보 전달- Intent클래스는 Bundle형식 객체에 이름/ 값 쌍을 저장하거나 조회하기 위한 편의용 메서드들도 제공 - 자료추가 예 Intent intent = new Intent(this, MyActivity.class);intent.putExtra(“SomeStringData”,”Foo”); intent.putExtra(“SomeBooleanData”,false); • 메뉴를 이용한 응용프로그램활동들과 의도들의 조직화 • 주 메뉴 : 스위치형식, 응용프로그램의 각 활동 실행- 드릴다운 : 디렉터리형식,하나의 메뉴항목은 하나의 활동에 해당하나, 펼쳐서 나오는 하위항목마다 각자 다른 자료가 의도를 통해서 활동전달

  6. (1) 안드로이드 응용프로그램 수명주기 2) 의도를 통한 활동 전환 • 서비스와 방송 수신자 다루기- 서비스 배경 프로세스로 실행, 웹서버와 비슷한 방식, 의도를 통해 실행* 관련메서드 : startService()와 bindService() - 방송 특정메시지에 관심을 표명했던 응용프로그램들 모두에게 전달,한 프로그램이 방송의 송신과 수신을 모두 수행 가능, 좀 더 넓은 범위의 대상들에게 특정사진을 알리는 용도

  7. (1) 안드로이드 응용프로그램 수명주기 3) 안드로이드 활동의 수명주기 • 스택구조에 의한 관리 새활동이 시작되면 스택 제일위에 있던 Activity객체가정지되고 새활동에 해당되는 Activity객체가 스택 제일위에 추가된다.그 활동이 끝나면 해당Activity객체가 스택에서 제거되고 이전의 Activity객체가 실행을 재개한다. • 수명주기란?한 활동이 생성되고 소멸되기까지의 일생

  8. 활동이 활동이 활동이 활동이 활동이 전경이 전경이 배경으로 배경으로 전경에서 간다. 된다. 간다. 실행됨 된다. (1) 안드로이드 응용프로그램 수명주기 3) 안드로이드 활동의 수명주기 • 활동콜백을 이용한 응용프로그램 상태 및 자원관리 활동시작 이 요청됨 onCreate() onStart() onRestart() onResume() 활동이 실행됨 메모리에서 활동이 삭제된다. onPause() onStop() onDestroy()

  9. (1) 안드로이드 응용프로그램 수명주기 3) 안드로이드 활동의 수명주기 • 활동콜백을 이용한 응용프로그램 상태 및 자원관리 • onCreate() - 활동의 정적자료의 초기화에 적합 - 레이아웃과 자료묶기 같은 초기설정작업 수행 • onResume() - 활동 자료의 초기화 및 준비에 적합- 오디오나 동영상, 애니메이션을 시작하기에 적합 • onPause() - 활동 자료의 중지, 저장, 해제에 적합- onResume()메서드에서 조회한 자료와 자원은 반드시onPause()에서 모두 해제해야 한다.

  10. (1) 안드로이드 응용프로그램 수명주기 3) 안드로이드 활동의 수명주기 • 활동전이 관리 (다른활동으로 넘어가는 것) • 영구적인 활동전이- 스플레시화면에서 주 메뉴로 전이되는 경우 - startActivity() 메서드와 적절한 finish() 메서드를 사용 • 일시적인 활동전이- 자식활동이 대화상자를 표시한 후 원래의 활동으로 복귀 - startActivityForResult() 메서드와onActivityResult() 메서드를 사용

  11. (2) AndroidManifest.xml • AndroidManifest.xml ? - 안드로이드 응용프로그램마다 하나씩 존재해야 함- 응용프로그램의 신원(identify)에 대한 중요정보(이름,버전, 구성요소,권한 등) 수록- 안드로이드 프로젝트의 최상위에 놓인다. - 이클립스사용시 해당 파일편집기를 이용하여 수정- <manifest>에 루트요소, <application>에 세부요소

  12. (2) AndroidManifest.xml 1) 응용프로그램의 신원관리 • 응용프로그램의 버전 설정 <manifest xmlns:android=http://schemas.android.com/apk/res/anroid package=“com.androidbook.multimedia”android:versionCode=“1” android:versionName=“1.0.0”> • android:versionName - 사용자 친화적인, 개발자가 정의하는 버전이름 - 사용자가 응용프로그램을 내려받거나 관리할때 표시됨 • android:versionCode - 운영체제가 응용프로그램 업그레이드를 관리

  13. (2) AndroidManifest.xml 1) 응용프로그램의 신원관리 • 응용프로그램의 이름과 아이콘 <application android:icon=“@drawable/icon” android:label=“@string/app_name”> • 커스텀 아이콘부여- 48x48픽셀크기의 PNG파일을 만들어 하나의 Drawable 자원 으로서 응용프로그램에 추가 - android:icon 특성에 그 아이콘을 지정 • 활동을 비롯한 응용프로그램 구성요소 등록 <activity android:name=“AudioActivity” /> • 모든활동에 정의해야 한다- 정의되지 않을시 해당활동은 실행되지 않음 (폭주상황과 유사한 오류메시지 나옴)

  14. (2) AndroidManifest.xml 1) 응용프로그램의 신원관리 • 의도필터를 이용해서 한 활동을 응용프로그램의 주 진입점으로 지정하기 <activity android:name=“.MainMenuActivity” android:label=“@string/app_name”> <intent-filter> <action android:name=“android.intent.action.MAIN”/> <category android:name=“android.intent.category.LAUNCHER/>” </intent-filter></activity> - MAIN : 작용 종류- LAUNCHER : 작용 범주

  15. (2) AndroidManifest.xml 1) 응용프로그램의 신원관리 • 그 외의 의도 필터 설정 <intent-filter> <action android:name=“android.intent.action.VIEW”/> <category android:name=“android.intent.category.BROWSABLE”/> <category android:name=“android.intent.category.DEFAULT”/> <data android:scheme=“geoname”/></intent-filter> - VIEW : 미리 정의된 작용 (특정 콘텐트의 내용표시) - BROWSABLE : 사용 범주- “geoname” : 자료스킴 geoname:// 로 시작되는 URI를 가진 의도가 전달되면 이 의도 필터를 가진 활동이 시작

  16. (2) AndroidManifest.xml 2) 권한 다루기 • 응용프로그램에 필요한 권한 등록 응용프로그램이 어떤 공유자원이나 특정기능을 사용해야 한다면해당 접근권한 들을 AndroidManifest.xml에 명시해야 한다.요청 가능한 권한들은 모두 android.Manifest.permission클래스에정의되어 있다- 내장카메라 접근요청 <uses-permission android:name=“android.permission.CAMERA”/> • 응용프로그램이 다른 응용프로그램에게 허락하는 권한들을 등록 • 권한 점검 및 적용- 활동이나 서비스를 시작할 때 - 콘텐트 제공자가 제공하는 자료에 접근할 때- 함수 호출 수준에서- Intent 객체로 방송을 보내거나 받을때

  17. (2) AndroidManifest.xml 3) 입력에 관한 HW / SW 요구사항 지정 • <uses-configuration>요소가 지원하는 특성

  18. (2) AndroidManifest.xml 3) 입력에 관한 HW / SW 요구사항 지정 • <uses-configuration>요소가 지원하는 특성- 적용 예 <uses-configuration android:reqHardKeyboard=“true” android:reqTouchScreen=“finger” /> <uses-configuration android:reqHardKeyboard=“true” android:reqTouchScreen=“stylus” /> 응용프로그램이 하드웨어 키보드를 요구하며 감압식 터치스크린 또는정전식 터치스크린을 요구{OR (또는) 로 결합할 수 없기 때문에 2개로 따로 지정}

  19. (2) AndroidManifest.xml 4) 라이브러리와 안드로이드 SDK버전 다루기 • 최소 안드로이드 SDK버전 지정 • <uses-sdk>요소의 android:minSdkVersion으로 지정- SDK에 연관된 API수준으로 표기 <uses-sdk android:minSdkVersion="2"/> API 수준 = “2” (SDK 1.1) <uses-sdk android:minSdkVersion=“3"/> API 수준 = “3” (SDK 1.5) <uses-sdk android:minSdkVersion=“4"/> API 수준 = “4” (SDK 1.6) • 다른 패키지 링크 • <application>요소안에 <uses-library>요소로 등록- 구현 예제 <uses-library android:name=“com.mylibrary.stuff“/>

  20. ** 감사합니다. **

More Related