作者:Jeffrey Mcallis
本教程介紹了如何使用英特爾 IPP 設定 Android* OS 應用。該庫可提供多種功能,可讓您將重心放在應用的開發而非特定處理器細節上。它們是面向英特爾處理器(包括英特爾 淩動、酷睿 和至強)的通用介面,但是它們可以在任何支援英特爾 SIMD 流指令擴充 2(Intel SSE2) 或更新的指令集的處理器上使用。本教程旨在通過示範如何設定一個簡單樣本協助您瞭解如何在面向 Android* 的 Beacon Mountain 開發環境中使用英特爾 IPP。
您可以在 Beacon Mountain 中預覽英特爾 IPP 的功能。該軟體包中包含了開發 Android* 軟體的主要組件。它非常適合普通的 Android* 開發,但是它綁定了其他工具,如英特爾 IPP、 英特爾 線程構建模組 (TBB) 和 英特爾 圖形效能分析器 (GPA),而且需要具備一些前提條件,如 Android* 網路開發套件(NDK),以便利用該工具套件的效能和功耗優勢簡化行動裝置 App的開發。 在您運行本文的“hello world”應用後,切換到 IPP 庫中的各種功能將會非常簡單。
入門步驟如下所示:
1. 啟動 Eclipse
點擊 “Eclipse for Android ADT”表徵圖,啟動開發環境。
2. 啟用 Android* NDK
IPP 可通過 Android* 原生開發套件(NDK)來訪問。 也就是說,IPP 需要通過 C/C++(和在 Windows*、Linux* 和 OSX* 中比較類似)來調用,而非直接通過 Java 調用。 Eclipse 環境支援原生開發,但是您必須確保 NDK 可用且 Eclipse 安裝了其位置。 執行該操作的位置位於“Preferences”下的 “Window”菜單。
如果尚未填入 NDK 安裝位置,請添加。 下列是 Beacon Mountain 預設設定。
3. 建立 HelloIPP 項目
下一步是建立新的 HelloIPP 項目。 名稱需區分大小寫。 為了與該樣本中的代碼匹配,需要按照下列方式填寫名稱:
該活動也稱為 HelloIPP,因此,請同樣確保它使用了正確的名稱和字型建立。
4. 向 HelloIPP 項目中添加原生支援
雖然 Eclipse 環境本身的設定能夠啟用 NDK 編程(見步驟 2),但是您仍須在項目中添加原生支援。 通過右擊 Eclipse Package Explorer 中的 HelloIPP 項目,您可以看到執行該操作的選項,然後點擊 “Android Tools->Add Native Support”。 這將會自動執行對項目的所有變更,以支援在 C/C++ 中編寫 Java 原生介面(JNI)功能。
5. 將檔案複製到 Eclipse* 工作區
現在,您可將樣本檔案和 IPP 預覽複製到 Eclipse 工作區中的 HelloIPP 項目 jni 檔案夾。 首先,刪除該目錄自動產生的內容。 您可從兩個位置複製檔案: 1)樣本來源(如下所示)和 2) Beacon Mountain IPP 目錄(預設 c:/Intel/BeaconMountain/IPP)。
HelloIPP 樣本的原始碼如下:helloippexamplecode.zip
HelloIPP.java 主檔案也應複製到 workspace/HelloIPP/src/intel/example/HelloIPP。 這將會替換該目錄下已經自動產生的檔案。
6. 運行應用
現在,您可以啟動應用。 為了獲得最佳效能,請在使用英特爾淩動 (x86) CPU/ABI 的 Android 虛擬裝置(AVD)模擬器或基於英特爾硬體的 Android* 裝置上運行。 此時,您應看到與下列輸出類似的內容。
該輸出是 IPP ippGetLibVersion 功能返回的主要和次要版本編號。
如何從 Beacon Mountain 英特爾 IPP 預覽圖切換至 IPP 庫中的各種功能
Android* 應用中可能使用了 32 位非線程化靜態 Linux* 功能。 如果您有 Intel IPP for Linux* 的許可,請將靜態庫檔案(副檔名為 .a)以及 Linux 安裝中副檔名為 .h 的檔案複製到您的主機。 隨後,這些檔案將添加至 Eclipse* 項目工作區的 JNI 檔案夾而非預覽檔案,如下所示。
註: 您無需添加所有庫,只需添加您的項目要使用的檔案。 如果不需要一個域中包括的某個檔案,僅需在 ipp.h 中將其注釋掉即可。
與面向 Linux* 的 IPP 中的檔案成功編譯後,您將會看到與使用預覽構建時相同的輸出。
總結
本文簡要介紹了如何開始使用面向 Android* 應用的 IPP。 它包括以您自己的代碼訪問 IPP 功能的效能和功耗優勢的所有要素。 現在,調用一個功能的所有要素都已準備就緒,您可以輕鬆擴充至 IPP 預覽中的其他功能和 IPP 庫中的其他廣泛功能。