歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Android應用程序通過JNI調用驅動程序(友善Smart210)

Android應用程序通過JNI調用驅動程序(友善Smart210)

日期:2017/3/1 9:46:12   编辑:Linux編程

實現目標

寫一個簡單的測試smart210上LED的應用程序,應用程序通過JNI調用Android系統下的Linux內核中的LED的驅動程序,實現在應用程序上控制開發板上4個LED的目的。

------------------------------------分割線 ------------------------------------

這是我自己寫的通過JNI調用Linux內核中的驅動程序來完成Android上層應用程序的代碼,硬件開發平台式友善的smart210,在他家自帶的系統上直接做的應用程序,希望對大家有用。以及友善smart210核心板上的四個led的驅動程序。

本文的Android源代碼與Smart210的led驅動 下載

FTP地址:ftp://ftp1.linuxidc.com

用戶名:ftp1.linuxidc.com

密碼:www.linuxidc.com

在 2014年LinuxIDC.com\4月\Android應用程序通過JNI調用驅動程序(友善Smart210)

下載方法見 http://www.linuxidc.com/Linux/2013-10/91140.htm

------------------------------------分割線 ------------------------------------

開發環境

Win7 32位的系統;

開發板:友善Smart210(s5pv210);

Android版本:Android-4.0.3;

Linux內核版本:Linux-3.0.8

環境搭建以及完成JNI部分:

這裡假設你的電腦上已經裝好了開發應用程序的環境,其中Android sdk的下載地址為http://developer.android.com/sdk/index.html 根據自己電腦的系統來下載適合自己的sdk吧。

ndk的簡介:(參考網絡博客)

NDK全稱:Native Development Kit。

1、NDK是一系列工具的集合。

NDK提供了一系列的工具,幫助開發者快速開發C(或C++)的動態庫,並能自動將so和java應用一起打包成apk。這些工具對開發者的幫助是巨大的。

NDK集成了交叉編譯器,並提供了相應的mk文件隔離CPU、平台、ABI等差異,開發人員只需要簡單修改mk文件(指出“哪些文件需要編譯”、“編 譯特性要求”等),就可以創建出so。

NDK可以自動地將so和Java應用一起打包,極大地減輕了開發人員的打包工作。

2、NDK提供了一份穩定、功能有限的API頭文件聲明。

Google明確聲明該API是穩定的,在後續所有版本中都穩定支持當前發布的API。從該版本的NDK中看出,這些API支持的功能非常有限,包含有:C標准庫(libc)、標准數學庫(libm)、壓縮庫(libz)、Log庫(liblog)。

對於Windows環境下NDK的開發,如果使用的NDK是r7之前的版本,必須要安裝Cygwin才能使用NDK,所以為Eclipse需要配置的builder,其實是執行Cygwin,然後傳遞ndk-build作為參數。在NDKr7開始,Google的Windows版的NDK提供了一個ndk-build.cmd的腳本,這樣,就可以直接利用這個腳本編譯,而不需要使用Cygwin了。只需要為Eclipse Android工程添加一個Builders,就能讓Eclipse自動編譯NDK。

現在我們來講解怎麼搭建ndk的環境,ndk的下載地址為:https://developer.android.com/tools/sdk/ndk/index.html 下載後解壓相應的ndk,我解壓在D盤的android-ndk目錄下,解壓後的的文件為android-ndk-r9c,如下圖:

1.解壓完ndk後,接下來我們來在Eclipse中怎麼把ndk的部分設置進去,首先打開Eclipse,創建一個新工程,我去的工程名字為:LEDAPP,包的名字為:com.ndk.led,如下圖:

至於具體怎麼在Eclipse下建立Android的工程,網上很多資料,只是這裡需要注意,因為後邊要用到所以專門弄出來說說。

2.在新建立的工程裡面建立一個jni文件夾,該文件存放ndk需要編譯的文件,具體為:在所建工程的名字LEDAPP上右鍵->New->folder,然後寫入jni的名字,完成後,如圖下圖:

3.建立並配置Builder

(a)右鍵LEDAPP->Properties->Builders,如下圖:

Copyright © Linux教程網 All Rights Reserved