Android Architecture(안드로이드 아키텍쳐)

IT(Old)/Android 2007. 11. 21. 18:40

참 궁금하게 만들었던 이것!!
리눅스 커널상에서 오히려 PC보다 화려한 하드웨어(WIFI, Bloutooth) 지원을 하고 있네?

그렇다면 핸드폰 상에서 내가 Java로 만든 모든 Program을 실행할 수 있다는 거네?

국내에서 출시 안된다 하더라도.. 충분히 가지고 놀 만한 놈이기에
해외주문 할 생각도 하고 있다.

근데 어떻케 이걸 핸드폰에 올리지?  응? 응? 응?


Android System Architecture

Activity란 무엇인가?

IT(Old)/Android 2007. 11. 21. 18:34
android 홈페이지(http://code.google.com/android)에 들어가보면
Activity에 대한 정의가 수없이 나온다.(물론 다른것도 마찬가지겠지만...)

일단 Activity란 무엇인가?

activity는 보통 당신이 만든 application의 하나의 screen이다. 다시 정리하자면
핸드폰에 보이는 하나의 화면 하나하나의 단위라 보면 된다.

수정 20071210(월)
android 홈피에 나온 정의를 보면
activity는 기본적으로 라이프 사이클을 가지고 있는 객체이다. Activity는 어떤작업을 하는 큰덩어리의 코드이다.
필요하다면..그 작업은 사용자에게 UI를 표시하는 것도 포함할 수 있다. 하지만 하지 말아야 한다. 몇몇 Activities는 UIs를 결코 표시하지 않는다. 일반적으로, 너는 너의 app의 시작점으로써 당신의 App의 activities들중에 하나를 설계할 것이다.... (으흠....UI그리는 것을...xml에서 하란건가? ㅡ.ㅡ)

예를 들자면...
핸드폰을 짠~ 열었을때 나오는 초기 배경화면도 하나의 activity
문자메시지를 보내는 화면 하나도 activity다..

물론 activity에 여러 view, service등이 붙게되어 하나의 화면을 완성하게 되겠지만
일단 이정도로 이해하는 것이 좋겠다. 뒤에는 용어도 생소한 Bundle, Intent등이 대기중이다 ㄷㄷㄷㄷ

개발할 때 가장 기본이 되는 activity의 life사이클에 대한 정확한 이해를 가져야 나중에 편해질 것이다.

life cycle은 크게 4개의 상태로 나눠질 수 있는데
이것만은 확실히 이해 했으면 좋겠다.

1. active or running : activity가 screen 정면에서 사용중일 때,
2. paused : 여전히 화면에는 보이지만 포커스를 잃었거나 full size로 표시되지 않을 때
3. stopped : 다른 activity에 의해서 화면에서 완전히 사라졌을 때
4. killed :  activity가 완전히 메모리에서 제거되거나, 프로세스가 죽을 때
State diagram for an Android Activity Lifecycle.

끝.

Android Release

IT(Old)/Android 2007. 11. 14. 17:58
새로운 장난감 왕건이가 출시 되었다.

구글폰 자체가 아닌.

구글폰에서 돌아갈수 있게 도와주는 OS와
SDK 환경이다.

내 이클립스는 너무 지저분 하기 때문에
이것저것 플러그인들이 깔려 있다. 너무 많아 몰 설치했는지조차 모르겠다.

새로운 마음으로

이클립스 3.3.1, 자바 1.6.0 글고 초기버전 SDK를 설치하여서

Hello Android 실행

사용자 삽입 이미지

초기실행화면

핸드폰 모양의 UI와 액정이 보였다.

사용자 삽입 이미지
내장 브라우저를 사용하여..네이버 접속 성공!
근데 문자가 깨진다.

사용자 삽입 이미지
Go TO 메뉴를 사용하여 여기저기 웹서핑 가능 하다.
역시 다음도 한글이 깨진다.

사용자 삽입 이미지
구글답게 구글맵이 내장되어 있다. 근데 인터넷이나 맵이나
상당히 느리다는 느낌이 든다.  어짜피 PC상 버추얼머신인
Dalvik에서 돌아가고 여기저기 거친다지만 그래도 짜증나게 느리다

사용자 삽입 이미지
멘 잘못 눌러서 들어갔다.. 사용된 Library에대한 설명이 보이네

사용자 삽입 이미지
데모보고 따라 만든 Notepadv1 이다. 
SQLite 를 사용하여 DATA를 저장하게 만들어서그른지..

프로세스 죽이고 재가동해도 DATA가 남아 있었다. 신기신기

또 좀더 가지고 놀아야겠당.. 그름