Android App 개발 기초
Transcript of Android App 개발 기초
Android App 개발 기초
2009.11.06
Nemustech
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
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 Life Cycle
http://developer.android.com/reference/android/app/Activity.html#ActivityLifecycle
paused 와 stopped 상태의 차이점
7
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
Views
여러가지 View 들
http://developer.android.com/guide/tutorials/views/index.html
android.view.View
android.view.ViewGroup
11
View
화면 상에서 User interaction 구현의 기본 단위
android.widget.Button
android.widget.EditText
android.widget.ImageView
12
ViewGroup
자식 View 를 하나 이상 가지는 View
여러가지 기본 layout 들
http://developer.android.com/guide/topics/ui/layout-objects.html
13
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