25
Android App 개발 기초 2009.11.06 Nemustech 류치훈 [email protected] 1

Android App 개발 기초

Embed Size (px)

Citation preview

Android App 개발 기초

2009.11.06

Nemustech

류치훈[email protected]

1

Android SDK

http://developer.android.com/sdk/index.html

Version 1.0, 1.1, 1.5, 1.6, 2.0

Framework source :

$SRCROOT$/framework/base/core/java/android/

$SRCROOT$/framework/base/core/res/res/

2

Application source tree

3

Android Application

빌드 결과는 apk 파일

apk가 최소 배포 단위

여러개의 activity와 resource 들을 포함

설치: adb install $APK_PATH

삭제: adb uninstall $FULL_PACKAGE_NAME

4

AndroidManifest.xml

MyApplication.apk 파일 별로 하나씩

apk 에 대한 meta 정보 지정

포함하고 있는 activity 리스트

각 activity 의 종류. 사용하고 싶은 Theme style

5

Activity. 누구??

android.app.Activity 클래스

사용자와의 Interaction 화면 단위

기능적 & 실행 목적에 따른 구현의 단위

6

Why Activity ??

binary 수준의 컴포넌트 재사용

process & application 을 뛰어넘는 사용자 경험

시스템의 자동 resource 관리 단위

http://developer.android.com/videos/index.html#v=fL6gSd4ugSI

8

Activity 사용법

Activity 파생 클래스에서 onCreate() 재정의

onCreate() 에서 setContentView() 호출

AndroidManifest.xml 에 <activity> 태그 추가

화면 호출시에는 Context.startActivity() 사용

9

Window

android.view.Window 클래스

시스템의 Window Manager 가 화면을 처리하는 단위

Android 포팅시에, 화면 처리 정책들의 interface

View.getWindow().requestFeature(int) 통해서 많이 사용

10

View

화면 상에서 User interaction 구현의 기본 단위

android.widget.Button

android.widget.EditText

android.widget.ImageView

12

FrameLayout

android.widget.FrameLayout 클래스

자식 view 들을 서로 겹치게 배치

하나의 액자에 여러개의 사진을 동시에 꽂아 둔 것 처럼 동작

14

LinearLayout

android.widget.LinearLayout 클래스

VERTICAL or HORIZONTAL 모드

방향에 따라 순서대로 자식 view 를 서로 겹치지 않게 나열되도록 배치

15

RelativeLayout

android.widget.RelativeLayout

자식 view 들 간의 상호 배치 조건을 이용해서 배치

예) a view 우측에 b view 를 배치하고, c view 는 a view 아래쪽에 배치한다.

16

LayoutParams

android.view.ViewGroup.LayoutParams

자식 view 를 부모 viewgroup 에 추가할 때, 자식 view 의 크기를 가로 세로 각각 지정

WRAP_CONTENT, FILL_PARENT, 숫자값

FILL_PARENT 사용시에는 반드시 weight 지정 필요

17

hierarchyviewer

$SDK_PATH/tools/hierarchyviewer

device 또는 emulator 에 연결하여, 현재 view hierarchy 상황을 훔쳐보기 가능

어플 개발시 화면 layout 상의 문제 발생시 유용

18

Resource

layout : 화면 구성(xml)

drawable : 이미지 파일(png, bmp), stateful drawable(xml)

anim : 애니메이션(xml)

values : strings.xml, dimen.xml, id.xml, colors.xml, styles.xml, theme.xml

19

Localization & Multi-screen

모든 리소스 폴더에 ‘values-ko’, ‘layout-ja’, ‘drawable-fr’ 등과 같은 로케일 폴더를 추가하고 기본 내용과 다른 내용을 정의

‘layout-land’, ‘layout-port’ : 스크린 방향 정의

‘layout-800x480’ : 스크린 pixel size 정의

‘layout-hdpi’, ‘layout-ldpi’ : 스크린 pixel density 정의

20

Java VS Xml

같은 화면을 순수 Java, 순수 xml, hybrid 방식으로 구현 가능

xml 에서 만든 view 를 java 에서 참조 할 때는 findViewById(int) 함수 사용

JavaVsXml 예제 참조

21

실습간단한 checklist 어플

EditText 에서 문자열 받아서 항목 추가

각 항목에 체크박스 & 삭제 버튼

option menu 로 flush & delete all 처리

22

Animation

android.view.animation.Animation

view 자체의 실제 위치는 변하지 않지만, 지정된 시간동안, 지정된 모양으로 변하는 것 처럼 그려진다.

TranslateAnimation, ScaleAnimation, RotateAnimation, AlphaAnimation, AnimationSet

aView.setAnimation() 호출시, aView 가 다음번 invalidate() 되는 시점에 애니메이션이 시작된다.

aAnim.startAnimation(aView) 호출시, 즉시 애니메이션이 시작된다.

23

기타 tools

$SDK_PATH/tools/*

hierarchyviewer

draw9patch : 적당히!! 늘어나는 이미지 만들기

24

감사합니다

25