본문 바로가기

Development/Android

Android 책 보면서 메모

728x90
Webkit
Mac의 브라우저와 아이폰에서 사용되고 있다.
OpenSource
브라우저 엔진
안드로이드에도 포함되었다.
webkit.org

OHA( Open Handset Alliance )
안드로이드는 구글과 OHA가 만들었다.
안드로이드는 최초의 개발된, 완벽한, 그리고 무료의 모바일 기기
기술지원, 추가장비 구매에는 비용이 발생한다.

퀄컴 BREW( Qualcomm's Binary Runtime Environment for Wireless )

Jog Dial

임계질량 ( Critical Mass )
핵분열 연쇄 반응이 일정한 비율로 유지되는 상태를 유지하는데 필요한 핵연료의 양
안정적인 소프트웨어의 유지보수에 필요한 인/물적 자원의 의미로 쓰임.

GPL( GNU General Public License ) VS ASL( Apache Software License )
가장 큰 차이점은 아파치 라이센스에서는 상업적인 부분을 배려하는 정책이다.

Android Stack
- Webkit 기반의 브라우저 기능
- SQLite
- 2D, 3D, SGL 애니메이션, 그리고 OpenGL ES와 같이 뛰어난 그래픽 기능 지원( 그럼 OpenGL은 아니라는 말인가- _-a )
- Apache SSL 지원
- Application managers : Activity, View, Telephony, Window, Resource, Location, Notification
- Java Runtime 지원
- Dalvik Virtual Machine

하드웨어 추상화 계층 ( HAL )

Intent
원하는 실제 행동
무엇을 해야 하는지에 대한 행위를 선언하는 부분
원하는 액션이나 서비스 등을 기술한 정보들로 이루어진다.
Intent는 보통 VIEW, PICK, EDIT와 같은 동사 형태로 되어 있음.
android.content.Internet.ACTION_VIEW
content://contacts/people
Implicit Intent : 안드로이드는 적절한 수신자에게 전달되도록 해준다.
Explicit Intent : Class를 Parameter로 사용한다.

Service
만약 Application이 아주 긴 라이프사이클을 갖는다면 Service에 등록을 해야 할 것이다. 예를 들면 Background에서 데이터를 지속적으로 동기화시켜야 하는 Utility는 Service로서 구현되어야 한다.

BroadcastReceiver
만약 Application이 전화가 오거나 문자메시지 수신과 같은 이벤트를 받거나 반응하기를 원할 때 사용한다.
context.registerReceiver로도 등록 가능
onReceive 메소드에는 지속성 또는 시간이 걸리는 코드가 포함되면 안 된다.
intent.getAction.equals( "" )

Intent Filter
필요할 때 제공해야 하는 기능과 관심 내용에 대한 선언부
어떤 Intent가 서비스를 제공하느냐에 따라서 범용적이거나 특정 Intent에 귀속될 수 있다.
Intent Filter는 Intent와 Application 사이의 관계를 정의한다.
android.provider.Telephony.SMS_RECEIVED

Triggering

Tech Savvy
젊고 기술 이해도가 높은 사람을 뜻한다.

Late Binding
Intent Resolution( 특정 데이터를 처리할 수 있는 Activity가 여러 개가 있는 경우에 그 중 가장 최선의 것을 결정하는 절차 ) 또는 Dispatching은 Application의 컴파일 단계가 아닌 런타임 시에 수행된다.

Activity
Application은 하나 이상의 Activity를 갖는다. 보통 Activity와 UI화면은 1:1 대응 관계를 갖는다. Activity는 하나 이상의 View를 갖는다. View는 사용자와 직접 상호작용을 할 UI를 의미한다.

User Permission
android.permission.RECEIVE_SMS

Content Provider
Application이 Runtime Environment에서 Data를 관리하고 다른 Application에 Data를 전달해야 한다면 Content Provider를 사용하면 된다.
String, Integer, Binary
Binary의 경우 파일 이름을 나타내는 문자열을 리턴한다. 그래서 Helper Class인 ContentResolver의 OpenInputStream 메소드를 통해서 Binary를 사용한다.
데이터는 URI로 선언되어 접근할 수 있다.

프로그램의 우선순위
- 화면에 보이면서 실행 중인 Activity가 가장 높은 우선순위
- 화면에 보이면서 실행 중이지 않는 Activity가 다음 우선순위
- 실행 중인 Service는 그 다음 우선순위
- 성능 향상을 위한 캐쉬의 역할을 위해 적재된 엠프티 프로세스나 오랫동안 수행되지 않았던 동면 상태의 프로세스가 종료될 확률이 가장 높다.

AAPT ( Android Asset Packaging Tool )
apk 파일을 만들어준다.
pkzip, jar 압축 관련 기능과 안드로이드용 Resource Compiler의 기능이 합쳐진 것이라 볼 수 있다.

ADB ( Android Debug Bridge )
Emulator와 상호작용할 수 있게 한다.
TCP 기반의 C/S 형태로 동작하는 프로그램이다.
adb devices
adb -d 1 shell
adb shell install someapplication.apk
adb shell rm /data/app/Chapter2.apk
adb shell 명령어는 ls, ps, kill, rm 등의 기본적인 명령은 사용 가능하다.
telnet localhost 5554

NumberFormat

dex 파일

Simulator VS Emulator
Emulator는 프로젝트 Target 호환성이 Binary 레벨이다. 에뮬레이터에서 작성되는 코드는 실제기기에서도 동작한다.
안드로이드에서 제공되는 개발환경은 Emulator이다.













반응형

'Development > Android' 카테고리의 다른 글

SQLite 자료형  (0) 2010.06.26