Android
-
BroadcastReceiverAndroid 2012. 11. 2. 15:32
어느정도 결론을 내리긴 했지만 역시나 찝찝하다.- broadcast 즉 보내는 쪽에서는 어떻게 권한을 실어보내고 받는 쪽은 어떻게 검사를 할까?- 보내는 쪽에서는 public abstract void sendBroadcast (Intent intent, String receiverPermission)Added in API level 1Broadcast the given intent to all interested BroadcastReceivers, allowing an optional required permission to be enforced. 이것을 이용하면 될듯 싶은데 Manifest파일에 이것도 반드시 작성해야했다. #. 그런데 sendBroadcast(intent)로 작성하고 Manifest파..
-
Push에 대한 것!Android 2012. 10. 30. 20:45
- nPush - Subscribe()시 npushService를 통해서 tagetId를 받는데 자체내에서 생성한다. 한 기기당 고유 ID를 생성하게 되고 그 ID앞에 각각 nhn앱들의 패키지명을 붙여 실제 targetId를 생성한다. - 자체 생성인데 서비스로 돌리는 이유는 이것이 여러 nhn앱들을 깔아도 실행되는 서비스는 하나로 유지하기 위함이다. - permission이 protectionLevel:signature로 설정되어있는 것은 이 퍼미션은 한가지의 시그니쳐로 서명된 앱들끼리만 사용할 수 있다는 말이된다. 이미 한가지 서명으로 이 퍼미션을 사용하는 앱이 있다면 다른 서명을 가졌지만 같은 퍼미션을 사용하는 앱은 이 퍼미션을 사용할 수 없게된다. 그러므로 이 퍼미션을 사용하는 시그니쳐로 된 앱들..
-
TweenAnimationAndroid 2012. 9. 24. 16:03
1. 트윈 애니메이션의 종류 및 설명 트윈 애니메이션은 주어진 정보를 이용하여 뷰의 출력 영역을 연산하는 방법을 사용하며 이러한 방법으로 이동, 회전, 투명화, 크기 변경을 구현할 수 있습니다. 하지만 뷰의 출력에 대한 부분만 연산하여 출력시키기 때문에 뷰가 화면에 보이지 않더라도 지속적으로 터치 이벤트를 받는 등 뷰 자체가 애니메이션에 영향을 받지 않으므로 추가적인 처리를 해야할 수도 있습니다. 1.1 투명화 적용 트윈 애니메이션으로 투명화를 적용하면 화면에서 뷰가 점점 사라지도록 표현할 수 있고, 반대로 보이지 않는 뷰가 점점 나타나도록 표현할 수도 있습니다. XML 에서 투명화를 표현할 때 사용하는 요소 및 속성은 아래와 같습니다. 요소명 - alpha 속성 - android:fromAlpha : ..
-
AsyncTaskAndroid 2012. 9. 21. 19:06
전 포스트에서 설명했던 여러 스레드 구현방법들은 비록 아무 문제가 없지만 구현방법이 복잡해서 코드를 읽기 힘들게 만드는 경향이 있었다. Background작업에 관한 모든 사항(스레드 객체 생성, 사용, UI스레드와 통신 등)이 Activity 코드에 포함 되고 특히 background 스레드가 UI위젯과 빈번한 통신을 할수록 Activity 코드의 복잡함은 점점 배가 된다. 안드로이드에서는 이런 문제를 해결하기 위해 API level 3 (1.5 version) 부터 AsyncTask라는 클래스를 제공하고 있다. AsyncTask클래스는 background작업을 위한 모든 일(스레드생성, 작업실행, UI와 통신 등)을 추상화 함으로 각각의 background작업을 객체 단위로 구현/관리 할 수 있게 ..
-
ContextAndroid 2012. 9. 21. 16:22
안드로이드에서도 프로세스는 당연히 OS 커널 (리눅스)에서 관리됩니다. 어플리케이션과 프로세스가 별도로 관리되고 있다면, 어플리케이션 정보는 어디에서 관리하고 있을까요? 안드로이드의 시스템 서비스 중 하나인 ActivityManagerService 에서 그 책임을 집니다. 그렇다면 ActivityManagerService 는 어떤식으로 어플리케이션을 관리하고 있을까요? 이외로 단순 합니다. 특정 토큰을 키값으로 'Key-Value' 쌍으로 이루어진 배열을 이용해 현재 작동중인 어플리케이션 정보를 관리합니다. 거의 결론에 다다른거 같습니다. Context 는 어플리케이션과 관련된 정보에 접근하고자 하거나 어플리케이션과 연관된 시스템 레벨의 함수를 호출하고자 할 때 사용됩니다. 그런데 안드로이드 시스템에서 ..
-
UI쓰레드와 HandlerAndroid 2012. 9. 21. 10:18
안드로이드는 스윙과 마찬가지로 싱글 쓰레드 GUI 모델이 적용되어 있다. 즉 UI를 그리거나 갱신하는 쓰레드는 하나뿐이라는 것이다. 그 쓰레드는 바로 안드로이드의 주요 컴포넌트들이 실행되는 "main" 쓰레드이다. 모든 UI 관련 코드는 main 쓰레드에서 실행된다.스윙에서 응답없음(unresponsive) 현상을 막기 위해 백그라운드에서 돌아가는 worker 쓰레드를 만든 것처럼, 안드로이드에서도 오래 걸리는 작업은 UI 쓰레드(= main 쓰레드)에서 처리하지 말고 별도의 쓰레드를 만들어 처리해야 한다. 그렇지 않으면 화면을 갱신하고자 하는 모든 코드는 block 당하여 ANR이 발생할 것이다.오래 걸리는 작업에는 무엇이 있나?- 파일 처리- 네트워크 조회- 다량의 DB 트랜잭션- 복잡한 계산그럼 백..