다음을 통해 공유


Power Apps 모바일 앱에서 캔버스 앱의 재시작 방지

Power Apps 모바일 앱에서 캔버스 앱을 실행하면 다음과 같은 이유로 다시 시작할 수 있습니다.

  • 앱이 총 메모리를 너무 많이 사용하고 있습니다.
  • 앱이 한 번에 너무 많은 메모리 또는 처리를 사용하고 있습니다.
  • 특정 앱이 네이티브 컨트롤(예: 그림 추가 또는 바코드 스캐너)을 사용하거나 Power Apps 모바일 앱이 사용자에 의해 백그라운드에 배치될 때 앱이 백그라운드로 이동됩니다.

Power Apps 모바일 앱이 백그라운드에서 실행될 때 특히 엄격한 이 메모리 및 처리 제한은 운영 체제(Android 또는 iOS)에 의해 부과됩니다. 앱이 디바이스에서 사용 가능한 것보다 더 많은 리소스를 사용하면 앱이 재설정됩니다. 이것은 복잡한 대규모 웹 페이지를 방문할 때 웹 브라우저가 너무 많은 전력을 소비하는 경우 페이지를 일시 중단하는 것과 유사합니다.

Android 디바이스에서 이 앱 재시작은 앱이 완전히 종료되고 사용자가 기기의 홈 화면으로 이동하기 때문에 충돌처럼 보일 수 있습니다.

이 문서를 사용하여 Power Apps 모바일에서 캔버스 앱이 재시작되는 것을 방지하는 방법을 알아보세요.

최종 사용자를 위한 예방 팁

가장 큰 개선 사항은 일반적으로 앱 제작자가 하지만 다음은 최종 사용자가 앱 다시 시작 횟수를 줄이기 위해 사용할 수 있는 몇 가지 팁입니다.

  • Power Apps 모바일 앱의 사용자 프로필 페이지에서 캐시 지우기를 선택하여 저장된 데이터를 제거합니다. 캐시를 지우면 SaveData 또는 앱 캐시가 제거되므로 최종 사용자에게 데이터가 있는 경우에만 이 작업을 수행해야 합니다.
  • Android 디바이스에서 Power Apps 모바일 앱이 우선 순위인지 확인하세요. 배터리 최적화 및 앱 절전 구성과 같은 설정을 통해 앱을 계속 실행하려면 디바이스 설명서를 참조하세요.
  • Power Apps 모바일 앱 이외의 실행 중인 앱을 모두 닫고 사용하지 않는 앱이나 이미지와 같은 불필요한 데이터를 디바이스에서 제거하십시오.
  • 번거롭기는 하지만 앱을 더 느리게 사용하는 것이 좋습니다. 화면 탐색 사이나 사진을 찍거나 데이터를 저장하거나 로드한 후에는 잠시 멈춥니다.

앱 제작자를 위한 예방 팁

앱 재시작을 줄이기 위한 가장 큰 메모리 개선은 앱 제작자가 할 수 있습니다. 앱을 만들 때 최종 사용자가 사용할 가장 낮은 사양의 디바이스에서 실행되도록 앱을 최적화하고 리소스 사용에 대한 모범 사례를 따르십시오.

참고

앱 재시작은 운영 체제가 메모리 양을 제한하고 앱이 수행할 수 있는 처리로 인해 발생하므로 앱 재시작을 최소화하기 위해 아래 제안된 완화 조치를 조합해야 할 수 있습니다. 전체 및 한 번에 줄일 수 있는 메모리와 처리량이 많을수록 앱을 다시 시작할 가능성이 줄어듭니다.

모바일 앱 세션을 모니터에 연결하여 앱에서 처리 부하가 높거나 메모리 집약적인 작업을 수행하는 위치를 확인할 수 있습니다. Monitor는 앱이 실행될 때 앱에서 발생하는 모든 주요 활동을 기록하여 앱이 무엇을 하고 어떻게 수행하는지에 대한 심층적인 보기를 제작자에게 제공하는 도구입니다.

문제점 근본 원인 완화
특정 화면을 불러올 때 앱이 다시 시작됩니다. 특정 화면에서 한 번에 너무 많은 수식을 실행하는 경우 앱이 처리량이 너무 많아 운영 체제에서 다시 시작할 수 있습니다. 화면의 컨트롤 수와 화면이 로드될 때 실행되는 수식의 수를 제한하여 화면 분할이 필요할 수 있습니다.

화면 간 컨트롤 종속성을 방지합니다.

처리량이 많은 순간에 사용자가 작업을 하지 못하도록 합니다. 예를 들어 여러 필터와 조회가 있는 대형 갤러리가 로드되는 경우입니다.

이름이 지정된 수식 사용을 고려하십시오.

지연된 로드 앱 설정 사용을 고려하십시오.
여러 화면 탐색 후 앱이 다시 시작됩니다. 화면에서 메모리 누수가 발생하여 사용자가 앱을 탐색할 때 메모리 사용량이 쌓입니다. 최근 방문한 화면을 메모리에 보관 앱 설정을 켭니다. 이렇게 하면 화면이 메모리에 보존되므로 단기적으로 총 메모리 사용량이 증가하지만 여러 화면 탐색에서 메모리 누수를 방지할 수 있습니다.
SaveData/LoadData를 수행하거나 데이터 연결을 사용할 때 앱이 다시 시작됩니다. SaveData 및 데이터 연결은 모두 앱에서 사용하는 총 메모리를 늘립니다. SaveData도 처리량이 많은 작업입니다. 많은 양의 데이터를 앱으로 가져오고 오프라인 사용을 위해 해당 데이터(특히 미디어 콘텐츠 및 파일)를 저장하면 앱이 할당된 메모리를 초과하여 운영 체제가 앱을 다시 시작할 수 있습니다. 데이터 연결을 통해 앱으로 가져오고 SaveData를 통해 저장되는 데이터의 양을 최적화합니다.

가능한 경우 SaveData 호출 수를 줄이십시오.

명시적 열 선택 앱 설정을 켜고 레코드 범위 일대다 및 다대다 관계 앱 설정을 끄면 앱으로 가져오는 데이터를 줄이는 데 도움이 될 수 있습니다.
카메라 컨트롤을 사용할 때 앱이 다시 시작됩니다. 카메라 컨트롤은 캡처된 이미지를 메모리에 저장합니다. 특히 OnStream 속성을 사용하여 캡처된 이미지를 변수 또는 SaveData에 저장하는 경우 앱의 메모리 사용량이 증가할 수 있습니다. 가장 최근에 캡처한 이미지 이외의 이미지는 저장하지 마십시오.

스트림 대신 사진을 사용하여 사용자가 카메라를 탭할 때만 이미지를 캡처합니다.

스트림을 사용해야 하는 경우 StreamRate 속성을 최대한 높게 설정하여 업데이트 횟수를 줄이십시오.
그림 추가 컨트롤을 사용할 때 앱이 다시 시작됩니다. 그림 추가 컨트롤은 선택한 미디어 콘텐츠를 메모리에 저장합니다. 미디어 콘텐츠의 크기로 인해 상당한 메모리 부족이 발생할 수 있습니다. 미디어 콘텐츠가 캡처되는 위치를 변경하는 것이 좋습니다.

사용자가 갤러리/사진 보관함에서만 미디어를 선택할 수 있도록 UseMobileCamera 속성을 끄는 것이 좋습니다.

카메라를 사용하여 파일을 캡처하는 대신 attachment 컨트롤(양식의 일부로)을 사용하여 파일만 선택하는 것이 좋습니다.

카메라 컨트롤로 전환하는 것을 고려하십시오.
그림 추가, 바코드 스캐너/Reader, MR에서 보기, 측정 카메라 등과 같은 네이티브 컨트롤을 사용할 때 앱이 다시 시작됩니다. 네이티브 컨트롤은 앱을 다시 시작하기 전에 운영 체제가 메모리에 대해 더 엄격한 제한이 있는 백그라운드에 앱을 배치할 수 있습니다. 이러한 컨트롤을 사용하기 전에 모든 메모리 및 처리 집약적인 작업이 완료되었는지 확인하십시오. 예를 들어 SaveData 작업이 완료될 때까지 그림 추가 컨트롤을 비활성화합니다.

그림 추가 대신 카메라와 같은 다른 컨트롤로 전환하는 것을 고려하십시오.
일부 디바이스에서 앱이 다시 시작됩니다. 디바이스마다 사용 가능한 메모리 및 처리량이 다릅니다. 예를 들어 구형 디바이스는 사용 가능한 처리량이 낮기 때문에 앱이 다시 시작되기 쉽습니다.

다른 앱을 실행하면 사용 가능한 처리량도 줄어들 수 있습니다. 마찬가지로 설치된 다른 앱과 디바이스에 저장된 많은 사진/미디어가 메모리를 차지하여 앱에서 사용할 수 있는 항목이 줄어들 수 있습니다.
위의 최종 사용자를 위한 예방 팁 섹션에 나열된 도움말을 사용자에게 안내하십시오.

앱의 성능 요구 사항을 충족하는 디바이스에 투자하는 것을 고려하세요.
앱 재시작이 계속 발생합니다. 메모리 사용량은 캔버스 앱이 작성되는 방식에 영향을 받습니다. 앱이 성능을 보장하고 메모리 사용량을 줄이고 처리하는 데 도움이 되는 모범 사례를 따르는지 확인하세요. 다음 모범 사례에 따라 앱을 최적화하십시오.

고성능 앱 구축을 위한 모범 사례