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 작업이 완료될 때까지 그림 추가 컨트롤을 비활성화합니다. 그림 추가 대신 카메라와 같은 다른 컨트롤로 전환하는 것을 고려하십시오. |
일부 디바이스에서 앱이 다시 시작됩니다. | 디바이스마다 사용 가능한 메모리 및 처리량이 다릅니다. 예를 들어 구형 디바이스는 사용 가능한 처리량이 낮기 때문에 앱이 다시 시작되기 쉽습니다. 다른 앱을 실행하면 사용 가능한 처리량도 줄어들 수 있습니다. 마찬가지로 설치된 다른 앱과 디바이스에 저장된 많은 사진/미디어가 메모리를 차지하여 앱에서 사용할 수 있는 항목이 줄어들 수 있습니다. |
위의 최종 사용자를 위한 예방 팁 섹션에 나열된 도움말을 사용자에게 안내하십시오. 앱의 성능 요구 사항을 충족하는 디바이스에 투자하는 것을 고려하세요. |
앱 재시작이 계속 발생합니다. | 메모리 사용량은 캔버스 앱이 작성되는 방식에 영향을 받습니다. 앱이 성능을 보장하고 메모리 사용량을 줄이고 처리하는 데 도움이 되는 모범 사례를 따르는지 확인하세요. | 다음 모범 사례에 따라 앱을 최적화하십시오. |