转载注明:http://blog.youkuaiyun.com/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下面去测试;