Korea Blog
안드로이드 6.0 마시멜로 무엇을 테스트 할까요?
Sunday, August 30, 2015
안드로이드 6.0 마시멜로 버전의 공식 SDK 가 공개된지 벌써 열흘 정도 시간이 지났습니다. 여러분의 앱이 안드로이드 6.0 마시멜로 버전에서 잘 동작하고 있는지 테스트 해 보셨나요? 안드로이드 6.0 마시멜로는 사용자가 안드로이드 디바이스를 더욱 편하게 사용하고, 개발자 여러분들이 보다 향상된 사용자 경험을 제공할 수 있도록
다양한 기능
이 추가되었습니다.
새롭게 추가된 기능 중 ‘런타임 권한 모델', ‘ Doze', ‘App Standby' 등은 안드로이드 6.0을 위해 새롭게 빌드된 앱 뿐만이 아니라
기존 앱의 동작에 영향
을 미칠 수 있습니다. 아직까지 안드로이드 6.0 에서 여러분의 앱을 테스트해보지 않으셨다면, 기존 앱의 동작 방식에 변화를 가져올 수 있는 변경 사항에 관해서 우선적으로 테스트 해보시면 어떨까요?
런타임 권한 모델
안드로이드 6.0 을 타겟으로 빌드된 앱은 디바이스에 설치 될 때, 사용자가 앱이 요청한 권한을 확인하고 수락하는 과정이 사라지며, 앱 실행 중 권한이 필요한 경우, 아래와 같이 해당 권한을 요청해야 합니다.
그리고, 이미 설치되어 있는 앱들에 대해서도 사용자가
‘설정 > 애플리케이션 > OOO 앱 선택 > 권한’
메뉴를 통해, 각각의 앱이 사용 중인 권한을 확인하고 원한는대로 권한를 부여하거나 제거할 수 있게 됩니다. 특히 이러한 방식으로 안드로이드 6.0 버전을 타겟으로 빌드 되었는지 아닌지에 관계 없이 사용자가 직접 앱의 권한 항목을 제한할 수 있습니다.
따라서, 만약 사용자가 여러분의 앱에 주어진 권한을 임의로 제거하는 경우에, 앱이 어떻게 동작하는지 테스트 해 보시기 바랍니다.
Doze
디바이스의 배터리 사용량은 정말 중요한 문제입니다. 디바이스가 사용되지 않는 동안, 소모되는 배터리를 줄이기 위해 안드로이드 6.0 에서는 새롭게 Doze 모드가 추가 되었습니다. 다음과 같은 조건을 모두 만족하는 경우 디바스가 Doze 모드로 진입 되며,
충전 중이 아님.
스크린이 꺼져 있음.
디바이스가 일정 시간 움직임이 없음.
Doze 모드에 진입하면 디바이스의 배터리 소모를 줄이기 위해 몇몇 핵심적인 앱을 제외한 모든 앱은 다음과 같은 기능을 사용하는데 제한을 받게 됩니다.
네트워크 액세스가 비활성화됩니다. 다만 앱이 우선 순위가 높은
Google Cloud Message (GCM)
Tickle을 받을 때는 예외입니다.
절전 모드 해제 잠금
이 무시됩니다.
AlarmManager
클래스로 일정이 예약된 알람이 비활성화됩니다. 다만
setAlarmClock()
메서드 및
setAndAllowWhileIdle()
로 설정한 알람은 예외입니다.
WiFi 스캔을 수행할 수 없습니다.
SyncAdapter
와
JobScheduler
의 작업이 지연됩니다.
디바이스가 Doze 모드에 진입한 경우에는 여러분의 앱 역시 네트워크 엑세스가 제한 되고, AlarmManager 로 등록된 작업이 예정된 시간에 수행되지 않을 수도 있습니다. 개발자 여러분은 디바이스가 Doze 모드에 있을 때 그리고 Doze 모드에서 빠져 나올 때, 여러분의 앱이 의도한대로 동작하는지 테스트해야 합니다. 특히나, ‘알람 시계' 앱과 같이, 디바이스가 대기 상태에도 중요한 동작을 수행해야 하는 경우에는 더욱 주의가 필요 합니다. 새롭게 추가된 adb 명령어를 통해 Doze 모드를 테스트 할 수 있습니다.
1. 다음 명령어를 통해 배터리가 충전되지 않도록 변경 합니다.
$ adb shell dumpsys battery unplug
2. 디바이스 스크린을 끕니다.
3. 다음 명령어를 반복 실행 하여, 디바이스 상태가 idle이 되도록 합니다.
$ adb shell dumpsys deviceidle step
4. 화면을 켜거나, 디바이스를 크게 움직이면 Doze 모드에서 빠져나옵니다.
5. 다음 명령어를 통해 배터리 충전 상태를 원래되로 되돌릴 수 있습니다.
$ adb shell dumpsys battery reset
6. 다음 명령을 통해, 현재 디바이스의 상태를 확인 할 수 있습니다.
$ adb shell dumpsys deviceidle
App Standby
안드로이드 플랫폼이 판단할 때 사용자가 더 이상 사용하지 않는 앱은 유휴 상태 앱으로 지정 될 수 있습니다. 일정 기간 아래 이벤트 중 어느 한 가지도 발생하지 않는 앱은 유휴 상태 앱으로 지정될 수 있습니다.
사용자가 명시적으로 앱을 시작합니다.
엑티비티 혹은 서비스의 형태로 해당 앱이 포그라운드 프로세스에서 실행 됩니다. 혹은 다른 포그라운드 프로세스에서 동작 중인 앱이 해당 앱의 서비스나 다른 앱 구성 요소를 사용하고 있습니다.
앱이 알림을 생성하였고, 사용자가 해당 알림을 잠금 화면에서 보거나 알림 트레이에서 확인합니다.
설정 메뉴에서 사용자가 명시적으로 앱이 전원 최적화 옵션에서 제외 되도록 요청했습니다.
디바이스가 충전 중이 아닌 경우, 유휴 상태인 것으로 간주된 앱은 네트워크 액세스를 할 수 없고, 동기화 작업이 일시 중단됩니다. 디바이스가 충전 중일 때는 네트워크 액세스가 허용되며 보류 중이었던 작업이 실행됩니다. 디바이스가 오랜 시간 동안 유휴 상태인 경우, 유휴 앱은 하루에 한 번 정도 네트워크 액세스가 허용됩니다.
만일 여러분의 앱이 사용자 상호작용 없이 백그라운드 상에서만 동작하는 경우, 유휴 상태 앱으로 지정될 수 있습니다. 이런 경우에도 앱의 주요 동작에 문제가 없는지 테스트 할 필요가 있습니다. 개발자 여러분은 새롭게 추가된 다음 adb 명령어를 통해 특정 앱을 StandBy 모드로 변경할 수 있습니다.
$ adb shell am broadcast -a android.os.action.DISCHARGING
$ adb shell am set-inactive <packageName> true
또한, 다음 명령어를 통해 현재 앱의 StandBy 모드 여부를 확인 할 수 있습니다.
$ adb shell am get-inactive <packageName>
마지막으로, 다음 adb 명령어를 통해 특정 앱을 다시 정상 모드로 변경할 수 있습니다.
$ adb shell am set-inactive <packageName> false
안드로이드 M 오픈 테스트 랩
기존 앱에 영향을 미칠 수 있는 안드로이드 6.0 의 주요 동작 변경 내용에 관해 간단히 설명드렸습니다. 그런데 혹시 테스트 할 마땅한 디바이스가 없어서 고민하고 계신가요?
안드로이드 M 오픈 테스트 랩
은 개발 중이거나 서비스 중인 앱과 게임이 새로운 안드로이드 M 버전에서 잘 동작하는지 직접 테스트 해보고, M 의 새로운 기능들에 관해 궁금한 점이나 적용 방법에 관해 이야기 나눌 수 있는 행사 입니다. 오픈 테스트 랩 행사는 올해 가을 마시멜로 기반의 디바이스가 정식으로 출시되기 전까지 매주 1번 꼴로 구글 캠퍼스에서 진행될 예정이며, 바로 그 세 번째 행사가 9월 9일 진행될 예정입니다. 관심 있는 개발자 분들은 아래 링크로 참가 신청하세요.
세 번째 안드로이드 M 오픈 테스트 랩 참가 신청 하기
No comments :
Post a Comment
ラベル
ad
AdMob
admob_sdk
Advanced Power Searching
Android
Android App Quality
android back button
Android back end
Android navigation
Android Player API
android server
android up button
androidL
androidtv
androidwear
App Translate Service
Audio Focus
Chrome
Chromecast
Code-in 2012
Core App Quality Guidelines
Daydream
design
designing for Tablets
designsprint
dialog
Drive SDK
Game Developers Conference
GCi
GCi 참가자
GDA
GDC
gdg
gdgkorea
Go
Google Cast
Google Code-in
Google Play
Google Play 스토어
Google Search
Google Summer of Code
Google+ Sign-In
Google+ Sign-In Bootcamps
Google+ 로그인
Google+ 로그인 부트캠프
googleanalytics
googleio
GooglePlay #AndroidDevStory #PlayStore #MaterialDesign #AndroidStudio #DeveloperConsole
GSOC
hackathon
HackFair 출품작
In-app Billing
io
io2014
ioapp
iobytes
ioextended
IRC Talk
IRC 서버
java7
kitkat
launch
Marshmallow
materialdesign
mobile ad
mobile_ads_sdk
multiscreen
NaCl
Native YouTube Player API
NRRN 사용 제한
Power Searching
product launch
SD 카드에 앱 설치
SecureKeyFactory
ux
webview
YouTube
YouTube Android Player API
YouTube API
YouTube API 3.0
YouTube API Update RSS Feed
광고
구글 HackFair
구글 Summer of Code
구글 개발자 사이트 홍보
구글 개발자 아카데미
구글 개발자 온라인 강좌
구글 검색
구글 고급 파워 서치
구글 드라이브 앱
구글 부트캠프
구글 아카데미
구글 코드인
구글 플러스 로그인
구글 핵페어
구글로 로그인하기
네이티브 클라이언트
데이드림
멀티 모바일
멀티 플랫폼
모바일 광고
수익화
스마트 브라우저
안드로이드
안드로이드 4.2
안드로이드 Back 버튼
안드로이드 Up 버튼
안드로이드 개인 정보 보호 정책
안드로이드 네비게이션
안드로이드 데이드림
안드로이드 디자인
안드로이드 방향탐색
안드로이드 보안
안드로이드 사용자 데이터
안드로이드 서버 백엔드
안드로이드 앱 품질
안드로이드 원격 제어
안드로이드 태블릿 디자인
안드로이드 현지화
안드로이드 화면 보호기
애드몹
애플리케이션 SD카드 설치
애플리케이션 개발 주민등록번호 사용 제한
애플리케이션 외부 저장 장치
앱 품질 체크리스트
오픈 소스
오픈소스 프로그램
웹 DMB
유튜브
유튜브 API
유튜브 API 3.0
유튜브 API 업데이트
유튜브 모바일
유튜브 안드로이드 플레이어 API
인앱 결제
인터넷상 주민등록번호 수집 이용 제한
주민등록번호 사용제한
추천이미지
출시
크롬브라우저
태블릿 디자인
태블릿용 앱
파워서치
한국 구글 개발자
한국 구글 개발자 사이트
핵심 앱 품질 가이드라인
핵심 태블릿 앱 품질 체크리스트
핵페어
핵페어 출품작
ブログ アーカイブ
2016
February
January
2015
December
November
October
September
August
안드로이드 6.0 마시멜로 무엇을 테스트 할까요?
Udacity의 안드로이드 교육 프로그램 소개
뮤직 테크놀러지와 웹의 만남: “Musicking on the Web” 워크샵
안드로이드 개발자 도구 업데이트
안드로이드 M 오픈 테스트 랩에 초대합니다.
안드로이드 개발자 이야기 - Zabob Studio, Buff Knight
안드로이드 마시멜로: 안드로이드 6.0 SDK 와 마지막 개발자 프리뷰
July
June
May
April
March
February
January
2014
December
November
October
September
August
July
June
May
April
March
February
January
2013
December
November
October
September
August
July
June
May
April
March
February
January
2012
December
November
October
September
August
July
June
May
March
February
January
2011
December
November
Feed
No comments :
Post a Comment