Android应用程序通过JNI调用驱动程序(友善Smart210

写一个简单的测试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

密码:

在 2014年LinuxIDC.com\4月\Android应用程序通过JNI调用驱动程序(友善Smart210)

下载方法见

 ------------------------------------分割线 ------------------------------------

开发环境

Win7 32位的系统;

开发板:友善Smart210(s5pv210);

Android版本:Android-4.0.3;

Linux内核版本:Linux-3.0.8

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

这里假设你的电脑上已经装好了开发应用程序的环境,其中Android sdk的下载地址为  根据自己电脑的系统来下载适合自己的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,如下图:

Android应用程序通过JNI调用驱动程序(友善Smart210

至于具体怎么在Eclipse下建立Android的工程,网上很多资料,只是这里需要注意,因为后边要用到所以专门弄出来说说。

2.在新建立的工程里面建立一个jni文件夹,该文件存放ndk需要编译的文件,具体为:在所建工程的名字LEDAPP上右键->New->folder,然后写入jni的名字,完成后,如图下图:

Android应用程序通过JNI调用驱动程序(友善Smart210

3.建立并配置Builder

(a)右键LEDAPP->Properties->Builders,如下图:

Android应用程序通过JNI调用驱动程序(友善Smart210

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/ebc1891803e83202eca5d8b00d652b5a.html