转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/7275897.html
ReactNative可以用来进行一些嵌入式设备的操作终端开发,比如:ATM机、自动售卖机等。其中,最重要的一步是,怎样在ReactNative所在设备,进行一系列硬件上的操作,比如:售卖机出货、ATM机吐钱?
一:底层操作串口包装
对于机器的控制,ReactNative本身当然不可能做到。这些底层的操作一般都是用C/C++来实现的。而我们要做的,是把这些C/C++函数,包装成java接口,导出为aar文件。(注意:*.jar:只包含了class文件与清单文件,不包含资源文件,如图片等所有res中的文件。*.aar:包含所有资源,class以及res资源文件全部包含)
对于底层的操作,我们不需要关心,由厂商提供或者负责嵌入式开发的人来定义。
在ReactNative中调用aar分为两部分:首先是通过原生Android代码调用aar中的接口,包装成为可供ReactNative调用的方法;然后在ReactNative代码中调用Android代码中的对应方法。
二:Android调用aar
1:首先,我们把aar文件放到项目的android目录的一个文件夹中,比如:新建一个libs文件夹。
2:然后,在android目录下的build.gradle文件中添加这个aar包路径:
allprojects {
repositories {
mavenLocal()
flatDir{
dirs "$rootDir/libs" //在这里加上这句
} ...... } }
3:在android/app目录下的build.gradle文件中依赖这个aar包
dependencies { ...... compile(name:'aar包名', ext:'aar')//加上这句 }
4:然后,就可以在android/app/src/main/java/com/xx目录下新建java类,在类中 import aar包名.类名 即可使用aar包中的各种接口。
附:如何打开、查看aar文件内容,获取其中类、接口的信