當前位置:商標查詢大全網 - 教育培訓 - 如何學習android的底層開發?

如何學習android的底層開發?

Android底層開發學習:

1.基於Android的CPU+GPU異構編程開發。目前主要有以下平臺:

1.OpenCL

廣泛應用於桌面系統和大規模並行計算的底層API。最近主流芯片廠商的旗艦或者準旗艦芯片都開始支持OpenCL1.1或者1.2標準,包括高通、三星、聯發科、瑞芯微等廠商的芯片,都可以找到OpenCL支持。

2.庫達

目前只有NVIDIA自己的Tegra K1芯片級設備(NVIDIA Shield)支持CUDA,所以支持範圍比較窄。

3.渲染腳本(RS)

Google推廣的異構編程的目的是平臺幫妳選擇運行的處理器,也就是說妳不知道妳的程序運行在CPU還是GPU上,這是由系統的驅動決定的。想法很美好,但現實是開發者並不買rs的賬。大家都覺得RS的性能不可控,靈活性太差,缺少文檔也飽受詬病。另外,芯片廠商對rs的優化壹般都處於比較低的水平,導致RS在實際應用中很少使用。

第二,由於OpenCL的普及,以下部分只針對OpenCL。

目前支持OpenCL的設備和芯片

1.支持OpenCL的GPU

高通幾乎所有的GPU,包括但不限於以下GPU(adre no 305,320,330,405,420,430,530...).

ARM Mali的6系和7系GPU,比如T628和T760。

2014以來比較新的Imagination PowerVR GPU,比如G6430。

2.支持OpenCL的芯片。以下是支持OpenCL的主要芯片的粗略列表。

高通8064,8974(小龍800,801),8084(驍龍805),8994(驍龍810)等。

三星Exynos獵戶座5420、5433(內置ARM Mali GPU)

聯發科MT6752(內置ARM Mali T760 GPU)

瑞芯微RK3288(內置ARM Mali GPU)

3.支持OpenCL的手機和平板電腦。這是無止境的。這裏只是舉幾個例子供大家參考。(註:Google Nexus系列手機或平板電腦雖然在硬件上支持OpenCL,但基本不支持OpenCL,因為OpenCL的驅動已經被刪除;值得註意的是,據國外博客報道,可以將相應的OpenCL驅動推回到設備上,重啟OpenCL支持。詳見maxlv.net的頁面。)

三星銀河S4,S5,S6,Note 3,Note 4。

LG G2、G3、G4

HTC One M7、M8、M9

小米使用高通芯片的手機和平板電腦。

魅族M1 Note

臺積電P90HD

等等,等等,等等。。。

如果不確定手頭的設備是否支持OpenCL,可以使用OpenCL-Z Android進行檢測。該軟件可以顯示OpenCL設備的詳細信息,並運行微基準來檢測設備的計算能力。

三、需要掌握的知識:

1.簡單的GPU基礎知識

2.OpenCL並行編程

3.安卓NDK知識

4.Android JNI界面的編程

5.Android程序開發的簡單知識

四、開發的步驟(這只是步驟的簡化版,只說明操作,不做解釋):

1.編寫OpenCL的C/C++程序,實現GPU的核心計算代碼。

2.用安卓NDK編譯之前寫的C/C++代碼。在這個階段,您可以在純C/C++環境中工作。可以編寫主函數來測試實現的功能,用NDK把代碼編譯成可執行代碼(BUILD_EXECUTABLE),然後用ADB把可執行程序推送到設備上運行。運行可執行程序要求設備具有root權限。如果沒有root權限,可以通過Native Program Launcher(androidative Launcher github,可能需要翻墻)這個工具在設備上執行二進制代碼。

3.最後壹次測試後,功能基本正常。開始編寫JNI界面。

4.開始編寫Android應用程序,並使用JNI封裝本機功能。將C/C++代碼編譯成動態鏈接庫。

5.在Android程序中,以靜態方式加載上壹步編譯好的動態鏈接庫。

6.在需要的地方(比如點擊按鈕事件)調用相應的原生函數,實現相應的功能。