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

Android App 개발 기초

Jun 29, 2015

Download

Documents

peterbuck
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Android App 개발 기초

Android App 개발 기초

2009.11.06

Nemustech

류치훈[email protected]

1

Page 2: Android App 개발 기초

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

Page 3: Android App 개발 기초

Application source tree

3

Page 4: Android App 개발 기초

Android Application

빌드 결과는 apk 파일

apk가 최소 배포 단위

여러개의 activity와 resource 들을 포함

설치: adb install $APK_PATH

삭제: adb uninstall $FULL_PACKAGE_NAME

4

Page 5: Android App 개발 기초

AndroidManifest.xml

MyApplication.apk 파일 별로 하나씩

apk 에 대한 meta 정보 지정

포함하고 있는 activity 리스트

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

5

Page 6: Android App 개발 기초

Activity. 누구??

android.app.Activity 클래스

사용자와의 Interaction 화면 단위

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

6

Page 8: Android App 개발 기초

Why Activity ??

binary 수준의 컴포넌트 재사용

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

시스템의 자동 resource 관리 단위

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

8

Page 9: Android App 개발 기초

Activity 사용법

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

onCreate() 에서 setContentView() 호출

AndroidManifest.xml 에 <activity> 태그 추가

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

9

Page 10: Android App 개발 기초

Window

android.view.Window 클래스

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

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

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

10

Page 12: Android App 개발 기초

View

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

android.widget.Button

android.widget.EditText

android.widget.ImageView

12

Page 14: Android App 개발 기초

FrameLayout

android.widget.FrameLayout 클래스

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

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

14

Page 15: Android App 개발 기초

LinearLayout

android.widget.LinearLayout 클래스

VERTICAL or HORIZONTAL 모드

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

15

Page 16: Android App 개발 기초

RelativeLayout

android.widget.RelativeLayout

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

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

16

Page 17: Android App 개발 기초

LayoutParams

android.view.ViewGroup.LayoutParams

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

WRAP_CONTENT, FILL_PARENT, 숫자값

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

17

Page 18: Android App 개발 기초

hierarchyviewer

$SDK_PATH/tools/hierarchyviewer

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

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

18

Page 19: Android App 개발 기초

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

Page 20: Android App 개발 기초

Localization & Multi-screen

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

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

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

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

20

Page 21: Android App 개발 기초

Java VS Xml

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

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

JavaVsXml 예제 참조

21

Page 22: Android App 개발 기초

실습간단한 checklist 어플

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

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

option menu 로 flush & delete all 처리

22

Page 23: Android App 개발 기초

Animation

android.view.animation.Animation

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

TranslateAnimation, ScaleAnimation, RotateAnimation, AlphaAnimation, AnimationSet

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

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

23

Page 24: Android App 개발 기초

기타 tools

$SDK_PATH/tools/*

hierarchyviewer

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

24

Page 25: Android App 개발 기초

감사합니다

25