본문 바로가기

안드로이드

안드로이드 4.0 아이스크림 샌드위치 - 개발자용 피쳐 분석

안드로이드 4.0 아이스크림 샌드위치 - 개발자용 피쳐 분석
Android 4.0 (Ice Cream Sandwich) Platform Highlights - New Developer Features

개발자용 피처 (New Developer Features)
 

폰, 태블릿을 통합한 UI framework (Unified UI framework for phones, tablets, and more) 


폰, 태블릿 등등을 위한 통합 UI framework를 제공한다. 여기엔 Android 3.x interface 구성요소들과 API들을 모두 포함한다.
(fragments, content loaders, Action Bar, rich notifications, resizable home screen widgets 등등)

즉 이 말은, Tablet에서만 지원되었던 다음과 같은 feature들이 드디어 Phone 계열에도 사용 가능하게 되었다는 이야기이다.

Core UI

  • Fragments and content loaders
  • Resizeable home screen widgets
  • Rich notifications
  • Multi-selection, drag-drop, clipboard
  • Improved screen-support API
  • Hardware-accelerated 2D graphics

Graphics and animation

  • Property-based animation
  • Renderscript 3D graphics

Media and connectivity

  • HTTP Live streaming
  • Bluetooth A2DP and HSP devices
  • Support for RTP
  • MTP/PTP file transfer
  • DRM framework
  • Input from keyboard, mouse, gamepad, joystick

Enterprise

  • Full device encryption
  • DPM policies for encrypted storage and passwords



 사실 이는 예전부터 아이스크림 샌드위치에 포함될 것이라 구글에서 이야기했었던 피처로, 허니컴에서 새로 제공되던 tablet용 UI framework가 phone에서도 사용될 수 있게 되었다는 것에 그 의의가 있다. 구글에서 가장 신경을 기울인 부분으로 생각된다. 
또한 많이 기대가 되는 것이, 사실 Honeycomb에서 추가된 위 내용들은 활용성이 아주 좋은 feature들이다. 현재 안드로이드 계열은 tablet쪽에서 킬러 컨텐츠도 없고 킬러 디바이스도 없는, 말 그대로 별다른 힘을 쓰지 못하고 있는 상황이기 때문에 이 Honeycomb feature들이 과소평가되었는데, 활성화된 생태계가 조성된 phone에 이 feature들이 이식이 되는 순간 Honeycomb 업데이트로 유저들이 제대로 누리지 못했던 혜택까지 Ice Cream에서 한꺼번에 나올 가능성이 크다


커뮤니케이션과 공유 (Communication and sharing)

또한 아이스크림은 SNS와 Share 개념을 디바이스의 모든 앱들로 확장시켰다. 앱은 유저의 모든 활동이나 소셜 네트워크등의 정보를 바탕으로 이를 전화번호, 프로필 데이터, 캘린더 이벤트등에 통합시킬 수 있다.
 

Social API

공유된 Social Provider와 API가 전화번호부, 프로필 데이터, 상태 업데이트, 사진들에 대한 새로운 통합 저장소를 제공한다. 유저 권한을 통해서 어떠한 앱이나 소셜 네트워크라도 새로운 전화번호들을 만들 수 있고, 이를 다른 앱이나 네트워크에서 접근하게 할 수 있다. 앱들은 유저 권한 획득을 통해 프로필데이터를 Provider로부터 읽거나 그들의 앱 안에 표시하는 것 또한 할 수 있다.

Social API는 앱이 표준 전화번호부 데이터에 어떠한 타입의 내용도 저장할 수 있게 해준다. 커다란 프로필 사진이나 최근 활동에 대한 피드백같은 것들을 포함해서 말이다. 최근 활동에 대한 피드백들은 애플리케이션들이 공통 Activity에 전화번호를 "tag"하기 위한 표준 방식이다. 유저가 해당 전화번호로 전화를 하거나 이메일을 보내거나 SMS 메세지를 보내기 위할 때에 말이다. Social Provider는 최근 활동 피드백을 이름 자동완성이나 최근 가장 활동이 왕성했던 전화번호를 가장 위쪽에 위치시키는 것 같은 순위시스템의 신호로 이용한다.


애플리케이션은 또한 유저로 하여금 People 앱의 전화번호로부터 소셜 커넥션을 만들 수 있게 해준다. 유저가 Add Connection을 전화번호로부터 터치할 경우, 앱은 public intent를 다른 app들이 다룰 수 있는 방식으로 브로드캐스팅하게 되고, 소셜 커넥션을 만들기 위한 만들어진 UI를 나타내게 할 수 있다. 


Social API를 사용할 때, 개발자들은 여러가지 SNS와 전화번호부 소스들을 붙일 수 있는 파워풀한 새 인터액션을 묶을 수 있다. 



달력 API (Calendar API)

공유된 Calendar Content Provider와 framework API가 생겼다. 즉 캘린더 서비스를 앱에 탑재하기 쉬워졌다는 말이다.


권한을 획득한 어떤 앱도 공유 DB에 이벤트를 더하거나, 일정, 참석자, alerts, reminders 등을 조정할 수 있다. 앱은 DB로부터 다른 앱들이 넣어온 이벤트들도 포함한 데이터를 읽어올 수도 있다. 그리고 event alert, reminder 등을 표시하는 것도 제어할 수 있다. Calendar Provider를 사용함으로써, 유저의 이벤트를 보거나 관리하는 개선된 방식을 제공하기 위해 앱은 이벤트 데이터를 소스로 하는 여러가지 앱과 프로토콜들로부터 그 이득을 취할 수 있다. 그리고 앱들은 그들만의 내용을 더 좋게 연계시키기 위해 캘린더 데이터를 사용할 수 있다. 

캘린더 서비스와 더 가볍게 연계시키기 위해서, 캘린더 앱은 이벤트를 만들거나, 보거나, 편집하기 위한 여러가지 공용 Intents들을 정의했다. 앱은 간단히 캘린더 Intents를 브로드캐스팅함으로써, 캘린더 UI를 만들고 이를 바로 Calendar Provider에 연결시키거나 하는 번잡한 과정을 필요치 않게 되었다. Calendar 앱이 Intents를 받을 경우, 적당한 UI를 런칭하고 어떤 이벤트 데이터라도 저장한다. 캘린더 Intents를 사용하면 예를 들어, 앱들은 사용자들이 목록이나 다이얼로그, 혹은 홈 스크린 위젯으로부터 바로 레스토랑 예약이나 친구와 만날 시간을 예약하는 등의 이벤트를 더할 수 있게 해준다. 


 사실 외국인들이 정말 가장 중요하게 여기는 앱의 순위권에 항상 등극하는 녀석이 캘린더이다. 내가 만나본 유럽인들은 모두 일정 관리를 매우 중요시했었는데, 이 새로운 API 또한 개인 개발자들에게도 활용성이 아주 높다고 볼 수 있다.
 


비주얼 음성메일 API (Visual voicemail API)

공유된 음성메일 provider는 개발자로 하여금 통합 음성메일 저장소에 음성을 넣을 수 있는 앱을 만들 수 있게 해준다. 음성메일들은 플랫폼의 Phone 앱의 콜 로그 탭에 보여지고 실행된다. 


안드로이드 빔 (Android Beam)

안드로이드 빔은 NFC를 기반으로 한 피쳐로, NFC가 사용가능하게 된 폰들을 가져다 대는 것만으로도 유저들이 즉각 그들이 사용하는 app들에 대한 정보를 공유하게 해준다. 디바이스들이 가능한 거리 내에 있을때 -몇 센티미터 안- 시스템은 NFC 커넥션을 셋업하고 sharing UI를 보여주게 돈다. 디바이스로 볼 수 있는 무엇이든지간에 공유할 수 있고, 이를 위해서는 유저들이 그냥 스크린을 터치하면 된다.

개발자들을 위해, 안드로이드 빔은 proximity를 기반으로 한 어떤 타입의 인터액션이라도 실행시킬 수 있는 방법을 제공한다. 예를 들어, 즉각 전화번호를 교환하게 해 주고, 멀티플레이어 게이밍을 셋업하게 해주고, 채팅이나 비디오 콜에 합류하게 해 주고, 사진이나 비디오를 공유하는 등등을 할 수 있다. 시스템은 저레벨의 NFC와 공유 UI를 제공한다.
foreground 앱이 가벼운 데이터를 다른 디바이스로 전송하는 동안에, 개발자들은 데이터를 조작하거나 공유하는 것에 대해 완전한 통제권을 가지게 된다. 그러므로 거의 모든 인터액션이 가능해진다. 무거운 데이터들에 대해서는, 안드로이드 빔으로 커넥션을 활성화시킨 후 데이터는 블루투스로 보내는 등의 방식도 가능하다. 사용자들이 알아차리지 못하는 동안에 페어링시킨채로 말이다.

심지어 개발자들은 안드로이드 빔에 기반한 커스텀 인터액션을 더하지 않고도 이득을 취할 수 있다. 기본적으로 시스템은 앱의 Android Market URL을 공유한다. 그러므로 유저는 즉각적으로 앱을 다운로드 받거나 결재할 수 있게 된다.
 

모듈러 공유 위젯 (Modular sharing widget)

UI framework는 새로운 위젯을 포함한다. ShareActionProvider인데, 이것이 개발자들이 빨리 표준 공유 기능과 UI를 그들의 앱의 액션 바에 더할 수 있게 해준다. 개발자들은 단순히 ShareActionProvider를 그들의 메뉴에 더하고 원하는 공유 액션이 포함된 intent를 지정해주기만 하면 된다. 나머지는 시스템이 알아서 한다. 그 share intent를 처리할 수 있는 앱들의 리스트들을 만들고 그 메뉴로부터 사용자가 선택하면 바로 intent를 뿌려주는 방식으로 말이다.
 
 

새로운 미디어 가능성들 (New media capabilities)


저레벨 스트리밍 멀티미디어 (Low-level streaming multimedia)

Android 4.0은 저레벨 스트리밍 멀티미디어를 위한 직접적이고 효율적인 패스를 제공한다. 이 새로운 패스는 특정 앱들을 위해 이상적일 수 있는데, 예를 들어 미디어 데이터를 보여주기 위한 플랫폼으로 전달되기 전에 데이터들에 대해 어떤 조작를 하고싶어 하는 녀석들을 말한다. 예를 들어, 미디어 앱들은 이제 데이터를 어떠한 소스로부터도 받을 수 있게 되고 개별적인 암호화 / 복호화를 할 수 있게 되는 것이다. 그리고는 이를 보여주기 위한 플랫폼으로 전달할 수 있다.

애플리케이션들은 이제 그들의 입맛에 맞게 처리된 데이터들을 플랫폼으로 보낼 수 있다. MPEG-2 transport stream format으로 된 multiplexed stream of audio/video content 를 말이다. 그럼 플랫폼이 디먹싱, 디코드 후 content를 렌더링하게 된다. 오디오 트랙들은 active audio devices로 렌더되게 된다. 비디오 트랙은 Surface나 SurfaceTexture로 가서 렌더되는 동안 말이다. SurfaceTexture를 통해 렌터되는 동안, 앱들은 OpenGL을 사용해서 추가적인 그래픽 이펙트들을 적용시킬 수 있다.

이 저레벨 스트리밍을 지원하기 위해, 플랫폼은 새로운 Khronos OpenMAX AL 1.0.1 를 기반으로 한 새로운 native API를 소개한다. 이 api는 이미 플랫폼에 존재하는 OpenSL ES API를 기반으로 구현되었다. 그러므로 개발자들은 필요하다면 두 API들을 모두 사용할 수 있다. 다음 버전의 Android NDK에서 이 기능을 사용하기 위한 툴들이 제공된다.


새 카메라 가능성들 (New camera capabilities)

개발자들은 Android 4.0 의 여러가지 카메라 피쳐를 사용할 수 있다. ZSL 노출, 연속 포커스, 이미지 줌은 앱들이 더 나은 이미지나 동영상을 캡쳐할 수 있게 해준다. 비디오 캡쳐중에, 앱들은 심지어 비디오를 녹화하는 동안에 풀 해상도의 스냅샷을 캡쳐할 수도 있다. 앱들은 이제 원하는 영역만큼을 카메라 프리뷰에 지정하고 화이트밸런스와 노출을 해당 영역에 대해서만 동작으로 조작할 수 있다. 더 쉬운 포커싱과 이미지 프로세싱을 위해, 얼굴인식 서비스가 얼굴들을 감지 및 추적하게 되고, 이를 스크린 좌표로 리턴하게 된다.


이미지나 비디오를 조작하는 미디어 이펙트 (Media effects for transforming images and video)

고성능의 변환을 지원하는 필터 셋들이 개발자들로 하여금 OpenGL ES 2.0 텍스쳐로 이미지를 전달함으로써, 풍부한 효과를 어떤 이미지에도 적용할 수 있게 해준다. 개발자들은 컬러 레벨, 밝기, 배경 바꾸기, 샤픈, 크롭, 회전, 렌즈 왜곡 혹은 다른 효과들을 더할 수 있다. 이 변환들은 GPU에 의해 처리되며, 디스크, 카메라, 비디오 스트림으로부터 가져온 image frames를 조작하는 방법이 충분히 빠르게 된다.

GPU를 가지고 이미지를 조작 가능하다는 사실만으로도 상당한 퍼포먼스의 향상을 가져올 수 있다. 주목해야 할 feature.
 

오디오 리모트 컨트롤 (Audio remote controls)

Android 4.0은 새로운 오디오 리모트 컨트롤 API가 추가되었으며, 미디어 앱들로 하여금 리모트 뷰에 표시되는 플레이백 컨트롤들과 동작할 수 있게 해준다. 미디어 앱들은 플랫폼의 락스크린에 포함된 리모트 뮤직 플레이백 컨트롤과도 동작할 수 있다. 이를 통해 유저들에게 락스크린 상태에서의 음악 선택이나 플레이백을, 언락 후 뮤직 앱으로 돌아가는 방식을 취하지 않고도 할 수 있게 해준다.

오디오 리모트 컨트롤 API를 사용함으로써, 어떠한 뮤직이나 미디어 앱도 미디어 버튼 이벤트를 리모트 컨트롤로부터 받을 수 있으며 플레이 스테이트를 이에 따라 변경할 수 있다. 또한 앱은 리모트 컨트롤에 메타데이터를 제공할 수도 있다. 앨범 아트나 이미지, 플레이 스테이트, 트랙 넘버나 디스크립션, 길이, 장르 등등을 말이다.


새 미디어 코덱과 컨테이너들 (New media codecs and containers)

Android 4.0은 미디어 타입들과 컨테이너들을 추가 지원하며, 개발자들로 하여금 그들이 원하는 포맷에 접근할 수 있게 해준다. 고품질의 압축 이미지, WebP를 지원하는 미디어 프레임웤 또한 추가된다. 비디오 용으로는, 스트리밍 VP8 컨텐트를 지원하게 되었고, 멀티미디어 스트리밍를 위해서는, 프레임웤은 HTTP Live streaming protocol version 3를 지원하고, ADTS-contained AAC content의 인코딩도 지원한다. 추가적으로, 개발자들은 이제 Vorbis와 VP8 컨텐트를 위한 Matroska containers도 사용할 수 있다.
 

새 종류의 접근성 (New types of connectivity)

Wi-Fi Direct

개발자들은 근처에 위치한 디바이스들을 직접 찾거나 연결할 수 있는 고성능 프레임웤 API를 사용할 수 있다. 이는 Secure Wi-Fi 다이렉트 커넥션으로, 인터넷 커넥션이나 핫스팟이 필요치 않다.

Wi-Fi 다이렉트는 개발자들을 위해 그들의 앱에 혁명적인 피쳐들을 더할 수 있는 새로운 가능성을 열었다. 앱들은 Wi-Fi 다이렉트를 파일, 사진, 혹은 다른 미디어들을 기기간에 공유하는데 쓰일 수 있고, 심지어 데스크탑 컴퓨터와 안드로이드-파워드 디바이스 사이에서도 이를 공유할 수 있다. 앱들은 Wi-Fi 다이렉트를 디지털 텔레비전이나 오디오 플레이어로 미디어 컨텐트를 스트리밍 하는데 쓸 수도 있고, 한 그룹의 유저들을 게이밍, 파일 프린트 등등을 위해 연결할 수도 있다.

 NFC방식이 개인들의 모바일 디바이스간의 통신에 적합하다면 WiFi Direct들은 기존에 설치된 대형 기기들과의 통신에 적합하다고 보인다. 또한 Wi-Fi 방식이니만큼 H/W에서 지원하는 revision에 따라서 Full HD 방식의 영상도 바로 Play할 수 있는 가능성이 있다. 

  

블루투스 헬스 디바이스 프로파일 (Bluetooth Health Device Profile (HDP))

개발자들은 이제 파워풀한 메디컬 애플리케이션을 만들 수 있다. HDP를 이용해 병원, 피트니스 센터, 집 혹은 원하는 곳에서 무선 디바이스와 센서들을 블루투스를 이용해서 연결할 수 있다. 앱들은 HDP 소스들로부터 정보를 수집하고 관리할 수 있다. 그리고 그 정보들을 백엔드에 있는 메디컬 앱들로 전송할 수 있다. 레코드 시스템이나, 데이터 분석 서비스같은 것들로 말이다.

프레임웤 API를 씀으로써, 앱들은 근처에 있는 디바이스들을 식별하기 위해 Bluetooth 를 사용할 수 있다. 신뢰성있는 혹은 스트리밍 데이터 채널을 연결하기 위해서 말이다. 그리고 데이터 전송을 제어할 수 있다. 애플리케이션들은 이제 어떠한 IEEE 11073 매니저도 제공할 수 있다. 그리고 이 매니저는 건강 관련 데이터들을 받고 해석할 수 있다. Continua-certified 장치들, 예를 들면 심장 박동 모니터, 혈압계, 온도계, 체중계 같은 것들로부터 말이다.


새 UI 컴포넌트와 가능성들 (New UI components and capabilities)

레이아웃 향상 (Layout enhancements)

GridLayout 이 새로 생겼다. 안드로이드 애플리케이션의 퍼포먼스를 향상시키는데 이는 flatter한 뷰 계층구조를 지원한다. 이는 layout하거나 렌더링하는데 더 좋은 속도를 제공한다. 계층이 flatter하기 때문에 개발자들은 사실 논리적으로 연관이 없는 컴포넌트들 사이에도 관련이 있어 보인다면 앱 UI에 대해 정교하게 제어도 할 수 있고, 해당 컴포넌트간 정렬을 제어할 수도 있다. GridLayout은 이클립스의 ADT Plug-in같은 드래그앤 드롭 디자인 툴로 만들어질 수 있도록 특별히 만들어졌다.
 

OpenGL ES 텍스쳐 뷰들 (OpenGL ES texture views)

새 TextureView 오브젝트가 개발자들로 하여금 즉각 OpenGL ES 텍스쳐들을 UI 계층구조에 포함시켜서 타겟을 렌더링할 수 있게 해준다. 이 오브젝트는 개발자들로 하여금 OpenGL ES 렌터링을 보여주고 조작하게 해준다. 필요한 경우 옮기거나, 변환시키거나, 애니메이션을 주는 기존 뷰 계층구조의 보통 뷰들처럼 말이다. TextureView 오브젝트들은 개발자들로 하여금 카메라 프리뷰, 비디오 디코드, OpenGL 게임 장면 등을 그들의 앱에 더 쉽게 포함시킬 수 있게 해준다. TextureView는 현재의 SurfaceView 오브젝트보다 더 파워풀한 버전으로 볼 수도 있겠다. 이는 GL 렌더링 서페이스에 접근할 수 있는 것과 동일한 이득을 주기 때문이다. 이 서페이스에 대한 이득을 그대로 가진채로 보통의 뷰 계층구조에 참여할 수 있다.
 

하드웨어 가속 2D 드로잉 (Hardware-accelerated 2D drawing)

Android 4.0을 구동하는 모든 안드로이드 파워드 디바이스는 하드웨어 가속 2D 드로잉을 지원해야 한다. 개발자들은 이를 통해 굉장한 UI 효과들을 고해상도의 스크린에 최적의 효과를 지닌채로 적용시킬 수 있다. 심지어 폰에도 말이다. 예를 들어, 개발자들은 가속된 크기 조절, 회전, 혹은 다른 2D 작업을 적용시킬 수 있다. TextureView같은 가속된 UI 컴포넌트와 필터링, 블렌딩, 투명도 조절등과 같은 작업들 또한 마찬가지이다.


새 입력 방식 및 문자 서비스들 (New input types and text services)

스타일러스 입력, 버튼 지원, 호버 이벤트들 (Stylus input, button support, hover events)

Android 4.0은 스타일러스 인풋 이벤트들을 위한 모든 지원을 제공한다. 틸트, 축의 이동, 압력, 그리고 관련된 모션 이벤트 속성등을 포함한다. 앱들이 다른 소스로부터 들어오는 모션 이벤트들을 구별하기 위해, 플랫폼은 스타일러스들을 위해 여러가지 툴 타입들을 추가하였다. 손가락, 마우스, 지우개같은 것들 말이다. 멀티 버튼 포인팅 디바이스들로부터 정보를 받아들이는 것을 더 좋게 하기 위해 플랫폼은 이제 primary, secondary, tertiary버튼들에 대한 구별을 제공한다. 백 & 포워드 버튼들 또한 마찬가지이다. 호버-엔터와 호버-엑시트같은 이벤트들 또한 추가되었다. 또한 향상된 네비게이션과 접근성을 위해서 말이다. 또한 개발자들은 이러한 새 입력 피쳐들을 이용해서 파워풀한 인터액션을 그들의 앱에 더할 수 있다. 정확한 드로잉과 제스쳐링, 핸드라이팅, 모형 인식, 향상된 마우스 입력 등등을 말이다.
 

통합된 스펠링 체크용 텍스트 서비스 API (Text services API for integrating spelling checkers)

앱들이 현재 존재하는 텍스트 관련 서비스들을 가져올 수 있게 되었다. 사전이나 스펠 체커나 단어 제시, 수정, 비슷한 단어 추천같은 것이 포함된다. 이 텍스트 서비스들은 active IME의 외장형이다. 그래서 개발자들은 사전이나 단어 제시 엔진을 만들거나 배포해서 플랫폼에 쉽게 플러그인 할 수 있다. 앱이 텍스트 서비스로부터 결과를 받을 경우 - 예를 들면 단어 제시- 이는 dedicated 추천 팝업을 text view 내부에서 바로 보여줄 수 있다. IME에 의존하지 않고 말이다.
 

향상된 접근성 API들 (Enhanced accessibility APIs)

새 접근성 피쳐들을 더했다. 향상된 API는 개발자들이 앱에서 사용자 경험을 개선시키는데 도움을 준다. 특히 하드웨어 버튼이 없는 디바이스들에서 말이다. 접근성 서비스들, 예를 들어 스크린 리더를 보면, 플랫폼은 새 API를 윈도우 컨텐트를 가져오는데 쓸 수 있다. 더 쉬운 네이게이션이나 나은 피드백, 풍부한 유저 인터액션을 위해서 말이다.
 

접근성 API (Accessibility API)

접근성 피쳐가 켜져 있는 경우 앱들이 인터액션을 더 효과적으로 제어할 수 있다. 플랫폼은 explore-by-touch 모드, 스크롤링, 텍스트 셀렉션들을 위한 접근성 이벤트를 추가했다. 이런 것들이나 혹은 다른 이벤트를 위해, 플랫폼은 이 이벤트 컨텍스트에 대한 추가 정보를 제공하는 "접근성 레코드"라 불리우는 새로운 오브젝트를 첨부할 수 있다. 

접근성 레코드와 관련 API를 사용하기 위해, 애플리케이션은 이제 이벤트에 연계되어서 뷰 계층구조에 접근할 수 있다. 애플리케이션은 부모나 자식 노드들, 가능한 상태, 지원되는 동작, 스크린 포지션 등에 대한 키 프로퍼티들을 가져올 수 있다. 애플리케이션들은 포커스를 관리하거나 선택된 상태를 바꾸기 위해 프로퍼티들에 대한 변경도 요청할 수 있다. 예를 들어, 접근성 서비스는 이러한 새 능력들을 text로 화면을 검색하는 등의 추가 편리 피쳐들을 추가하기 위해 사용할 수 있다.


Text-to-speech API

새 프레임웤 API는 개발자들로 하여금 TTS 엔진들을 만들 수 있게 해주며 TTS를 요청하는 어떠한 앱들에서도 이를 사용할 수 있게 해준다.


효율적인 네트워크 사용 (Efficient network usage)

유저들은 현재 그들이 사용하는 앱이 얼마나 많은 네트워크 데이터들을 사용하는지 볼 수 있다. 또한 그들은 network type에 따라 데이터 사용량을 제한할 수도 있고 특정 앱에 대한 background data 사용을 막아버릴 수도 있다. 이런 연유로 개발자들을 그들의 앱을 효율적으로 설계할 필요가 있다. 또한 네트워크 컨디션을 체크하는 가장 좋은 방법을 따라야 할 필요가 있다. Android 4.0은 이러한 목표를 지원하기 위해 network API를 지원한다.

유저들이 network들을 옮겨다니거나 network data에 대한 제한을 설정함에 따라, 플랫폼은 애플리케이션이 커넥션 타입이나 사용 가능성에 따라 동작 가능하게 이들을 얻어올 수 있게 해 준다. 개발자들은 이러한 정보를 바탕으로 동적으로 네트워크 리퀘스트를 조절하고 유저들에게 가장 좋은 경험을 보장하게 해준다. 개발자들은 또한 커스텀 네트워크를 구성하고 데이터 사용 옵션을 그들의 앱에 탑재할 수 있다. 그리고 그들을 유저에게 Settings에서 바로 노출할 수 있게 해주는데 이는 새로운 system Intent를 통해서 가능하다.



앱과 컨텐트를 위한 보안성 (Security for apps and content)
 

보안 관리 (Secure management of credentials)

앱들이 인증이나 보안 세션을 관리하기 편하게 해준다. 새로운 키 체인 API와 이를 바탕으로 암호화된 저장소를 제공하는데 이는 앱들로 하여금 그들의 특정한 인증 체인에 따라서 개인키를 저장하고 받게 해 준다. 어떠한 앱들이라도 이 키체인 API를 유저 인증서와 CA들을 안전하게 설치하고 저장할 수 있다.
 

주소 공간 레이아웃 랜덤화 (Address Space Layout Randomization)

Android 4.0은 주소 공간 레이아웃 랜덤화 (ASLR)을 제공한다. 이는 시스템과 서드파티 애플리케이션을 메모리 매니지먼트 이슈들로 비롯될 수 있는 나쁜 시도들로부터 보호한다.



엔터프라이즈용 향상 (Enhancements for Enterprise)
 

VPN client API

개발자들은 이제 그들만의 VPN 솔루션을 플랫폼에 만들거나 확장할 수 있다. 이는 새 VPN API를 이용해서 가능하고, 안전한 인증 저장소등을 통해서 가능하게 해준다. 유저 퍼미션으로, 앱들은 주소나 라우팅 룰을 정할 수 있고, 들어오거나 나가는 패킷들을 처리할 수 있다. 또한 원격 서버와 안전하게 보호된 터널을 세울 수 있다. 엔터프라이즈들은 L2TP와 IPSec 프로토콜을 제공하는 플랫폼에 포함된 표준 VPN을 통해서도 이러한 이득을 얻을 수 있다. 

카메라를 위한 디바이스 정책 관리 (Device policy management for camera)

이 플랫폼은 설치된 Device Policy Manager를 이용해서 장치를 제어하는 관리자를 위한 새로운 정책 관리를 추가했다. 관리자는 이제 특정 민감한 환경에서 일하는 유저들을 위해, 관리되는 디바이스에서는 원격으로 카메라를 사용하지 못하게 할 수 있다.