'programing'에 해당되는 글 54건

  1. 2010.11.13 20101113 안드로이드 application 개발 과정 강의 by 대절님


1. Android 개발환경 구축
  - 환경변수 path에 추가 : D:\Android\android-sdk-windows\tools
  - 이클립스 - windows - preferences - Android - SDK Location : 경로 잡아줌
  - AVD 설치
    윈도우 사용자 계정을 한글명으로 사용하지 않도록 주의!
    AVD Manager에서 avd생성
      - google api level 7
      - SD Card size : 128
      - skin : HVGA(320*480)

new android project
create project from existing samples
Android 2.1 - update1
Sample - Snake

3. 한글키보드 설치
  adb install HangulKeyboard.apk
  setting - language & keyboard - select locale - 한국어
                          
4. new Android Project
  project Name : Hello
  android 2.1
  application name : hello
   
5. APK 생성과정
  R.java생성
  java소스 컴파일(xxx.class)
  컴파일된 클래스들 dex포맷으로 변환
  리소스 컴파일(이미지등.. size를 줄이기 위해 binary형태로 압축)
  리소스, dex, Manifest.xml 하나의 apk로 압축(workspace\어플\bin\ 안에 (apk파일있음))
  apk signing (마켓에 배포후 기존 프로그램을 업데이트 할때 서명이 다르다면 별개의 것으로 생각, 같은 서명하여야 update)

6. error발생시 DDMS LogCat을 보면 error message를 알수있음
  디버그 모드는 adt에서만 가능, 기계에서 하려면 manifest-application-debuggable = true로 변경하여야함(배포할땐 false로)

  tip)
  -xml보기좋게 하려면
    window-preference-xml-xml files - editor - split multiple attributes each on a new line 체크 후 xml파일에서 Ctrl + Shift + F
  -로그 남기려면
    Log클래스 이용 DDBS에서 확인가능

7. Android Application Component
  7-1. Activity : 화면(UI), 사용자와 interaction이 가능한 컴포넌트
  7-2. Service  : Non-UI, 사용자와 interaction이 불가능한 컴포넌트   
                - Background Daemon
                - IPC(Inter Process Communication) 다른프로세스의 있는 기능을 사용하는것
  7-3. BroadcastReceiver : Non-UI, 사용자와 interaction이 불가능한 컴포넌트
                  - service와는 달리 호출자가 없음(service는 실행을해주고 끝내줘야함)
                  - 시스템 이벤트(intent), 사용자 정의 이벤트(intent)가 발생하면
                    수신하여 처리하기 위한 컴포넌트(기기의 부팅, 배터리부족 등)
  7-4. ContentProvider : - App의 경계를 가로질러 data를 공유가능하도록 해주는 컴포넌트
                  (기본적으로 특정App에서 만든 data는 다른곳에서 사용할수 없음
                   그래서 A App과 B app 사이에 CP를 두고 이것을 이용하여 다른App의 data에 접근할수 있음
                   이때 A app과 CP사이의 통신이 IPC, ContentResolver를 이용하여 B app의 CP에 접근하고
                   그 CP를 이용하여 B app의 data접근가능
                   여러 App 각각의 CP중 특정 CP를 선택할때 uri를 이용

8. Intent
  간단한 메세지 : 어떤것을 했으면 좋겠다 라는 것을 담고있는 약속
  컴포넌트간의 통신을 위해 제공
  - 묵시적 인텐트
    대상컴포넌트를 지정하지 않는 인텐트
    action, data 등의 정보를 기술
    Intent Resolution(인텐트의 action을 보고 이런 일을 할수 있는 기능을 가진 것들을 찾는 기능)
    컴포넌트 교체가 용이
    다른 App의 컴포넌트를 사용할때 주로 사용
  - 명시적 인텐트
    대상컴포넌트를 지정
    Intent Resolution의 오베헤드가 없다
    컴포넌트의 교체가 용이하지 않음
    같은 App의 컴포넌트를 사용할때 주로 사용

9. Intent의 사용처
  화면 전환(화면을 띄울때)
  서비스를 시작시키거나 종료시킬때  Background Daemon형태로 서비스 되고 있는 것
  원격 서비스에 연결하기 위해
  Broadcasting하기 위해

10. Intent Filter
  Intent를 필터링 해주는 역활

11. Process 레벨
  5개의 레벨로 관리
  프로세스 내에서 실행되고 있는 컴포넌트의 종류와 상태에 근거하여 결정

 * 1순위 프로세스
  - Foreground Process(활성프로세스) 
  - 화면에 보이며 사용자와 상호작용 가능한 Activity를 갖고 있는 프로세스
    onResume() 콜백된 Activity
  - 막 시작되고 있는 Servicie를 갖고있는 프로세스
  - 인텐트를 수신하여 처리하고 있는 BroadcastReceiver를 갖고 있는 프로세스

 * 2순위 프로세스
  - Visible Process(보이는 프로세스)
  - 화면에는 보이지만 사용자와 상호작용이 불가능한 Activity를 갖고있는 프로세스
    onPause() 콜백된 Activity

 * 3순위 프로세스
  - Service Process
  - 시작된 Service를 갖고 있는 프로세스
 
 * 4순위 프로세스
  - Not-Visible Process
  - 화면에 보이지 않는 Activity를 갖고 있는 프로세스
    onStop() 콜백된 Activity

 * 5순위 프로세스
  - Empty Process
  - 실행중인 상태의 컴포넌트를 갖지않는 프로세스
  - 캐싱 목적으로 유지하는 프로세스

12. Resource Management
  - None-source 인 소스 외부로 관리되는 이미지, 레이아웃, 문자열, 색상값, 수치값, 애니메이션 효과등등
  - 기기의 spec, 설정에 따라 자원의 교체가 가능해짐
    언어에 따른, 화면방향에 따른, 화면의 크기나 해상도에 따른 등등의 상황별로 다른 자원을 사용할 수 있게 된다.
  - 개발환경에서 res폴더 밑에 위치
  - 자원유형별로 약속된 폴더 밑에 위치
  - 소스에서 자원이용 R.java이용
  - 자원에서 또다른 자원이용 @자원타입/자원식별자
  - 파일명으로 식별하는것은 소문자로만 정의

저작자 표시 비영리 동일 조건 변경 허락
신고

'programing > ETC' 카테고리의 다른 글

20101113 안드로이드 application 개발 과정 강의  (0) 2010.11.13
20101106 안드로이드 application 개발 과정 강의  (0) 2010.11.06
mimetype 목록  (3) 2010.11.02
MS 워드 대문자 자동완성 해제하는 법  (0) 2009.09.11
power point 2007강좌  (0) 2009.08.19
인코딩  (0) 2009.08.14
Posted by 대절님

댓글을 달아 주세요



티스토리 툴바