Android 에뮬레이터의 실행 속도 향상
안드로이드 에뮬레이터는 조금 느립니다.Motorola Droid 및 Nexus One과 같은 일부 장치의 경우 앱이 에뮬레이터보다 실제 장치에서 더 빠르게 실행됩니다.이것은 게임과 시각 효과를 테스트할 때 문제가 됩니다.
에뮬레이터를 최대한 빠르게 실행하려면 어떻게 해야 합니까?매개 변수를 가지고 놀았지만 아직 눈에 띄게 개선된 구성을 찾지 못했습니다.
최대 50% 더 빠른 속도
Windows:
- "Intel x86 Emulator Accelerator(HAXM)" 설치 => SDK-Manager/Extra
- "Intel x86 Atom System Images" 설치 => SDK-Manager/Android 2.3.3
Android SDK 루트 폴더로 이동하여 extra\intel\로 이동합니다.하드웨어_액셀러레이션_실행_관리자.IntelHaxm 파일을 실행합니다.설치할 exe.(Android Studio에서는 설정 -> Android SDK -> SDK 도구 -> Intel x86 Emulator Accelerator(HAXM 설치 관리자)로 이동할 수 있습니다.)
"Intel atom x86" CPU/ABI로 AVD 생성
- 에뮬레이터를 실행하고 HAXM이 실행 중인 콘솔을 체크인합니다(명령 프롬프트 창을 열고 다음 명령을 실행합니다: sc query intelhaxm).
또한 이것을 설치하는 것도 잊지 마십시오.
AVD 생성 중 추신: 에뮬레이션 메모리 추가: 하드웨어/새로 만들기/장치 램 크기/설정 값 512 이상
Linux:
- KVM 설치: Google을 열고 "kvm 설치"라고 씁니다.
- "Intel atom x86" CPU/ABI로 AVD 생성
- 명령줄에서 실행: 에뮬레이터 -avd avd_name -qemu -m 512 -enable-kvm
- 또는 이클립스에서 실행: 실행/실행 구성/탭 "대상" - > Intel x86 AVD를 확인하고 "추가 에뮬레이터 명령줄 옵션" 창에서 다음을 추가합니다. -qemu -m 512 -enable-kvm (실행 클릭)
OS-X:
- Android SDK Manager에서 Intel x86 Atom 시스템 이미지를 설치합니다.
- Android SDK Manager에서 Intel x86 Emulator Accelerator(HAXM)를 설치합니다.
- 파인더에서 Intel Emulator Accelerator의 설치 위치로 이동하여 Intel을 설치합니다.HAXM(dmg를 열고 설치를 실행합니다.SDK Manager의 Emulator Accelerator 항목 위에 마우스를 올려 놓으면 위치를 찾을 수 있습니다.
- Atom 합니다. AVD는 Intel Atom x86 CPU입니다.
추신: 이 도구를 확인하세요, 매우 편리한 평가판입니다.
업데이트: 이제 Intel x86 이미지를 사용할 수 있게 되었으므로 최상의 답변은 위의 제스트입니다.
CommonsWare가 올바르게 지적했듯이 에뮬레이터는 Intelopcode로 변환해야 하는 ARM CPU를 에뮬레이트하기 때문에 속도가 느립니다.이 가상화는 CPU를 수집합니다.
에뮬레이터를 더 빠르게 만들려면 CPU를 더 많이 주어야 합니다. 빠른 CPU로 시작하거나 가능하면 업그레이드하십시오.
그런 다음 에뮬레이터에 CPU를 더 많이 할당합니다.
- 하이퍼스레딩 사용 안 함 - 에뮬레이터가 두 개 이상의 코어를 사용하지 않는 것처럼 보이기 때문에 실제로 하이퍼스레딩은 에뮬레이터가 얻는 전체 CPU 시간을 줄입니다.HT를 비활성화하면 여러 CPU를 사용하는 앱의 속도가 느려집니다.BIOS에서 하이퍼스레딩을 사용하지 않도록 설정해야 합니다.
- 에뮬레이터를 CPU 0이 아닌 다른 CPU에서 실행하도록 합니다. 이는 HT를 끄는 것보다 훨씬 작은 영향을 미치지만 일부 도움이 됩니다.윈도우즈에서는 프로세스가 실행될 CPU를 지정할 수 있습니다.많은 앱들이 CPU 0을 씹을 것이고, 기본적으로 에뮬레이터는 CPU 0에서 실행됩니다. 저는 에뮬레이터를 마지막 에뮬레이터에서 실행되도록 변경합니다.OS X에서는 선호도를 설정할 수 없습니다(https://superuser.com/questions/149312/how-to-set-processor-affinity-on-a-mac) 참조).
이 두 가지 변화로 인해 약 50%의 개선 효과를 볼 수 있습니다.
Windows 7에서 프로세서 선호도를 설정하는 방법
- 작업 관리자 열기
- 관리자로 실행하려면 모든 프로세스 보기를 클릭합니다. 그렇지 않으면 프로세서 선호도를 설정할 수 없습니다.
- 에뮬레이터를 마우스 오른쪽 버튼으로 클릭합니다.exe를 실행하고 선호도 설정...을 선택합니다.
- 선호도 설정 대화상자에서 마지막 CPU만 선택합니다.
참고: 이러한 방식으로 선호도를 변경하면 프로세스의 수명 동안만 변경됩니다.다음 시작은 다시 해야 합니다.
저는 지니모션을 한번 해보는 것을 제안하고 싶습니다.Oracle의 VirtualBox에서 실행되며 중간 시스템에서는 합법적으로 60fps에 도달합니다.
다음은 저가형 2012년형 MacBook Air 모델에서 실행되는 워크샵 중 하나의 스크린캡입니다.
텍스트를 읽을 수 없다면 56.6 fps로 실행되는 Nexus 7 에뮬레이터입니다.Google Play 및 Google Play 서비스가 가상 머신과 함께 제공된다는 추가적인 이점이 있습니다.
(데모된 애니메이션의 소스는 여기에서 확인할 수 있습니다.)
API 15 v3 이상 및 SDK Tools v17+를 사용하는 경우 Intel의 HAXM 외에도 GPU 하드웨어 가속을 사용하도록 설정합니다.에뮬레이터의 그래픽 가속은 개발 컴퓨터의 그래픽 하드웨어, 특히 그래픽 처리 장치(GPU)를 활용하여 화면 그리기 속도를 높입니다.이를 통해 속도가 눈에 띄게 향상됩니다.
에뮬레이터에서 그래픽 가속을 기본적으로 사용하도록 설정하려면: AVD를 생성할 때 하드웨어 섹션에서 새로 만들기를 클릭하고 GPU 에뮬레이션을 선택하고 값을 예로 설정합니다.
런타임에서만 가속을 사용하려면: 에뮬레이터를 시작하는 동안 -gpu 플래그를 사용합니다.
emulator -avd <avd_name> -gpu on
출처: 구글의 에뮬레이터 사용 튜토리얼.
편집 Intel 이미지를 사용하면 성능이 다소 향상되지만 지니모션을 사용하면 성능이 훨씬 향상됩니다.Paul Lammertsma의 대답을 참조하십시오.
이전 답변
ADT rev 17을 사용하면 에뮬레이터는 Windows 및 Mac OS X에서 x86 시스템 이미지를 가상화 모드로 실행할 수 있습니다.이는 성능에 현저한 영향을 미칩니다.
ADT rev 17 참고 사항: http://android-developers.blogspot.jp/2012/03/updated-sdk-tools-and-adt-revision-17.html
가상 시스템 가속 구성: http://developer.android.com/guide/developing/devices/emulator.html#accel-vm
최근에 3GB RAM이 장착된 코어 2 @ 2.5에서 8GB RAM이 장착된 i7 @ 1.73으로 전환했는데(두 시스템 모두 Ubuntu 10.10 실행) 에뮬레이터가 최소 두 배 이상 빠르게 실행됩니다.더 많은 하드웨어를 투입하는 것이 확실히 도움이 됩니다.
제가 인텔 HAXM 가속기를 설치하고 인텔 아톰 이미지를 사용한 후 에뮬레이터가 50배 더 빨리 실행되는 것 같다는 것을 말하고 싶습니다.그 차이는 놀랍습니다, 확인해 보세요!
http://www.developer.com/ws/android/development-tools/haxm-speeds-up-the-android-emulator.html
에뮬레이터는 Core 0만 기본값으로 설정되며 대부분의 Windows 응용 프로그램은 "임의의" 코어로 기본값으로 설정됩니다.또한 다른 코어(마지막 코어처럼)에 올려놓으면 에뮬레이터가 미쳐버릴 수도 있습니다.가능하면 CPU 사용량이 많은 애플리케이션을 다른 CPU 코어에 올려 속도를 높일 수 있습니다.
하드웨어적으로 단일 코어 애플리케이션에 적합한 가장 빠른 CPU를 얻을 수 있습니다.코어가 2개를 초과하면 에뮬레이터 성능에 큰 차이가 없을 수 있습니다.
Eclipse + Android 에뮬레이터는 함께 1톤의 RAM을 소비합니다.RAM이 2기가인 시스템을 사용했는데, RAM이 부족해서 페이지 파일을 사용하기 시작해서 속도가 느려졌기 때문에 최소 3기가의 RAM을 추천합니다.
최고의 CPU는 아마도 높은 클럭(동일한 시리즈 btw의 CPU에 대한 측정값으로 클럭만 사용)을 가지고 있고, 비 SIMD 작업을 잘 처리하며, 터보 부스트 메커니즘을 가지고 있을 것이라고 생각합니다.Java 기반 벤치마크는 많지 않지만 전체적으로 압축 및 사무실과 같은 애플리케이션 벤치마크를 찾습니다.게임이나 미디어는 SIMD의 영향을 많이 받기 때문에 보지 마세요. 자바 게임을 찾으면 더 좋습니다.
올해 구글 I/O(2011)에서 구글은 더 빠른 에뮬레이터를 시연했습니다.문제는 ARM과 x86 사이의 바이트 코드가 아니라 QEMU가 수행하는 소프트웨어 렌더링에 있습니다. 그들은 QEMU의 렌더링을 우회하여 X서버로 직접 렌더링을 전송합니다.그들은 정말 좋은 성능과 fps를 가진 자동차 게임을 보여주었습니다.
언제쯤 개발자들이 사용할 수 있을지 궁금합니다.
구글은 최근 안드로이드를 위한 새로운 에뮬레이터를 발표했습니다.예전 것보다 훨씬 빠르고 좋습니다.당신은 여기에서 그것에 대한 더 많은 정보를 참조하십시오.
(나처럼) 좋은 그래픽 카드가 없는 경우 저해상도 에뮬레이터(예: Nexus S)를 선택합니다.
clr 가상 머신이 코드 opcode 변환 없이 cpu를 직접 사용하기 때문인 것 같습니다.clr 애플리케이션에 대한 최적화이거나 인텔 프로세서에서 시작된 윈도우 모바일/윈도우 폰 7일 수 있습니다.Linux 기반의 Android 플랫폼이며 이론적으로 i686 환경의 가상 머신에서 Android를 시작할 수 있습니다.이 경우 vmware와 같은 가상 시스템에서 일부 작업 코드를 직접 실행할 수 있습니다.그러나 이 옵션은 사용자가 Java에 쓸 경우에만 허용됩니다.Java가 바이트 코드를 해석하거나 실행 전에 미리 컴파일하기 때문입니다.참조: http://www.taranfx.com/how-to-run-google-android-in-virtualbox-vmware-on-netbooks
@zest 감사합니다!매력적으로 작동했습니다.몇 가지 유의 사항:커널 패닉 문제를 처리하기 위해 HAXM에 대한 인텔의 핫픽스를 적용해야 함: http://software.intel.com/en-us/android/articles/intel-hardware-accelerated-execution-manager 또한, 두 개 이상의 abi가 있는 경우 최신 버전의 Android API(r19): https://code.google.com/p/android/issues/detail?id=66740 (이 경우 x86 abi를 원하므로 armeabi-v7a 제거)에서 하나를 제거해야 합니다.이 문제를 해결하는 데 걸린 45분을 제외하고는 에뮬레이터의 성능 향상 측면에서 매우 보람 있는 연습이었습니다.
독립 실행형 에뮬레이터로도 설치할 수 있는 Visual Studio Android 에뮬레이터를 사용해 볼 수도 있습니다(Visual Studio는 필요 없음).Windows Pro 이상 시스템에만 설치할 수 있습니다.
에뮬레이터 대신 지니모션을 사용합니다.지니모션은 더 나은 성능을 가지고 있습니다. https://www.genymotion.com
이 옵션을 활성화하는 것이 저에게 효과가 있었습니다.
AVD Manager -> 장치를 선택하고 편집 -> '호스트 GPU 사용' 옵션 사용
인텔(86) CPU/ABI를 사용해 왔습니다.저는 ARM(armeabi-v7a)을 사용하여 다른 에뮬레이터를 만들었고 속도가 상당히 향상되었습니다.플랫폼 4.1.2 API 레벨 16을 사용하고 있습니다.
현재 Android Studio를 Android Studio 2.0으로 업데이트하고 시스템 이미지도 업데이트합니다.
Android Studio 2.0 에뮬레이터는 Android의 이전 에뮬레이터보다 최대 3배 더 빠르게 실행되며, ADB 향상 기능을 통해 앱과 데이터를 에뮬레이터에 물리적 장치보다 10배 더 빠르게 푸시할 수 있습니다.물리적 장치와 마찬가지로 공식 Android 에뮬레이터에는 Google Play Services가 내장되어 있으므로 더 많은 API 기능을 테스트할 수 있습니다.마지막으로, 새로운 에뮬레이터는 통화, 배터리, 네트워크, GPS 등을 관리할 수 있는 풍부한 새로운 기능을 갖추고 있습니다.
글쎄요, 2011년의 질문이고 2022년의 제 경험에서 가장 좋은 대답은 에뮬레이터를 안드로이드 스튜디오의 하위 프로세스가 아닌 전용 프로세스를 시작하는 방식으로 명령에서 시작하는 것입니다.프로세스가 독립적이면 장치 관리자에서 에뮬레이터를 시작하는 것과 달리 GPU를 제대로 사용할 수 있고 모든 리소스를 활용할 수 있습니다.장치 관리자에서 AVD를 만들 수 있으며 아래의 avd 폴더에서 시작하는 것이 에뮬레이터를 독립적으로 시작하는 방법입니다.
언급URL : https://stackoverflow.com/questions/2662650/making-the-android-emulator-run-faster
'programing' 카테고리의 다른 글
jQuery 'click', 'bind', 'live', 'delegate', 'trigger', 'on' 기능(예시)의 차이는 무엇입니까? (0) | 2023.08.23 |
---|---|
도커가 포트를 호스트에만 노출 (0) | 2023.08.23 |
IE 11을 위한 CSS 해킹을 작성하는 방법은 무엇입니까? (0) | 2023.08.23 |
CSS를 사용하여 숫자를 원으로 둘러싸는 방법은 무엇입니까? (0) | 2023.08.23 |
Swift에서 단추 제목 정렬을 변경하는 방법은 무엇입니까? (0) | 2023.08.23 |