티스토리 뷰
저장소 방식 변화
내 문서, 사진, 기타 파일 등을 검색하고 여는 작업이 간단해 졌습니다. 클라우드든 내장 스토리지든 사용자가 해당 앱을 설치하면 어느 앱을 사용하든 해당 스토리지 서비스에 쉽게 접근하게 된 것이죠!
정리해보면 해당 프레임웍이 파일에 접근하는 시스템 UI(피커UI)를 기본으로 제공하며 파일을 열거나 세이브 등 파일 스토리지 접근에 관한 모든 일들을 지원합니다. 사실 이전버전을 생각해 보면 특정파일을 선택하는게 쉬운일은 아니였습니다. 해당 파일이 어디에 있는지 찾는것도 힘들었죠. 이에 이를 통합적으로 관리할 수 있도록 해당 프레임웍이 나온거고 이를 통해서 안드로이드 내부 뿐만아니라 클라우드에도 연결할 수 있도록 한것입니다. 즉, 안드로이드에서 접근할 수 있는 모든 파일은 전부 접근 가능하며 구글 드라이브 뿐만아니라 드롭박스와 같은 써드파티 클라우드 스토리지에 저장할 수 있도록 변경되었습니다.
동작원리를 살펴보면 앱이 피커UI를 인텐트를 통해 실행하면 이 피커가 프로 바이더를 통해서 파일 정보를 받아 화면에 보여주게 됩니다.(onActivityResult()를 통해서 결과값을 받습니다.) 이러한 프로바이더로 등록되려면 퍼미션을 등록해야합니다. 파일 접근이 향상되었지만 이제는 피커 UI를 통하지 않고는 파일에 접근할 수 없습니다. 그렇다고 앱에 맞게 피커 UI를 커스터마이징 할 수도 없습니다.
새로운 프로바이더를 추가하고 싶다면 document provider를 상속해서 커스텀으로 만들어야 합니다. 이후에는 4가지 메서드를 오버라이드 하여 이를 통해 탐색하고 읽고 저장할 수 있는 기능을 사용할 수 있게 됩니다. 또한 MANAGE_DOCUMENTS 퍼미션과 DOCUMENTS_PROVIDER 액션을 추가하여 최종적으로 피커 UI를 사용할 수 있게합니다.
만약 파일이나 문서를 관리하는 앱을 만든다면 CREATE_DOCUMENT 또는 OPEN_DOCUMENT 인텐트를 통해 스토리지 프레임웍과 연동 파일들을 열거나 생성할 수 있습니다. 또한 기존에 사용하던 GET_CONTENT 인텐트도 통합되었으며 파일 검색을 위한 새로운 시스템 UI를 제공하게 되었다. 대부분의 4.4기반 디바이스에서 구글드라이브와 내부 저장소는 document provider로 적용 되어있습니다.
새롭게 추가된 저장소 기능에 대한 예제는 여기를 참조해 주세요.
Storage access framework이 제공하는 시스템 UI(피커UI)
문자메시지 제공자 디폴트 설정
4.4 부터는 하나의 문자앱을 디폴트로 사용할 수 있습니다. 이렇게 되면 문자가 왔을 경우 여러 SMS 앱 중에서 선택된 문자 앱만 SMS_DELIVER_ACTION, WAP_PUSH_DELIVER_ACTION 브로드캐스트를 전달 받게 됩니다. 이것이 의미하는 바는 요 두녀석을 전달받은 앱만이 문자를 직접 받을 수 있고 전화를 걸 수 있다는 것을 의미합니다. 이외의 앱들은 SMS_RECEIVED_ACTION인텐트를 전달받는데 이건 문자가 왔다는 정도만 확인할 수 있도록 되어 있습니다. (번호 인증과 같은 특정한 메시지 확인은 가능합니다.) 또 메시지 전송 및 문자의 백업 및 복구가 불가능합니다.
이번 버전에서의 디폴트 SMS는 행아웃입니다. 이는 애플의 아이메시지 + 부가기능의 역할을 합니다. 물론 위에서 설명한대로 기본 SMS앱은 변경해서 사용할 수 있습니다. 틱톡이나 카카오톡, 라인등이 기본 문자앱으로 쓰일 수 있다는거죠.
이런 기능은 사실 킷캣 발표 이전에 구글 개발자 블로그를 통해 알려졌는데 그 이유를 구글이 행아웃을 기본 문자앱으로 만들려고 하는 것 같다라고 추측을 했었습니다만 역시나네요.
이 기능을 적용한 이유는 요즘 악성앱이 너무 많이 이를 방지하기 위해서라고 합니다. 예를들어 안드로이드에서는 문자가 왔을시에 특정앱에서 문자를 먼저 받아서 이를 수정하거나 아예 보내지 않게 할 수 있습니다. 이를 방지하기 위해 기본 문자앱으로 지정되지 않은 앱의 경우는 문자는 가로채거나 수정할 수 없도록 변경한 것입니다.
그러나 앱 타켓 버전이 19인 상태에서만 적용된다는 점에서 악성 문자앱이 굳이 타겟버전을 19로 설정할 이유가 없으니..큰 실효성은 없을 것 같고, 최종적인 목적은 역시 사용자들의 기본 문자앱을 행아웃으로 바꾸게 할 의도인것으로 추정됩니다.
개발자가 내 문자앱을 기존 문자앱으로 설정할 수 있도록 하기 위해선 아래와 같은 4가지 권한이 있어야 합니다.
'개발자 이야기' 카테고리의 다른 글
Android 4.4 (KitKat)에서의 변화 (6) 메모리 관리도구 등 개발자 도구 추가 (0) | 2013.12.06 |
---|---|
Android 4.4 (KitKat)에서의 변화 (5) 새로 추가된 미디어, 네트워크 기능 (0) | 2013.12.05 |
Android 4.4 (KitKat)에서의 변화 (3) NFC 와 Printing 기능 추가 (0) | 2013.12.05 |
Android 4.4 (KitKat)에서의 변화 (2) ART VM과 Android 디자인 변화 (0) | 2013.12.05 |
Android 4.4 (KitKat)에서의 변화 (1) 저용량 메모리에 최적화하라 (0) | 2013.12.05 |