liebus

2일차 본문

예전꺼(2014년이전꺼)/Android

2일차

리베스 2010. 8. 31. 21:14


안드로이드 개발 형태 - SDK, NDK, 플렛폼 개발

이클립스 IDE 사용시 프로젝트의 DDMS 메뉴의 File Expoloere 활용

안드로이드 리눅스 특징 - 안드로이드 아키텍처 그림


안드로이드 자산관리툴 -  AAPT와 AIL, boinic libc 에 대한 갼략 한 설명 진행

Android License - GPL2, Apache, BSD 등 라이센스 관련된 문제 간략 설명

안드로이드 파일 시스템 구성 - system/app, data (DDMS의 file expoloere 에서 확인 가능)

안드로이드 부팅 절차 및 보안에 대한 간력 설명
init   - 기존 방식이 아닌 새로운 방식
보안 - 현재 취약함, network packet filter - ciptables(filewell) 
                            selinux(index, table방식) - nsa.gov, selinux 등으로 보안

모든 안드로이드 애플리케이션은 AndroidMainfest.xml 파일을 가지고 있고 이를 통해
권한 설정이 가능하다.

Low Memory Killer 중요
중요성 계층구조 -> lifecycle과 연관됨
http://kandroid.org/board/board.php?board=AndroidBeginner&command=body&no=56 참조

foreground 프로세스
사용자와 상호작용을 하고 있는 스크린의 최상위에 있는 Activity나 현재 수행되고 있는
IntentReceiver를 점유하고 있는 프로세스이다. 시스템에는 매우 작은 수의 그러한 프로세스들이
존재할 뿐이며, 이런 프로세스가 계속 실행 되기조차 어려운 최후의 메모리 부족 상태에서만
종료된다. 일반적으로 디바이스가 메모리 페이징 상태에 도달하는 시점에, 사용자 인터페이스에
대한 응답을 처리하기 위해서 그러한 행위가 요구된다.

visible 프로세스
사용자의 화면상에는 나타나지만 foreground 상태는 아닌 Activity를 점유하는 프로세스이다.
예를 들어 foreground activity 다이얼로그 형태로 그 뒤에 이전에 보여졌던 activity를 허용하면서
표시될때 이러한 것은 발생하게 된다. 그러한 프로세스는 극도록 중요하게 고려되며 더이상
그것을 수행하지 않을 때까지 종료되지 않으며, 모든 foreground 프로세스들을 실행 상태로
유지하는 것이 요구된다.


service 프로세스
startService() 메쏘드를 가지고 시작된 Service를 점유하고 있는 프로세스 이다.
이러한 프로세스는 사용자에게 직접적으로 보여지는 않지만, 이것은 일반적으로 사용자와 관련된
어떤 일을 일반적으로 수행하며, 시스템이 모든 foreground와 visibile 프로세스를 보유하기에
충분한 메모리가 존재하는 한, 시스템은 그러한 프로세스들은 항상 실행상태로 유지할 것이다.


background 프로세스
사용자에게는 현재 보여지지 않는 Activity를 점유하는 프로세스이다. 이러한 프로세스는
사용자에게 어떤 것도 직접적으로 영향을 미치지 않는다. activity 생명주기를 정확하게
구현하기 위해서 마련된 것이며, 시스템은 위의 3가지 프로세스 타입 중 한 가지를 위한 메모리
반환 요청이 있을 시에만 그러한 프로세스를 종료시킬 것이다. 일반적으로 많은 수의 이런
프로세스가 실행되고 있으며, 해당 프로세스들은 메모리 결핍 시 사용자에게 가장 최근에
보여진 것이 가장 마지막에 종료되는 절차를 확립하기 위해 LRU 리스트 상에서 유지된다.


empty 프로세스
어떤 활성화 된 애플리케이션 컴포넌트도 점유하지 않는 프로세스이다. 이러한 프로세스를
유지하고 있는 유일한 이유는 다음번에 해당 애플리케이션을 실행할 필요가 있을 때
시동(startup) 시간을 개선하기 위한 캐쉬로써 사용하기 위함이다. 그런 이유로, 시스템은
이러한 캐쉬화된 empty 프로세스들과 기반에 있는 커널 캐쉬들 사이에서 전반적인 시스템
균형을 유지하기 위해 이러한 프로세스들을 가끔 종료하게 된다



lifecycle 그림 참조


lifecycle / 중요성게층 구조 - 중요 !


power management 에 대한 간략 설명

Ashmem - 안드로이드 에서 공유 메모리 할당을 담당

Binder의 역활 아래 문서 참조 - http://www.aesop.or.kr 에서 득




6장 lifecycle 에 관해 

하나의 app에는 하나의 application tag만 가능 하다.

소스디렉토리 구조 설명 - LifeCycle 샘플 사용

res/layout - 화면 디자인

AndroidMainfest.xml  중요 설정 파일 - app당 하나만 존재

console 또는 DDMS-> logcat 을 활용 하여 정상적으로 실행되는지 확인 필요


Android Applications
- Activity    intent를 통해 전달
- Service   content 에 대해...
- receiver  시스템 코드에서 발생하는 메세지
- provider


Life Cycle states - 각각의 상태와 역활
onCreate     -
onStart        -
onRestart     -
onResume   -

onPause      -
onStop         -
onDestroy    -

onPaused 상태 - 모든 정보를 가지고 살아 있는 상태 - 개념 중요



7장 UI관련 view 와 layout

7장 key point - layout !

LinearLayout, TextView, ImageView, ImageButton, Button, EditText 등에 대한 설명 및

구현 테스트 진행


개인적인 생각 -
View 와 ViewGroup 모두 Object로 부터 파생 되고

실제로 보여지는 것이
View
- TextView, EditText, Button, ImageView, ImageButton 등등

실제로 보여지는 것들을 묶는 것이 (layer 개념?)
ViewGroup
- LinearLayout, FrameLayout, RelativeLayout 등등

인듣


2일차 종합

Android 의 기본 구성과 역활 전반적인 소개 ,   중요 파일에 대한 설명

라이프싸이클과 중요계층구조 에 대한 설명

View 와 Layout을 통한 화면 배치 및 등록


3일차 - widgets 진행 예정 8장~15장



'예전꺼(2014년이전꺼) > Android' 카테고리의 다른 글

6일차  (0) 2010.09.15
5일차  (0) 2010.09.15
4일차  (0) 2010.09.15
3일차  (0) 2010.09.01
1일차  (0) 2010.08.30
Comments