2013년 7월 13일 토요일

android 02

android Manifest.xml

- 이 파일은 어플리케이션에 대한 기본적인 정보를 안드로이드 시스템에 제공함으로써, 
  시스템이 어플리케이션 코드를 실행하기 전에 필요한 정보를 갖고 있도록 한다.
  (어플리케이션이 실행되기 전에 시스템이 알고 있어야 하는 파일)
  
-어플리케이션의 자바 패키지 이름을 지정한다. 이 패키지 이름은 어플리케이션의 고유한 식별자로써 작용한다.
-어플리케이션의 컴포넌트들에 대한 사항을 지정한다.
-각 컴포넌트를 실행시키고 외부에 알리는 클래스의 이름을 지정한다.
-어떤 프로세스가 어플리케이션들의 작동을 주관하는지 결정한다.
-어플리케이션이 다른 API의 보호된 부분에 액세스하고 다른 어플리케이션들과 상호작용하기 위해 가지고 있어야 하는 퍼미션을 선언한다.
-다른 어플리케이션이 이 어플리케이션과 상호작용하기 위해 필요한 퍼미션을 정의한다.
-어플리케이션과 연결되어야 하는 라이브러리를 지정한다.


permission(허가,권한)
- 다른 어플리케이션의 데이터나 서비스를 이용하기 위한 권한을 확보하거나, 
  다른 어플리케이션이 내 어플리케이션의 데이터에 접근하기 위한 권한을 요청..
- 안드로이드에서 다른 어플리케이션 데이터/서비스에 접그하기 위하여 권한을 확보하는 방법은 AndroidMenifest.xml에 권한을 등록!!!!
   레퍼런스 참조 :( http://developer.android.com/reference/android/Manifest.permission.html )
자주 사용하는 권한: INTERNET - 자바 소켓부터 WebView 까지 어떤 방법으로든 인터넷을 사용하기 위해서 필요한 권한
READ_CALENDAR, READ_CONTACTS  - 내장된 컨텐트 프로바이더의 데이터를 읽기 위한 권한
WRITE_CALENDAR, WRITE_CONTACTS - 내장된 컨텐트 프로바이더에 데이터를 쓰기 위한 권한
WRITE_EXTERNAL_STORAGE - SD 카드와 같은 외부저장장치의 파일을 쓰기 위한 권한





Intent의 개념

- 안드로이드 어플리케이션의 세개 핵심 컴포넌트(액티비티, 서비스, 브로드캐스트-리시버)는 Intent라는 메시지를 통해 실행된다.
- Intent 메시징은 같거나 다른 어플리케이션에 있는 컴포넌트들간의 런타임 바인딩을 제공하는 장치이다.
- Intent도 Action + Context의 형태를 갖는다.

- 각 컴포넌트에 대해 인텐트를 전달하는 매커니즘
- 액티비티를 새로 시작하거나 기존 액티비티가 새로운 일을 하도록 할 경우,
 Context.startActivity()나 Activity.startActivityForResult()에 intent객체를 전달한다.
- 서비스를 시작하거나 실행중인 서비스에 새로운 명령을 전달할 때, Context.startService()에 intent 객체를 전달한다.
      호출하는 컴포넌트와 대상 서비스간에 연결을 만들 경우, Context.bindService()에 intent 객체를 전달한다. 
      만약 서비스가 실행 중이 아닐 경우 그 서비스를 시작할수 있다.
    - 브로드캐스트 메서드(Context.sendBroadcast(), Context.sendOrderedBroadcast(),Context.sendStickyBroadcast() 등과 같은)에
      전달된 intent 객체는 모든 관심 있는 브로드캐스트 리시버에게 전달된다. 대부분의 브로드캐스트는 시스템 코드에서 시작된다.
      
      
Intent Filter 
- 수행되어야 할 Action을 서술해 놓은 정보의 묶음이다.
- 이정보에는 수행되었을 때의 데이터, Action을 수행하기 위한 구성요소의 Category, 그리고 또 다른 적절한 지시 등이 포함된다.
-



Service의 수명과 관련된 메서드
- onCreate()
- onStart(Intent intent, int startId)
- onDestroy()





bindService()
- 외부 노출된 인터페이스
- bind된 서비스에서 구현해야할 콜백 메서드
- IBinder onBind(Intent intent)
- 이 메서드의 인자는 bindService()에 전달된 인텐트 객체이다.
- 반환 값은 클라이언트가 서비스와 인터렉션을 하는데 사용할 통신 채널이다.

- boolean onUnbind(Intent intent)
- 이 메서드의 인자는 unbindService()에 전달된 인텐트 객체이다.
- void onRebind(Intent intent)
- 새로운 클라이언트가 서비스에 연결하는 경우 onUnbind()에서 onRebind()를 부른다.

댓글 없음:

댓글 쓰기