Designing Apps for Motorla Xoom Tablet

57
Anna Schaller Android 기기 기기기 기기기 기기기 기 기기기 Motorola Mobility Motorola XOOM 용 용 용용

description

Presentation from #andevcon by Anna Schaller Peter van der Linden, Android Technology Evangelists from the Developer Platforms and Services team at Motorola Mobility. More info at http://developer.motorola.com

Transcript of Designing Apps for Motorla Xoom Tablet

Page 1: Designing Apps for Motorla Xoom Tablet

Anna SchallerAndroid 기술 전도사

개발자 플랫폼 및 서비스

Motorola Mobility

Motorola XOOM 용 앱 설계

Page 2: Designing Apps for Motorla Xoom Tablet

환영사

© 2010 Motorola Mobility, Inc.

01 과거와 현재스마트폰 설계와 태블릿 설계 비교

02 애플리케이션 UI 디자인의 변화Android 3.0 UI 특징 소개

03 그래픽과 미디어의 변화그래픽과 미디어 지원에 대한 업데이트 , 향상 및 정보

04 하드웨어 특징XOOM 하드웨어에서의 Android 지원

05 10 가지……XOOM 상에서 애플리케이션을 얻기 위한 간편한 단계

Page 3: Designing Apps for Motorla Xoom Tablet

코딩 사례 3페이지

© 2010 Motorola Mobility, Inc.

Motorola XOOM 용 앱 설계

태블릿 소개

• 스크린

10.1", WXGA(1280 x 800), 160 dpi(mdpi)

• 메모리 : 32 GB 플래시 스토리지

• 프로세서 : nVidia Tegra 2 듀얼 코어

• 센서 : 가속도계 , 기압계 , 자이로스코프 , 나침반 , 조도계 , GPS, 근접 또는 진동 없음 , 4- 방향 회전

• 연결 : 802.11 a/b/g/n, Bluetooth, HDMI

• 카메라 : 2mp 고정 초점 전방 / 5mp 자동 초점 후방

• 미디어 : 720p HD 비디오 레코딩 , 1080p HD 재생

• 외장 스토리지 : 32 GB SD 카드 ( 지원 예정 )

• 플랫폼 : Android 3.0/3.1(Honeycomb)

• 앱 환경 : Adobe AIR 2.6, Android, NDK, Flash 10.3

• 다수의 소프트웨어 변경 사항

Page 4: Designing Apps for Motorla Xoom Tablet

코딩 사례 4페이지

© 2010 Motorola Mobility, Inc.

Motorola XOOM 용 앱 설계

Atrix 구성

상태 표시줄

메뉴 키

홈 키 뒤로 버튼

보너스 버튼( 일반적으로 검색 기능 )

볼륨 키( 상 /하 )

전원 버튼

Page 5: Designing Apps for Motorla Xoom Tablet

코딩 사례 5페이지

© 2010 Motorola Mobility, Inc.

Motorola XOOM 용 앱 설계

XOOM 구성

볼륨 키( 상 /하 )

전원 버튼

Page 6: Designing Apps for Motorla Xoom Tablet

코딩 사례 6페이지

© 2010 Motorola Mobility, Inc.

Motorola XOOM 용 앱 설계

XOOM 구성

시스템 표시줄

메뉴 버튼아님

Page 7: Designing Apps for Motorla Xoom Tablet

7 페이지

프레젠테이션 제목 버전 1.0 2009 년 2 월 24 일

애플리케이션 UI 디자인의 변화

• 홀로그램 테마

• 시스템 표시줄 희미하게 하기

• 동작 표시줄

• Fragment

• 새로운 위젯

• 알림 업데이트

• 시스템 클립보드

• 드래그 및 드롭

Page 8: Designing Apps for Motorla Xoom Tablet

코딩 사례 8페이지

© 2010 Motorola Mobility, Inc.

Motorola XOOM 용 앱 설계

홀로그램 테마

• Android 3.0 대상으로 구축된 모든 앱에 의해 적용됩니다

– minSdkVersion 또는 targetSdkVersion = 11 * 및 * 하드웨어 가속 활성화(android:hardwareAccelerated=“true”)

– SDK 버전이 9 이하일 경우 애플리케이션은 Android 2.3 의 위젯 디자인을 사용하고 홀로그램 테마를 적용하지 않습니다

• 다음과 같은 두 가지 버전이 있습니다

– 흰색 글자에 파란색 배경인 기본 버전 @android:style/Theme.Holo

– 어두운 글자색에 반전된 흰색 홀로그램 @android:style/Theme.Holo.Light

Page 9: Designing Apps for Motorla Xoom Tablet

코딩 사례 9페이지

© 2010 Motorola Mobility, Inc.

Motorola XOOM 용 앱 설계

시스템 표시줄 희미하게 하기

• 소등 모드

– 아이콘을 홀로그램 “ 점” 으로 대체해 시스템 표시줄을 희미하게 합니다 (시스템 표시줄이 없어지지는 않음 )

View v = findViewById(R.id.view_id);

v.setSystemUiVisibility(View.STATUS_BAR_HIDDEN);

v.setSystemUiVisibility(View.STATUS_BAR_VISIBLE);

Page 10: Designing Apps for Motorla Xoom Tablet

코딩 사례 10페이지

© 2010 Motorola Mobility, Inc.

Motorola XOOM 용 앱 설계

동작 표시줄 – 기본

• 앱 상단에 있는 기존의 제목 표시줄을 대체합니다

• 제목이 포함된 애플리케이션 아이콘• 오버플로 메뉴

– 메뉴 생성은 변경되지 않았습니다

public boolean onCreateOptionsMenu(Menu menu) {...}

public boolean onOptionsItemSelected(MenuItem item) {

case R.id.menu_item ...}

/res/menu/menu_definitions.xml

Page 11: Designing Apps for Motorla Xoom Tablet

코딩 사례 11페이지

© 2010 Motorola Mobility, Inc.

Motorola XOOM 용 앱 설계

동작 표시줄 – 동작 항목이 탭으로 표시

• 애플리케이션 아이콘을 동작 가능 상태로 만들 수 있습니다

• 동작 표시줄에 탭으로 표시되는 인터페이스

• 오버플로 메뉴에 나열하기보다는 각 동작 항목으로 표시

– 텍스트 포함 또는 미포함 ; 아이콘 포함 또는 미포함• 동작 표시줄을 관리하려면 :

ActionBar actionBar = getActionBar();

actionBar. setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);

– 참조 : android.app.actionbar

“ 동작 가능”아이콘 탭 동작 항목

Page 12: Designing Apps for Motorla Xoom Tablet

코딩 사례 12페이지

© 2010 Motorola Mobility, Inc.

Motorola XOOM 용 앱 설계

전체 화면으로 전환 - 동작 표시줄 없애기

• 동작 표시줄을 숨길 수 있습니다 . “ 그러나” 그렇게 하면 애플리케이션에서 메뉴에 접근할 수 없습니다

<activity android:theme=“@android:style/Theme.NoTitleBar”>

• 프로그램을 통해 동작 표시줄을 숨길 수도 있으며 , 이 경우 사용자가 전환하면 됩니다

ActionBar bar = getActionBar(); if (bar != null) { if (bar.isShowing()) bar.hide();

else bar.show(); }

Page 13: Designing Apps for Motorla Xoom Tablet

코딩 사례 13페이지

© 2010 Motorola Mobility, Inc.

Motorola XOOM 용 앱 설계

메뉴

• 역호환성을 지원하기 위해 시스템 표시줄과 더불어 소프트 메뉴 버튼이 추가되었습니다

– minSdkVersion 및 targetSdkVersion < 11

Page 14: Designing Apps for Motorla Xoom Tablet

코딩 사례 14페이지

© 2010 Motorola Mobility, Inc.

Motorola XOOM 용 앱 설계

Fragment

• 애플리케이션을 하위 구성 요소로 나누어 개별적으로 관리하고 다양한 방법으로 결합할 수 있도록 해줍니다 ( 예 : 다중 창 UI 만들기 ).

Page 15: Designing Apps for Motorla Xoom Tablet

코딩 사례 15페이지

© 2010 Motorola Mobility, Inc.

Motorola XOOM 용 앱 설계

Fragment( 계속 )

• Fragment 는 항상 Activity 에 임베딩되어야 합니다

목록Fragment

Fragment

Activity

Page 16: Designing Apps for Motorla Xoom Tablet

코딩 사례 16페이지

© 2010 Motorola Mobility, Inc.

Motorola XOOM 용 앱 설계

Fragment( 기본 Fragment)

• Fragment 를 확장하는 클래스를 만듭니다

• Activity 와 유사한 컨텐츠를 표시합니다 ( 이미지 , 텍스트 , 애플리케이션 위젯 )

• 다른 Fragment 나 탭에 연결할 수 있습니다

• Activity 의 오버플로 메뉴 ( 동작 표시줄 ) 에 항목을 추가할 수 있습니다

• 표시되지 않아도 됩니다 ( 은밀히 작동할 수 있음 )

• 화면에 표시된다면 자체 레이아웃 파일이 있어야 합니다

( 기본 ) Fragment

Page 17: Designing Apps for Motorla Xoom Tablet

코딩 사례 17페이지

© 2010 Motorola Mobility, Inc.

Motorola XOOM 용 앱 설계

Fragment(Activity 에 추가 )

XOOM_hc_app /res/layout/main.xml

( 목록 )Fragment

Activity 레이아웃

( 컨텐츠 )Fragment( 이미지 임베딩 포함 )

PictureList.java

ContentFragment.java

Page 18: Designing Apps for Motorla Xoom Tablet

코딩 사례 18페이지

© 2010 Motorola Mobility, Inc.

Motorola XOOM 용 앱 설계

새로운 뷰 (View)

• 애플리케이션 위젯

– PopupMenu(android.widget.PopupMenu)

• 메뉴가 뷰 (View) 에 연결됩니다 ( 예 : 버튼 )

• 홈 화면 위젯

– StackView(android.widget.StackView)

• 3D 스택으로 하위 요소를 표시하고 사용자가 하위 요소 사이에서 각각 넘겨볼 수 있는 보기 화면 .

• 풍부한 알림 기능 (android.app.Notification.Builder)

– 알림 레이아웃을 구축합니다

Page 19: Designing Apps for Motorla Xoom Tablet

코딩 사례 19페이지

© 2010 Motorola Mobility, Inc.

Motorola XOOM 용 앱 설계

작업 예

• SDK( 소프트웨어 개발 도구 ) 견본 중 Honeycomb Gallery 에 나와 있는 사항

– 인터페이스 탭 , 동작 항목 메뉴 및 오버플로 메뉴가 포함된 동작 표시줄

– Fragment List 및 Fragment 를 가로 및 세로 방향으로 표시

– 새로운 테마

– 끌어서 놓기

– 애니메이션

– 동작 표시줄 숨기기 / 표시

– 소등 모드

Page 20: Designing Apps for Motorla Xoom Tablet

프레젠테이션 제목 버전 1.0 2009 년 2 월 24 일

그래픽 및 멀티미디어

• 2D 그래픽을 위한 하드웨어 가속

• 텍스처 압축

• 새로운 애니메이션 프레임워크

• 미디어 지원

Page 21: Designing Apps for Motorla Xoom Tablet

코딩 사례 21페이지

© 2010 Motorola Mobility, Inc.

Motorola XOOM 용 앱 설계

하드웨어 가속

• 2D 그래픽 서브셋 상에서 가속을 위한 내장 지원 (Canvas API)

• 매니페스트에서 적절한 노드를 설정해 전체 애플리케이션 또는 각 Activity 에 적용

– android:hardwareAccelerated=“true”

• 다음을 통해 각 Activity 및 / 또는 창에 프로그래밍을 통해 로컬 적용 : WindowManager.LayoutParams

Window win = getWindow(); win.setFlags (WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED,

WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED);

• 다음을 통해 캔버스에 하드웨어 가속이 적용되었는지 테스트해 확인 : isHardwareAcclerated()

Page 22: Designing Apps for Motorla Xoom Tablet

코딩 사례 22페이지

© 2010 Motorola Mobility, Inc.

Motorola XOOM 용 앱 설계

텍스처 압축

• 여러 종류의 칩셋은 여러 다른 종류의 압축 종류를 지원합니다• 모바일용 형식 :

– OpenGL ES 2.0 이 설치된 모든 Android 장치에서 ETC1 지원됨( 알파 채널은 지원되지 않음 )

– PVRTC(Imagination Technologies 의 PowerVR SGX 530 GPU)

– ATITC(Qualcomm 의 Adreno GPU)

– S3TC 또는 DXT1, 3, 5(nVidia GPU)

• 솔루션 : 텍스처 압축 필터링

<supports-gl-textures android:name=“string”>

문자열은 압축 종류에 해당하는 OpenGL ES 확장임

예 : android:name=“GL_EXT_texture_compression_s3tc”

Page 23: Designing Apps for Motorla Xoom Tablet

코딩 사례 23페이지

© 2010 Motorola Mobility, Inc.

Motorola XOOM 용 앱 설계

텍스처 압축 ( 계속 )

• Honeycomb 에서뿐만 아니라 모든 API 레벨과도 작동됩니다• 지원되는 모든 형식을 위한 태그를 하나씩 정의해야 합니다• Android Dev Guide - Android 매니페스트 태그에 나오는 지원되는 압축 종류 목록 http://developer.android.com/guide/topics/manifest/supports-gl-texture-element.html

• 도구는 MotoDev 기술 자료 참조 http://developer.motorola.com/docstools/library/understanding-texture-compression/

Page 24: Designing Apps for Motorla Xoom Tablet

코딩 사례 24페이지

© 2010 Motorola Mobility, Inc.

Motorola XOOM 용 앱 설계

애니메이션

다음과 같은 두 가지의 애니메이션 시스템을 선택할 수 있습니다 .

1. 뷰 (View) 애니메이션 (android.view.animation)

– 트윈 (Tween) 애니메이션• 뷰 (View) 개체의 컨텐츠에서 간단한 일련의 변화를 실행합니다 .

• 기본 전환에는 그래픽의 회전 , 페이드 , 이동 및 늘이기가 포함됩니다 .

– 프레임 (Frame) 애니메이션• 프레임별 애니메이션으로 하나씩 Drawable 리소스를 연속으로 표시해

애니메이션을 만들 수 있습니다 .

2. 프로퍼티 (Property) 애니메이션 (android.animation // Honeycomb 의 새로운 기능 )

– (Drawable 과 같은 표시 뿐만 아니라 !) 거의 모든 개체를 애니메이션화할 수 있습니다 .

– 애니메이션화할 수 있는 프로퍼티 세트를 확장합니다 ( 그룹 및 재생 )

– 뷰 (View) 애니메이션이 좀 더 간단하고 빠른 반면 , 프로퍼티 애니메이션은 기능이 더 많습니다

– 참조 : http://developer.android.com/guide/topics/graphics/animation.html

Page 25: Designing Apps for Motorla Xoom Tablet

코딩 사례 25페이지

© 2010 Motorola Mobility, Inc.

Motorola XOOM 용 앱 설계

미디어 지원 - 장치에서 컨텐츠 얻기

• 디지털 미디어 파일 전송– 미디어 / 사진 전송 프로토콜 (MTP/PTP) 을 위한 내장 지원

– 사용자가 USB 케이블을 꼽으면 Android File Transfer 애플리케이션이 시작됩니다 .

– 사용자는 사진 , 영화 , 비디오 , 벨소리 , 팟캐스트 등을 미리 정의된 폴더에 복사하거나 다른 컨텐츠를 위한 새 폴더를 만들 수 있습니다 .

Page 26: Designing Apps for Motorla Xoom Tablet

하드웨어

• 센서

• 카메라

• 터치 스크린

• 전화 통신

Page 27: Designing Apps for Motorla Xoom Tablet

코딩 사례 27페이지

© 2010 Motorola Mobility, Inc.

Motorola XOOM 용 앱 설계

센서

• 가속도계 , 자이로스코프 , 자기계 , 기압계 , 나침반 , 조도계 , GPS, 근접 센서 없음 , 진동 없음

• 장치 방향

– 정상적인 방향은 4- 방향 회전에 가로 방향입니다

-ye

+yes

+x

-x

+z

+ye

+ye-x +x

-ye

-ye

+x

-x

0 도 회전 0 도 회전90 도 회전

Page 28: Designing Apps for Motorla Xoom Tablet

코딩 사례 28페이지

© 2010 Motorola Mobility, Inc.

Motorola XOOM 용 앱 설계

센서 ( 계속 )

• android.view.Display.getRotation() 을 사용해 현재 방향을 알아냅니다

• 네 가지 회전 방향 종류에 대한 x/y 값을 조정합니다

– ROTATION_0

– ROTATION_90

– ROTATION_180

– ROTATION_270

• SDK 에서 AccelerometerPlay 견본 참조• Android 블로그 포스트 One Screen Turn Deserves Another에 자세한 내용이 나와 있습니다

• 애플리케이션이 회전하지 않도록 하려면 다음을 통해 정상적인 방향으로 고정하십시오 :

<activity android:orientation=“nosensor” />

Page 29: Designing Apps for Motorla Xoom Tablet

코딩 사례 29페이지

© 2010 Motorola Mobility, Inc.

Motorola XOOM 용 앱 설계

버전 1.0© 2010 Motorola Mobility, Inc.

센서 - 기압계 센서 판독// www.engineeringtoolbox.com/air-altitude-pressure-d_462.html// 고도 10 미터 상승시 ~ 1.2 gm/cm2 감소

Page 30: Designing Apps for Motorla Xoom Tablet

코딩 사례 30페이지

© 2010 Motorola Mobility, Inc.

Motorola XOOM 용 앱 설계

카메라

• 2 개의 카메라 ( 전방 및 후방 ) 를 사용할 수 있습니다

– 5 MP, 자동 초점 , 후방

– 2 MP, 고정 초점 , 전방

• Gingerbread(2.3) 에서 이중 카메라에 대한 지원 추가됨

• 후방 카메라가 기본 카메라이므로 후방 카메라의 특징을 기반으로 필터링이 수행됩니다 ( 예 : android.hardware.camera.autofocus)

<uses-permission android:name=“android.permission.CAMERA” />

<uses-feature android:name=“android.hardware.camera.front”

android:required=<true or false> />

Page 31: Designing Apps for Motorla Xoom Tablet

코딩 사례 31페이지

© 2010 Motorola Mobility, Inc.

Motorola XOOM 용 앱 설계

카메라 ( 계속 )import android.hardware.Camera;import android.hardware.Camera.CameraInfo; […] public void toggleCamera() { Camera mCamera; int numberOfCameras = Camera.getNumberOfCameras(); CameraInfo cameraInfo = new CameraInfo(); for (int i = 0; i < numberOfCameras; i++) { Camera.getCameraInfo(i, cameraInfo); if (cameraInfo.facing == CameraInfo.CAMERA_FACING_FRONT) { mCamera = Camera.open(i);

// 전방 카메라로 작업 수행  } else if (cameraInfo.facing == CameraInfo.CAMERA_FACING_BACK) { mCamera = Camera.open(i);

// 후방 카메라로 작업 수행 } }}

Page 32: Designing Apps for Motorla Xoom Tablet

코딩 사례 32페이지

© 2010 Motorola Mobility, Inc.

Motorola XOOM 용 앱 설계

터치 스크린

• android.hardware.touchscreen.multitouch (API 레벨 7)

– 손가락 2 개로 누르는 작동을 지원합니다• android.hardware.touchscreen.distinct (API 레벨 8)

– 2 개 이상의 손가락을 완전히 독립적으로 추적하는 작동을 지원합니다• android.hardware.touchscreen.multitouch.jazzhands (API 레벨 9)

– 5 개 이상의 손가락을 완전히 독립적으로 추적하는 작동을 지원합니다 (10 개 손가락으로 누르기 )

– <uses-feature> 태그를 설정해 이 기능을 지원하는 장치( 예 : XOOM) 로 필터링합니다

Page 33: Designing Apps for Motorla Xoom Tablet

코딩 사례 33페이지

© 2010 Motorola Mobility, Inc.

Motorola XOOM 용 앱 설계

터치 스크린 ( 계속 )

• XOOM 에는 실제 키보드가 없기 때문에 사용자에게는 터치 스크린 표면이 기본적인 접촉 지점이 됩니다

• 터치라는 개념을 반드시 이해해야 합니다• MotionEvent 로 onTouch 이벤트 리스너 기능을 사용합니다

• MotionEvent.getPointerCount(): 터치 지점의 수를 알려줌• MotionEvent.getPointerId(): 각 손가락을 추적할 수 있게 함

• Making Sense of Multitouch에서 Adam Powell 의 블로그 게시물을 참조하십시오

Page 34: Designing Apps for Motorla Xoom Tablet

코딩 사례 34페이지

© 2010 Motorola Mobility, Inc.

Motorola XOOM 용 앱 설계

전화 통신

• 장치 관점

– CDMA, UMTS/GMS 장치에는 4G/LTE 네트워크를 지원하기 위한 무선 통신 장치가 있습니다

– 전화 통신 프레임워크의 서브셋이 지원됩니다 (android.telephony.TelephonyManager)

• 앱 관점

– 전화 기능이 지원되지 않습니다

<uses-feature android:name=“android.hardware.telephony android:required=“true”/>

• XOOM 을 위한 여러 구성

– CDMA, UMTS/GSM, WiFi 만

– TelephonyManager.getDeviceId() 정보가 동일하지 않음

– 일반적으로 IMEI 또는 MIED 이 반환됨 : WiFi 장치는 Null 을 반환

Page 35: Designing Apps for Motorla Xoom Tablet

코딩 사례 35페이지

© 2010 Motorola Mobility, Inc.

Motorola XOOM 용 앱 설계

전화 통신 ( 계속 )

• 고유의 식별자 얻기 : 데이터를 구하는 이유가 무엇인지 생각해 봅시다 . 하드웨어를 추적하기 위함입니까 , 아니면 앱을 추적하기 위함입니까 ?

– 하드웨어 추적 작업은 공장 리셋 전반에서 지속적으로 필요합니다 .

– 앱 추적 작업은 공장 리셋 시 값을 리셋해야 합니다 . 

• MAC 주소 (권장하지 않음 )– 모든 장치에 WiFi 가 있는 것은 아닙니다 . 또한 WiFi 가 켜져 있지 않을 경우

하드웨어에서 MAC 주소를 보고하지 않을 수도 있습니다 .

• 일련 번호 (권장하지 않음 )– 전화 통신 기능이 없는 장치에서만 확실히 보장됩니다 .

• ANDROID_ID( 아마도 )– 장치가 처음 부팅되면 생성되어 저장됩니다 . 장치를 지우면 리셋됩니다 .

– Android 2.2 이전 버전의 장치에서는 확실히 보장되지 않습니다

• 새로운 권장 사항은 자체 고유 ID 를 생성해 선호하는 공유 파일에 저장하는 것입니다

– 예 : uniqueId = UUID.randomUUID.toString()

Page 36: Designing Apps for Motorla Xoom Tablet

10 가지…… ..

• Honeycomb SDK

• targetSdkVersion

• 레이아웃

• 예외 처리

• 호환 모드

• Drawable

• 텍스트

• 허용 (Permission) 및 기능

• 코드 베이스 유지

• Honeycomb SDK

Page 37: Designing Apps for Motorla Xoom Tablet

코딩 사례 37페이지

© 2010 Motorola Mobility, Inc.

Motorola XOOM 용 앱 설계

지금 당장 할 수 있는 10 가지 작업

1. Honeycomb SDK( 및 업데이트된 도구 ) 를 다운로드해 에뮬레이터에서 앱을 시험 가동해 봅니다 .

2. targetSdkVersion 을 “ 11” 로 변경하고 무엇이 바뀌는지 살펴봅니다 .

3. 대형 화면에 최적화된 레이아웃을 갖춘 프로젝트에 /res/layout-xlarge 및 /res/layout-xlarge-port 폴더를 추가합니다 .

4. 오류 처리를 업데이트해 앱이 일정 시간 무응답 상태가 되거나(ANR) 사용자가 마냥 기다리게 하기보다는 부드럽게 종료되도록 합니다 .

5. 앱이 “ 호환 모드” 에서 실행되고 있는지 알아봅니다 .

1. minSdkVersion="3", targetSdkVersion 없음 ; 1.5 대상으로 구축

2. minSdkVersion="3" 및 targetSdkVersion="3"; 1.5 를 초과한 모든 SDK 대상으로 구축

3. “ 쉐도우박스 효과”

Page 38: Designing Apps for Motorla Xoom Tablet

코딩 사례 38페이지

© 2010 Motorola Mobility, Inc.

Motorola XOOM 용 앱 설계

지금 당장 할 수 있는 10 가지 작업 ( 계속 )

– targetSdkVersion >= “4” 로 설정 , 1.6 이상의 SDK 대상으로 구축

Page 39: Designing Apps for Motorla Xoom Tablet

코딩 사례 39페이지

© 2010 Motorola Mobility, Inc.

Motorola XOOM 용 앱 설계

6. /res/drawable-<density> 에서 그래픽을 다시 찾아봅니다 .

지금 당장 할 수 있는 10 가지 작업 ( 계속 )

Page 40: Designing Apps for Motorla Xoom Tablet

코딩 사례 40페이지

© 2010 Motorola Mobility, Inc.

Motorola XOOM 용 앱 설계

지금 당장 할 수 있는 10 가지 작업 ( 계속 )

• 9-패치 도구를 사용하여 “늘일 수 있는” 영역을 만듭니다

• 배경을 ImageView 로 놓고 scaleType=centerCrop 을 설정합니다

<ImageViewandroid:src=“@drawable/background”android:layout_width=“match_parent”android:layout_height=“match_parent”android:scaleType=“centerCrop” />

Page 41: Designing Apps for Motorla Xoom Tablet

코딩 사례 41페이지

© 2010 Motorola Mobility, Inc.

Motorola XOOM 용 앱 설계

지금 당장 할 수 있는 10 가지 작업 ( 계속 )

• 패턴 이미지를 기울일 수 있습니다

– /res/layout/main.xml

<LinearLayout android:background=“@drawable/background”

– /res/layout/background.xml

<bitmapxmlns:android=

“http://schemas.android.com/apk/res/android”

android:src=“@drawable/baseimage”android:tileMode=“repeat”android:filter=“true”android:dither=“true” />

Page 42: Designing Apps for Motorla Xoom Tablet

코딩 사례 42페이지

© 2010 Motorola Mobility, Inc.

Motorola XOOM 용 앱 설계

지금 당장 할 수 있는 10 가지 작업 ( 계속 )

– DisplayMetrics 로부터의 얻는 치수를 사용하여 createScaledBitmap() 에 읽어 들입니다

BitmapDrawable backgroundImage = (BitmapDrawable)getResources().getDrawable

(R.drawable.background);Bitmap backgroundBitmap = backgroundImage.getBitmap();backgroundBitmap = Bitmap.createScaledBitmap

(backgroundBitmap, dm.widthPixels,      // 메트릭스 폭 표시 dm.heightPixels,     // 메트릭스 높이 표시

  true);               // 필터링 활성화

Page 43: Designing Apps for Motorla Xoom Tablet

코딩 사례 43페이지

© 2010 Motorola Mobility, Inc.

Motorola XOOM 용 앱 설계

지금 당장 할 수 있는 10 가지 작업 ( 계속 )

7. 텍스트가 알아볼 수 있는 상태이며 큰 화면에서 원활하게 표시되는지 확인합니다 .

– 크기가 더 크다면 (1280 x 800) 텍스트를 최적화해 공간을 최대한 활용합니다

Page 44: Designing Apps for Motorla Xoom Tablet

코딩 사례 44페이지

© 2010 Motorola Mobility, Inc.

Motorola XOOM 용 앱 설계

지금 당장 할 수 있는 10 가지 작업 ( 계속 )

– 2 개의 다른 글꼴 크기로 ( 모두 sp 단위 ) /res/values 및 /res-values-xlarge 에 2 개의 다른 <dimens> 태그를 생성합니다

– @dimen/<variable> 을 <style> textSize 속성에 추가합니다

<style name=“readText” parent=“@android:style/TextAppearance”> <item name=“android:textSize”>@dimen/font_size</item><item name=“android:textColor”>#000000</item>

</style>

Page 45: Designing Apps for Motorla Xoom Tablet

코딩 사례 45페이지

© 2010 Motorola Mobility, Inc.

Motorola XOOM 용 앱 설계

지금 당장 할 수 있는 10 가지 작업 ( 계속 )

8. 시장에서 앱을 걸러낼만한 허용 (Permission) 및 <uses-feature> 태그를 확인합니다 .

– 허용 (Permission) 은 앱을 걸러내지는 않으나 <uses-feature> 태그는 걸러냅니다 .

– XOOM 에는 전화 기능이 없는 것이나 ...... 마찬가지입니다 .

<uses-permission android:name=“CALL_PHONE” /> <uses-permission android:name=“CALL_PRIVILEGED” /><uses-permission android:name=“MODIFY_PHONE_STATE”<uses-permission android:name=“PROCESS_OUTGOING_CALLS” /><uses-permission android:name=“READ_SMS” /><uses-permission android:name=“RECEIVE_SMS” /><uses-permission android:name=“RECEIVE_MMS” /><uses-permission android:name=“RECEIVE_WAP_PUSH” /><uses-permission android:name=“SEND_SMS” /><uses-permission android:name=“WRITE_APN_SETTINGS” /><uses-permission android:name=“WRITE_SMS” />

<uses-feature android:name=“android.hardware.telephony”android:required=“true”/>

*내포 *

Page 46: Designing Apps for Motorla Xoom Tablet

코딩 사례 46페이지

© 2010 Motorola Mobility, Inc.

Motorola XOOM 용 앱 설계

지금 당장 할 수 있는 10 가지 작업 ( 계속 )

– XOOM 에서 앱이 보여지게 하려면 android:required=“false” 를 명시적으로 설정해야 합니다

– APK 에서 aapt 도구를 실행해 명시적 기능을 표시합니다

$ aapt dump badging <path_to_exported_.apk>

$ ./aapt dump badging BTExample.apkpackage: name='com.example.android.btexample' versionCode='' versionName=''uses-permission:'android.permission.BLUETOOTH_ADMIN'uses-feature:'android.hardware.bluetooth'sdkVersion:'3'targetSdkVersion:'5’<. . .>

– MOTODEV App Validator 를 실행해 암시적 기능을 표시합니다 .

• http://developer.motorola.com/testing/app-validator/

Page 47: Designing Apps for Motorla Xoom Tablet

코딩 사례 47페이지

© 2010 Motorola Mobility, Inc.

Motorola XOOM 용 앱 설계

지금 당장 할 수 있는 10 가지 작업 ( 계속 )

9. 코드 베이스를 어떻게 관리할 것인지 결정합니다 . 공식적인 추천 사항은 단일 2 진수 접근식을 유지하는 것입니다 . 호환 라이브러리를 통해 Fragment 를 1.6까지 사용할 수 있음을 명심하십시오 .

10. Honeycomb SDK( 및 업데이트된 도구 ) 를 다운로드해 에뮬레이터에서 앱을 시험 가동해 봅니다 .

Page 48: Designing Apps for Motorla Xoom Tablet

Android 3.1API 레벨 12

• 크기 조정 가능한 위젯

• 입력 및 모션

• USB API

• MTP/PTP 지원

• 실시간 전송 프로토콜 (RTP)

• Fragment Breadcrumb

Page 49: Designing Apps for Motorla Xoom Tablet

코딩 사례 49페이지

© 2010 Motorola Mobility, Inc.

Motorola XOOM 용 앱 설계

크기 조정 가능한 위젯• 홈 화면의 위젯은 크기가 조정 가능합니다

– 가로 , 세로 또는 양 방향 모두

• 위젯 AppWidgetProviderInfo 메타 데이터에서 resizemode 특성을 정의합니다

<appwidget-provider xmlns:android="http://schemas.android.com/apk/ res/android"  android:minWidth="294dp"  android:minHeight="72dp"  android:updatePeriodMillis="86400000"  android:previewImage="@drawable/preview"  android:initialLayout="@layout/example_appwidget"

android:configure="com.example.android.ExampleAppWidgetConfigure"  android:resizeMode="horizontal|vertical" ></appwidget-provider>

Page 50: Designing Apps for Motorla Xoom Tablet

코딩 사례 50페이지

© 2010 Motorola Mobility, Inc.

Motorola XOOM 용 앱 설계

입력 종류 및 모션 이벤트

• 모든 보기와 창에 걸쳐 다양한 새로운 입력원과 모션 이벤트를 지원하기 위해 입력 이벤트 시스템이 확장되었습니다

• 마우스와 트랙볼 입력의 경우 플랫폼이 새로운 두 가지 모션 이벤트를 지원합니다– ACTION_SCROLL( 가로 또는 세로 ): 스크롤휠과 같은 장치에서 스크롤

모션이 발생한 포인터의 위치를 제공합니다

– ACTION_HOVER_MOVE: 버튼을 누르지 않은 상태인 마우스의 위치를 보고합니다

• 조이스틱 , 게임패드 , 마우스 및 트랙볼의 모션 이벤트는 터치 이벤트가 아닙니다– onTouchEvent() 와 달리 onGenericMotionEvent() 로의 호출을 통해

모션 이벤트를 “ 일반적” (Generic) 모션 이벤트로 뷰 (View) 에 전달하기 위한 새로운 콜백 방법

Page 51: Designing Apps for Motorla Xoom Tablet

코딩 사례 51페이지

© 2010 Motorola Mobility, Inc.

Motorola XOOM 용 앱 설계

USB API

• USB 호스트 모드를 위한 내장 플랫폼 지원으로 애플리케이션이 연결된 주변 장치를 관리할 수 있도록 해주는 API 를 노출시킵니다– 호스트 모드는 Android 작동 장치에서 적절한 USB 컨트롤러 하드웨어에

의존합니다

– XOOM 과 같이 호스트 모드를 지원하는 장치에서는 애플리케이션이 API 를 이용해 연결된 장치를 식별하고 장치와 통신할 수 있습니다 .

• 또한 두 가지의 기본 연결 하드웨어를 지원합니다 (Android 장치가 호스트로 작동하는지 여부에 따라 다름 )

– USB 장치 : 호스트 역할을 하기 위해 Android 작동 장치에 의존하는 연결된 하드웨어 ( 카메라 , 키보드 , 마우스 )

– USB 액세서리 : USB 호스트 컨트롤러가 있는 연결된 하드웨어 ( 로보틱스 )

• USB API 를 이용할 수 있는 패키지 : android.hardware.usb

Page 52: Designing Apps for Motorla Xoom Tablet

코딩 사례 52페이지

© 2010 Motorola Mobility, Inc.

Motorola XOOM 용 앱 설계

MTP/PTP 지원

• 새로운 패키지 android.mtp

– 클래스 MtpDevice, MtpDeviceInfo, MtpConstants

• 연결된 카메라 및 USB 호스트 버스 상에 연결되어 있는 다른 PTP(사진 전송 프로토콜 ) 장치와 애플리케이션이 API 를 통해 직접 상호 작용할 수 있습니다

– 부착된 UsbDevice 를 언급하여 MtpDevice 개체를 예를 들어 설명합니다

– 연결을 개방하고 데이터를 전송합니다

– 장치와 장치에 저장된 개체에 대한 정보를 얻습니다

– 장치를 부착하고 분리할 때 알림을 수신합니다• 이제 Gallery 앱이 PTP 를 지원하므로 사용자는 USB 를 통해 카메라를

연결하고 한 번만의 간단한 작동으로 사진을 Gallery 로 가져올 수 있습니다

Page 53: Designing Apps for Motorla Xoom Tablet

코딩 사례 53페이지

© 2010 Motorola Mobility, Inc.

Motorola XOOM 용 앱 설계

시연

Page 54: Designing Apps for Motorla Xoom Tablet

코딩 사례 54페이지

© 2010 Motorola Mobility, Inc.

Motorola XOOM 용 앱 설계

자세한 내용 : developer.motorola.com

• 도구– MOTODEV Studio: 추가적 기능 (문자열 로컬화 , 데이터베이스 관리자 )

이 있는 이클립스 기반의 IDE

– App Validator: Android 앱의 장치 간 호환성을 사전에 검사하기 위한 온라인 도구

• 기술 자료– Motorola XOOM Programming Tips(Motorola XOOM 프로그래밍 팁)

– Understanding Texture Compression( 텍스처 압축에 대한 이해 )

• 제품 사양– http://developer.motorola.com/products/xoom/

• 토론 게시판

Page 55: Designing Apps for Motorla Xoom Tablet

질문

© 2010 Motorola Mobility, Inc.

56

Page 56: Designing Apps for Motorla Xoom Tablet

감사합니다 !

© 2010 Motorola Mobility, Inc.

57

Page 57: Designing Apps for Motorla Xoom Tablet

코딩 사례 57페이지

© 2010 Motorola Mobility, Inc.

Motorola XOOM 용 앱 설계

법적 고지 라이센스 주의 사항

따로 기재된 사항이 없다면 Motorola Mobility Inc. 가 기술하고 제공하는 견본 소스 코드는 아래 설명과 같이 사용이 허가됩니다 .

Copyright © 2010-2011, Motorola, Inc. All rights reserved(달리 명시적으로 표시한 것은 예외 ).• 수정 유무를 막론하고 소스 및 2 진수 형태로의 재배포 및 사용은 다음 조건이 충족될 경우에만 허용됩니다 .• 소스 코드의 재배포는 위의 저작권 주의 사항 , 이 조건 목록 및 다음의 부인 고지 사항을 유지해야 합니다 .• 2 진수 형태로의 재배포는 위의 저작권 주의 사항 , 이 조건 목록 및 다음의 부인 고지 사항을 배포물과 함께 제공되는 문서 및 / 또는 기타 자료에 복제해야 합니

다 .

구체적인 사전 서면 허가가 없이는 이 소프트웨어에서 파생된 제품을 보증하고 홍보하는 데 Motorola, Inc. 이름 및 해당 기여자의 이름을 사용할 수 없습니다 .

이 소프트웨어는 저작권 소유자와 기여자에 의해 " 있는 그대로 " 제공되며 모든 명시적 또는 묵시적 보증 ( 상품성 및 특정 목적에 대한 적합성에 대한 묵시적 보증을 포함하며 여기에 제한되지 않음 ) 을 배제합니다 . 저작권 소유자 또는 기여자는 이 소프트웨어의 사용으로 인해 발생하는 모든 직접적 , 간접적 , 부수적 , 예외적 , 전형적 또는 결과적 손해 ( 대체품이나 대체 서비스의 조달 , 사용 , 데이터 또는 이익 손실 , 또는 영업 중단을 포함하되 이에 제한되지 않음 ) 에 대하여 계약에 의한 것이든 , 엄밀한 책임 또는 불법 행위 ( 또는 과실과 기타 행위를 포함하여 ) 에 의한 것이든 이와 여타 책임 소재에 상관없이 어떠한 경우에도 책임을 지지 않으며 , 이는 그와 같은 손해의 가능성을 사전에 알고 있던 경우에도 마찬가지입니다

이 프레젠테이션에서 표시되는 기타 소스 코드는 다른 라이센스 하에 제공될 수도 있습니다 .

Apache 2.0Copyright © 2010, Android Open Source Project. All rights reserved(달리 명시적으로 표시한 것은 예외 ).

Apache 라이센스 하에서 사용이 허가됨 , 버전 2.0(" 라이센스 "); 이 라이센스를 준수하지 않고는 이 파일을 사용할 수 없습니다 . http://www.apache.org/licenses/LICENSE-2.0 에서 라이센스 사본을 얻을 수 있습니다 .

해당 법률에 의해 필요하거나 서면 동의가 있지 않는 한 이 라이센스 하에서 배포되는 소프트웨어는 명시적이든 묵시적이든 막론하고 어떠한 보증이나 조건 없이 "있는 그대로 " 배포됩니다 . 이 라이센스 하의 특정 언어 관리 허가 및 제한 사항은 라이센스를 참조하십시오 .

Creative Commons 3.0 귀속 라이센스

이 프레젠테이션의 일부는 Google 이 생성하고 공유하는 작업에서 복제된 것이며 (http://code.google.com/policies.html) Creative Commons 3.0 귀속 라이센스(http://creativecommons.org/licenses/by/3.0/) 에 설명된 약관에 따라 사용되었습니다 .