乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      提升基于英特爾?架構(gòu)的 Android* 模擬器的速度

       rookie 2013-10-29

      提升基于英特爾?架構(gòu)的 Android* 模擬器的速度

      摘要:

      如果您是一名 Android* 開發(fā)人員,而且對 Android 模擬器的性能不滿意,請閱讀本文。 我們經(jīng)常聽到許多 Android 開發(fā)人員抱怨模擬器速度緩慢而且難以操作,但是事實并不應(yīng)該如此! 如果您使用的是采用英特爾? 處理器且支持英特爾? 虛擬化技術(shù)并運行 Microsoft Windows* 或 Apple Mac OS* 的新電腦,那么您可以使用英特爾? 硬件加速執(zhí)行管理器(英特爾? HAXM)或 KVM for Linux* 來輕松地大幅提升 Android 模擬器的性能,進而加快 Android 應(yīng)用的測試和調(diào)試速度。 本文詳細介紹了加速模擬器所需的步驟以及如何對其進行操作。 然后,我們將介紹如何使用 NDK 編譯 x86 原生代碼以及如何將包含 x86 原生庫的 APK 提交至 Google Play 商店。 英特爾 HAXM 還可用于加速 Tizen* 模擬器,但這不在本文的討論范圍之內(nèi)。 如欲獲取更多信息,請訪問 tizen.org,了解 SDK 部分的內(nèi)容。

      目錄

      1. 簡介
      2. 安裝
      2.1. 前提條件
      2.2. 在 Windows 上安裝
      2.3. 在 Linux 上安裝
      2.3.1. KVM 安裝
      2.4. 創(chuàng)建 AVD(Android* 虛擬設(shè)備)
      3. 公認的最佳方法
      3.1. 在 Eclipse 中使用模擬器測試應(yīng)用
      3.2. 提交多種面向不同 ABI 的 APK 與提交 fat 二進制文件至 Google Play
      3.3. 編譯面向 x86 的 NDK
      3.3.1. 將 NDK 路徑添加至環(huán)境變量
      3.3.2. 使用 NDK 編譯
      3.3.3. 使用 NDK 編譯的其他方法

      1. 簡介

      本文將為您安裝英特爾? 硬件加速執(zhí)行管理器(英特爾? HAXM)提供指導(dǎo)。英特爾? HAXM 是一款硬件輔助虛擬化引擎(管理程序),它可通過英特爾? 虛擬化技術(shù)(英特爾? VT)在 Windows* 上加快 Android* 開發(fā)速度。 此外,它還介紹了如何在 Linux* 上安裝硬件輔助 KVM,并介紹了如何使用公認的最佳方法進行原生編譯并將應(yīng)用提交至面向 x86 的 Google Play 商店。

      2. 安裝

      2.1. 前提條件

      • 您需要安裝 Android SDK。
      • 您的電腦必須采用英特爾處理器并支持通過 BIOS 啟用的英特爾 VT-x、EM64T 和病毒防護技術(shù) (XD) 功能。

      2.2.在 Windows 上安裝

      安裝 Android SDK 后,請打開 SDK 管理器。 在附加部分,您可以找到英特爾 HAXM。

      勾選方框并點擊“Install packages…”按鈕,安裝軟件包后,狀態(tài)即會顯示為“Installed”,這是誤導(dǎo),事實并非如此。 SDK 僅在您的設(shè)備上復(fù)制了英特爾 HAXM 可執(zhí)行文件,而是否安裝這些可執(zhí)行文件則取決于您。

      如要安裝英特爾 HAXM 可執(zhí)行文件,請在您的硬盤中搜索 IntelHaxm.exe(在 Mac OS X 上請搜索 IntelHAXM.dmg)。 如果您設(shè)置為默認,該文件應(yīng)該位于以下目錄:C:\Program Files\Android\android-sdk\extras\Intel \Hardware_Accelerated_Execution_Manager\IntelHaxm.exe。

      英特爾 HAXM 僅可與英特爾? 凌動? 處理器 x86 系統(tǒng)映像一起使用, 該映像可用于 Android 2.3.3 (API 10)、4.0.3 (API 15)、4.1.2 (API 16)、4.2.2 (API 17)。 通過 SDK 管理器,這些英特爾系統(tǒng)映像的安裝方法與基于 ARM 的映像的安裝方法完全相同。

      點擊 IntelHaxm 可執(zhí)行文件時,將會顯示如下歡迎界面:

      您可以調(diào)整分配給英特爾 HAXM 的 RAM 內(nèi)存容量。 然后請點擊“Next”。 下一界面將確認內(nèi)存分配。 如果符合您的要求,請點擊“Install”。

      為了能夠安裝英特 HAXM,您需要在 BIOS 中啟用英特爾 VT-x,否則在安裝過程中將會出現(xiàn)類似以下的錯誤:

      如果出現(xiàn)此錯誤,請進入將您的 BIOS 并啟用該特性。

      第二種下載英特爾 HAXM 和 x86 模擬器系統(tǒng)映像的方法是直接訪問以下網(wǎng)站: http://software.intel.com/en-us/android,并通過此網(wǎng)站下載必要的組件。

      2.3. 在 Linux 上安裝

      提升面向 Linux 的 Android 模擬器的性能的步驟與 Windows 和 Mac OS X 不同,因為英特爾 HAXM 與 Linux 不兼容,所以您需要使用 KVM(基于內(nèi)核的虛擬機)來替代。 以下是使用 Ubuntu* 12.04 的執(zhí)行步驟,可能會與其他 Linux 版本稍有不同。

      在 Windows(和 Mac OS X)中操作時,首先要從 Android 開發(fā)人員站點下載 Android SDK。 您將會看到一個 ADT(Android 開發(fā)人員工具)包,其中包含 Eclipse* IDE 和 Android SDK。 下載 zip 文件并將其解壓縮至您的 Linux 設(shè)備。 確保選擇了適合您 Linux 版本的文件,32 位或 64 位。 您可以通過以下命令對此進行檢查:

      file /sbin/init

      在開始安裝 KVM 所需的軟件包之前,建議您確認已具有最新的庫,您可以通過輸入以下命令進行確認:

      sudo apt-get update

      2.3.1. KVM 安裝

      如要安裝和運行 KVM(一款 x86 硬件之上面向 Linux 的完全虛擬化解決方案,即英特爾 VT),首先需要檢查您的 CPU 是否支持硬件虛擬化。您可以通過輸入以下命令來確認:

      egrep –c ‘(vmx|svm)’ /proc/cpuinfo

      如果結(jié)果為 0,則表明您的 CPU 不支持硬件虛擬化,而硬件虛擬化是運行 KVM 的必要條件。 如果結(jié)果為 1 或大于 1 ,則表明您可以安裝和運行 KVM,但仍需確認是否已經(jīng)在 BIOS 中開啟這一功能(請參閱 2.2 節(jié))。

      接下來,如果您尚未安裝 KVM,請進行安裝。 您可以通過輸入以下命令來檢查您的處理器是否支持 KVM:

      kvm-ok

      如果您已具有 KVM,則會看到:

      "INFO: Your CPU supports KVM extensions
      INFO: /dev/kvm exists
      KVM acceleration can be used"

      否則的話,如果您看到以下消息,需要進入 BIOS,然后開啟英特爾 VT:

      "INFO: KVM is disabled by your BIOS
      HINT: Enter your BIOS setup and enable Virtualization Technology (VT),
      and then hard poweroff/poweron your system
      KVM acceleration can NOT be used"

      接下來需安裝 KVM 和所需的其他幾個軟件包。 為此,請輸入:

      sudo apt-get install qemu-kvm libvirt-bin ubuntu-vm-builder bridge-utils

      在下一窗口中,如果您不想變更配置,可以選擇“No configuration”:

      然后,將您的用戶添加至 KVM 組和 libvirtd 組。 為此,請輸入:

      sudo adduser your_user_name kvm
      sudo adduser your_user_name libvirtd

      完成安裝后,請重新登錄,以使變更生效。 您可以通過輸入以下命令對安裝進行測試:

      sudo virsh -c qemu:///system list

      現(xiàn)在您可以準(zhǔn)備進入下一步操作了,即創(chuàng)建和運行 AVD(Android 虛擬機)。 這一步操作對于 Linux 和 Windows 是相同的。

      2.4. 創(chuàng)建 AVD(Android* 虛擬機)

      完成 SDK 和英特爾 HAXM(或 Linux 的 KVM)安裝后,您可以創(chuàng)建一個帶有硬件加速模擬的虛擬設(shè)備。 如要進行該操作,請進入 AVD 管理器并創(chuàng)建一個新設(shè)備。 確保將英特爾凌動 (x86) 選作 CPU/ABI。 只要安裝了英特爾 x86 系統(tǒng)映像,即會在下拉菜單中顯示選擇,以便在創(chuàng)建 AVD 時在 GPU 模擬上順暢地進行其他圖形切換。

      點擊“New”并創(chuàng)建 x86 AVD。 確保選擇了一個由 x86 系統(tǒng)映像支持的 API,將 CPU/ABI 設(shè)置為 x86,而且已經(jīng)啟用了 GPU (OpenGL ES*) 模擬。 完成該操作后,點擊“Create AVD”,創(chuàng)建 AVD。

      可以通過依次點擊“Start”和“Launch”來啟動 x86 AVD。

      如果您已成功安裝,在模擬器啟動時,將會出現(xiàn)一個對話框,顯示英特爾 HAXM 已在快速虛擬模式下運行。

      如果您需要進一步確認您使用的是否為 x86 系統(tǒng)映像,可以查看模擬器內(nèi)“About phone”中的詳細信息。

      英特爾 HAXM 或 KVM 的性能取決于您的電腦、硬盤和內(nèi)存等,但是會有 5 倍到 10 倍的大幅提升。 以下截圖顯示了 x86/HAXM 支持的 AVD 與基于 ARM 的 AVD 之間的詳細對比。 x86 AVD 會在 15 秒內(nèi)進入鎖屏狀態(tài),而非英特爾 AVD 則會花費 40 秒鐘,這是一個明顯的差別。

      [根據(jù)您的系統(tǒng)配置,英特爾 HAXM(或 KVM)的性能會有 5 到 10 倍的提升: 在性能檢測過程中涉及的軟件及其性能只有在英特爾微處理器的架構(gòu)下方能得到優(yōu)化。 諸如 SYSmark* 和 MobileMark* 等測試均系基于特定計算機系統(tǒng)、組件、軟件、操作及功能。 上述任何要素的變動都有可能導(dǎo)致測試結(jié)果的變化。 請參考其他信息及性能測試(包括結(jié)合其他產(chǎn)品使用時的運行性能)以對目標(biāo)產(chǎn)品進行全面評估。 配置: 在此案例中使用 Mac Book Pro 進行測試。 更多信息敬請登陸 http://www.intel.com/performance]

      3. 公認的最佳方法

      3.1. 在 Eclipse 中使用模擬器測試應(yīng)用

      無論是基于 NDK 的應(yīng)用還是 Dalvik* 應(yīng)用,您都可以使用英特爾 HAXM 來提高您用于測試的模擬器的性能。 如果您使用 Eclipse 進行開發(fā),在啟動模擬器時,可以按照以下這些簡單步驟確認您使用的是英特爾 HAXM。

      首先,確認您已按照步驟 2 的描述創(chuàng)建了 AVD。如果已創(chuàng)建完成 AVD,請進入“Run As -> Run Config”,如下所示:

      您應(yīng)該會進入一個類似以下的頁面:

      您可以勾選相應(yīng)的方框,選擇您想要的 AVD。 創(chuàng)建 AVD 并進行相應(yīng)配置后,可以選擇“Run As -> Android Application”,使用模擬器對項目進行編譯和調(diào)試。 這將自動開啟硬件加速 AVD。

      AVD 啟動后,您應(yīng)該可以看到應(yīng)用的主界面(在屏幕解鎖后)。

      3.2. 提交多種面向不同 ABI 的 APK 與提交 fat 二進制文件至 Google Play

      以前,您需要為所開發(fā)的應(yīng)用提交一個 fat 二進制文件,其中應(yīng)該包含所有庫以及 NDK 文件,無法在架構(gòu)間區(qū)分它們。 這就意味著用戶必須下載整個 APK,但是其中包含的一些文件與特定的架構(gòu)并無關(guān)聯(lián),即 x86 用戶可能具有 ARM 代碼,反之亦然。 其缺陷在于如果您具有一個 fat 二進制文件,會強迫用戶下載大量數(shù)據(jù),而這些數(shù)據(jù)可能并不適用于設(shè)備。 通常情況下,如果您的 APK 小于 10 到 20 MB,還是可以接受的。

      英特爾/谷歌目前已經(jīng)實施了 CPU 過濾機制,也就是說,您可以按照建議的版本代碼(如下所示)進行操作,針對各架構(gòu)提交多個包含不同庫的 APK。

      第一位數(shù)字代表 ABI(即 6 代表 x86);然后是您需要的 API 級別(即 11);屏幕大?。?3);以及應(yīng)用的版本編號: 3.1.0.

      確保您至少具有一個 8 位的版本編號,并將最高的首位數(shù)分配給 x86 版本。 在上述示例中,您需要輸入 6 來代表 x86、2 代表 ARMv7 以及 1 代表 ARMv5TE。 這樣操作將會使得 x86 版本成為 x86 設(shè)備的首選,而 ARM 版本成為 ARM 設(shè)備的首選。

      按照這些指南進行操作后,可以確定您的用戶會在自身的設(shè)備上實現(xiàn)最佳性能。 此外,還可以避免用戶由于代碼轉(zhuǎn)換問題嘗試在特定的設(shè)備上運行應(yīng)用。

      如欲獲取更多信息,請訪問: http://software.intel.com/en-us/articles/google-play-supports-cpu-architecture-filtering-for-multiple-apk。

      3.3. 編譯面向 x86 的 NDK

      這一章節(jié)將向您介紹如何針對 x86 編譯您應(yīng)用的 NDK 部分。

      為了能夠讓基于 NDK 的應(yīng)用在 x86 AVD 上運行,您需要針對 x86 架構(gòu)編譯 NDK 庫。 為此,請采取以下簡單的步驟:

      打開一個命令提示符,并導(dǎo)航至您 NDK 文件所在的文件夾,如下所示:

      確保您已經(jīng)設(shè)置了環(huán)境變量路徑,以便從任意位置使用 ndk-build 腳本。

      3.3.1. 將 NDK 路徑添加至環(huán)境變量

      要想針對 NDK 設(shè)置環(huán)境變量。您需要右擊“Computer”,然后選擇“Properties”。 進入“Advanced system settings”并找到環(huán)境變量。 選擇“Path”并點擊“Edit”。 在“Variable Value”字符串的結(jié)尾,將路徑添加至 NDK 的根文件夾,其中包含 ndk-build.cmd 文件,如下圖所示:

      3.3.2. 使用 NDK 編譯

      將命令提示符導(dǎo)航至 NDK 文件夾后,執(zhí)行:

      ndk-build APP_ABI:=all

      這將針對各架構(gòu)變量編譯 NDK 文件,即 ARMv5TE、ARMv7、x86 和 mips。

      如要針對特定架構(gòu)進行編譯,請將“all”替換為不同的架構(gòu)。 例如:

      ndk-build APP_ABI:=armeabi armeabi-v7a x86 mips

      確保在 Eclipse 中刷新項目以獲取最新的設(shè)置,即 ndk-build 腳本創(chuàng)建的最新文件夾。 現(xiàn)在,在項目的文件夾庫中,應(yīng)該可以看到四個文件夾,每個架構(gòu)一個文件夾。

      現(xiàn)在,您可以在 x86 AVD 中使用您的 NDK 應(yīng)用了。

      3.3.3. 使用 NDK 編譯的其他方法

      針對所有架構(gòu)(包括 x86 )編譯原生代碼還有另外的方法,即修改 Application.mk 文件,該文件位于 jni 文件夾中。 如果您沒有 Application.mk 文件,可以自己創(chuàng)建一個并添加以下指令:

      APP_ABI:=armeabi armeabi-v7a x86 mips

      這樣,在批處理文件時(即 ndk-build 腳本),將會針對所有可用架構(gòu)編譯庫。

      此外,為了簡化應(yīng)用,可以僅輸入“all”,而不用列出所有架構(gòu):

      APP_ABI:=all

      如需更全面地了解編譯器優(yōu)化,請參閱優(yōu)化注意事項

        本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
        轉(zhuǎn)藏 分享 獻花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多