USB 重定向库usbredir的移植到Android下使用的方法总结

转载注明:http://blog.csdn.net/hubbybob1/article/details/78063443
这篇文章类似于libusb的Android下的移植,方法相通但是注意点不一样,(libusb1.0在android内的移植和使用方法

首先下载usbredir库:
https://www.spice-space.org/download/usbredir/ 或者
https://www.spice-space.org/page/UsbRedir
都可以下载到usbredir-0.7.tar.bz2 库
解压:tar jxvf usbredir-0.7.tar.bz2后得到usbredir-0.7目录

cd usbredir-0.7 #进入库目录
./configure  #执行配置文件生成config.h头文件,后面会用到

这里写图片描述
经过上面的处理我们得到了usbredirhost和usbredirparser两个目录,Android作为客户端使用只要编译这两个库就行了。

1。usbredirparser编译 libusbredirparser.a
A.把 /usbredir-0.7下生成的config.h复制到/usbredir-0.7/usbredirparser/ 目录下;
B.在usbredirparser/ 目录下编写Android.mk文件,如下:

LOCAL_PATH  := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE    := libusbredirparser
LOCAL_SRC_FILES := usbredirparser.c \
           strtok_r.c \
           usbredirfilter.c
LOCAL_C_INCLUDES += \
                    usbredirfilter.h \
                    strtok_r.h \
                    config.h \
                    usbredirparser.h \
                    usbredirproto-compat.h \
                    usbredirproto.h
include $(BUILD_STATIC_LIBRARY)   

C./usbredir-0.7/usbredirparser/ 目录下使用命令:

ndk-build NDK_PROJECT_PATH=. APP_BUILD_SCRIPT=./Android.mk

编译后就在本目录下生成了obj目录、在目录obj/local/armeabi/下找到 libusbredirparser.a,那么此时这个静态库就可以在Android系统下使用了,但是用的时候的头文件就是在上面的usbredirfilter.h、strtok_r.h、usbredirparser.h、usbredirproto-compat.h、usbredirproto.h,作为你android JNI的头文件使用;

2。编译usbredirhost目录生成libusbredirhost.a
A.把 /usbredir-0.7下的config.h复制到/usbredir-0.7/usbredirhost/ 目录下
B.把/usbredir-0.7/usbredirparser/ 下的3个头文件 usbredirparser.h usbredirproto.h usbredirfilter.h 复制到/usbredir-0.7/usbredirhost/下
C.编写Android.mk文件,如下:

LOCAL_PATH  := $(call my-dir)
include $(CLEAR_VARS)
SPICE_CLIENT_ANDROID_DEPS   := $(LOCAL_PATH)/../libs/deps
LOCAL_MODULE    := libusbredirhost
LOCAL_SRC_FILES := usbredirhost.c 
LOCAL_C_INCLUDES += \
                    usbredirhost.h \
                    config.h
include $(BUILD_STATIC_LIBRARY)   

D.使用命令:

ndk-build NDK_PROJECT_PATH=. APP_BUILD_SCRIPT=./Android.mk

这样在本目录下就生成了obj目录,同样obj/local/armeabi/下找到libusbredirhost.a,需要配合本目录下的头文件:usbredirhost.h;

到此编译就完成了,有需要编译usbredirserver和usbredirtestclient的可以仿照上面两个进行编译,然后移植到Android下面去测试;

猜你喜欢

转载自blog.csdn.net/hubbybob1/article/details/78063443
今日推荐