안드로이드 응용 프로그램의 크기를 제한 할 수 있습니까? (매니페스트에서 말하기)
실제로는 아닙니다. 앱의 힙 한도는 앱이 아니라 기기에 의해 결정됩니다. 앱에서 수행 할 수있는 유일한 작업은 보다 큰 힙을 요청하는 android:largeHeap
입니다. 보통보다 작은 힙을 요청할 방법이 없습니다.
또한 NDK를 통한 할당은 힙 제한에 포함되지 않습니다. 그것을 위해, 당신은 완전히 당신 자신의 것입니다.
클라이언트는하지 초과 할 응용 프로그램을 원하는 20메가바이트
클라이언트가 적어도 달빅 내에서 할당을 위해,이 제한을 적용 할 수 있습니다 자신의 장치 또는 ROM의 모드를 구축하는 환영 말한다/ART 가상 시스템.
또는 클라이언트가 안드로이드를 사용해서는 안되며, 임베디드 리눅스와 같이 메모리 사용 방법을 훨씬 더 잘 제어 할 수 있어야합니다.
하지만 사용 가능한 메모리는 50MB입니다.
장치의 사용 가능한 시스템 RAM 양은 응용 프로그램의 힙 제한에 직접 연결되지 않습니다.
webview가 필요하지 않은 경우 (이미 null로 설정) 및 전체 메모리 크기가 30MB를 초과하는 경우. GC는 강제 호출됩니까?
직접 구현할 수 있습니다. 일반적으로 작동하지 않지만 구현할 수는 있습니다.
일단 가상 컴퓨터가 OS에서 메모리를 할당하면 해당 메모리가 더 이상 사용되지 않을 때만 해당 메모리가 OS로 반환됩니다. Android 4.4 이상에서 사용되는 Dalvik은 힙을 압축하지 않으므로 일부 메모리가 가비지 수집 될 수는 있지만 전체 힙 크기가 줄어들지는 않습니다.
또한 WebView
에 의해 소비되는 시스템 RAM 중 일부는 기본 WebKit/Blink 라이브러리와 관련됩니다. 내가 이해하는 바와 같이, 처음에 WebView
을 사용할 때 동적으로로드됩니다. 따라서 첫 번째 WebView
에로드하는 데 시간이 걸릴 수 있습니다. 그러나 이러한 코드 세그먼트는 프로세스가 종료 될 때까지 릴리스되지 않을 것입니다.
이와 같은 자세한 답변을 보내 주셔서 감사합니다. – vipulfb