앱 바로가기

Android 7.1.1 버전에서는 개발자가 런처에 표시 가능한 앱에 작업과 관련된 바로가기를 정의할 수 있습니다. 앱 바로가기를 사용하면 앱 내에서 자주 실행되거나 권장되는 작업을 빠르게 시작할 수 있습니다.

각 바로가기는 사용자가 바로가기를 선택하면 앱에서 특정 작업을 실행하는 인텐트를 참조합니다. 앱 바로가기로 표현 가능한 작업의 예는 다음과 같습니다.

  • 매핑 앱에서 사용자를 특정 위치로 이동
  • 소통 앱에서 친구에게 메시지를 전송
  • 미디어 앱에서 TV 프로그램의 다음 에피소드를 재생
  • 게임 앱에서 마지막 저장 지점을 로드

예시 및 소스

이 기능의 기본 구현은 다음 파일에서 찾을 수 있습니다.

frameworks/base/services/core/java/com/android/server/policy/ShortcutManager.java
frameworks/base/services/core/java/com/android/server/pm/ShortcutPackage.java
frameworks/base/services/core/java/com/android/server/pm/ShortcutUser.java
frameworks/base/services/core/java/com/android/server/pm/ShortcutPackageInfo.java
frameworks/base/services/core/java/com/android/server/pm/ShortcutLauncher.java
frameworks/base/services/core/java/com/android/server/pm/ShortcutParser.java
frameworks/base/services/core/java/com/android/server/pm/ShortcutService.java
frameworks/base/services/core/java/com/android/server/pm/LauncherAppsService.java
frameworks/base/services/core/java/com/android/server/pm/ShortcutPackageItem.java
frameworks/base/core/java/com/android/server/backup/ShortcutBackupHelper.java
frameworks/base/core/java/android/content/pm/ShortcutManager.java
frameworks/base/core/java/android/content/pm/ShortcutServiceInternal.java
frameworks/base/core/java/android/content/pm/ShortcutInfo.java
frameworks/base/core/java/android/content/pm/LauncherApps.java

다음 파일은 지원 기능(ShortcutManager.java의 숨겨진 API라고 함)을 제공합니다.

packages/apps/Settings/src/com/android/settings/DevelopmentSettings.java
frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/policy/RemoteInputView.java

또한 예를 들면 Android 오픈소스 프로젝트 런처 버전 3은 바로가기를 지원합니다.

packages/apps/Launcher3/

마지막으로 공개 Javadoc에서 다음 파일을 확인합니다.

frameworks/base/core/java/android/content/pm/ShortcutManager.java
frameworks/base/core/java/android/content/pm/ShortcutInfo.java
frameworks/base/core/java/android/content/pm/LauncherApps.java

구현

AOSP Launcher3은 이미 바로가기를 지원합니다. 파트너가 자체 런처를 보유한 경우에는 이 런처도 바로가기를 지원해야 합니다.

  • 사용자가 앱 아이콘에서 특정 동작(예: 길게 누르기)을 실행하면 런처는 각 런처 활동 아이콘과 연결된 동적 및 매니페스트 바로가기를 표시해야 합니다.
    바로가기 정렬 순서는 '바로가기 표시 순서' 섹션의 ShortcutManager Javadoc에 정의되어 있습니다. 예를 들면 매니페스트 바로가기를 먼저 표시한 다음 동적 바로가기를 표시합니다. 바로가기는 각 그룹 내에서 오름차순으로 정렬됩니다.
  • 사용자는 각 동적/매니페스트 바로가기를 드래그하여 홈 화면에 '고정'할 수 있어야 합니다.
  • 고정된 바로가기는 백업 및 복원되어야 합니다. 자세한 내용은 ShortcutManager Javadoc을 참고하세요.
  • 알림에서 '인라인 응답'을 실행하면 ShortcutManager.onApplicationActive가 내부적으로 호출되어야 합니다.

또한 일부 Google 모바일 서비스(GMS) 앱에는 바로가기가 있습니다. OEM 런처는 이러한 앱의 바로가기를 표시해야 하며, '고정' 기능(또는 바로가기 아이콘 생성)도 지원하면 좋습니다.

위의 작업과 관련된 프레임워크와 상호작용하는 자세한 방법은 Launcher3 소스를 참고하세요.

유효성 검사

자체 기능 버전(ShortcutManager 및 LauncherApps)이 정상 작동하는지 확인하려면 아래의 Android 호환성 테스트 모음(CTS) 테스트를 사용하세요.

cts/tests/tests/shortcutmanager/
cts/hostsidetests/shortcuts/

또한 아래에서 AOSP 구현과 관련된 단위 테스트를 찾아볼 수 있습니다.

frameworks/base/services/tests/servicestests/

여기에는 다음이 포함됩니다.

src/com/android/server/pm/ShortcutManagerTest*.java

바로가기 관리자용 CTS 인증기 테스트를 사용할 수도 있습니다.

cts/apps/CtsVerifier/src/com/android/cts/verifier/notifications/ShortcutThrottlingResetActivity.java