用vs2008编译adb步骤

本文提供了一篇详细的指南,教你如何使用vs2008编译adb(Android Debug Bridge),包括编译adb所需的文件、头文件、引用文件以及宏定义等关键信息。步骤清晰,适合开发者参考。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

用vs2008编译adb步骤

编译adb的时候要编译三个部分:AdbWinApi.dll,AdbWinUsbApi.dll和adb.exe。由于三个之间存在依赖关系,所以编译的顺序不能乱,依次为AdbWinApi.dll,AdbWinUsbApi.dll和adb.exe。

在我开始着手编译之前,网上关于在vs2008的编译步骤说明很少,基本都是现成配置好的工程文件,但其实这些编译好的工程文件参考价值并不大。

通过翻墙顺利下载完android的源码,发现google的文档写的真的很仔细,只要按照说明文档基本就可以搞定,不用像无头苍蝇一样到处百度谷歌,无从下手。

1.         AdbWinApi.dll

这部分的源码位置在development\host\windows\usb\api。编译这部分只要参考BUILDME.txt和SOURCES这两个文本文档就可以了。这两个文档详细告诉了编译的注意事项和配置,按照文档配置到vs2008工程当中就可以直接编译了,基本一帆风顺。

2.         AdbWinUsbApi.dll

这部分的源码位置在development\host\windows\usb\winusb。编译这部分的步骤与AdbWinApi.dll一样,同样参考文件下的BUILDME.txt和SOURCES这两个文件。

3.         adb.exe

编译adb是最麻烦的,绝大部分的时间都花在这个时间了。这部分的源码位置在system\core\adb下面,在这个目录中,OVERVIEW.TXT对adb的机制做了一个介绍,protocol.txt介绍了adb与adbd之间的通信协议,SERVICES.TXT介绍了adb的命令。

编译这部分的时候我参考的是Android.mk,这个文件的语法和makefile的语法差不多,按照这个里面的说明进行编译的。这个文档介绍了三种编译,只要选第一个就好了。编译的时候我按照Android.mk文档中的说明,一个一个文件编译的,否则所有文件中一起编译,错误太多眼花缭乱的。

下面列出编译adb所需要的文件

文件名称

andriod源码位置

备注

adb.c

system\core\adb

 

adb_auth_host.c

system\core\adb

 

adb_client.c

system\core\adb

 

centraldir.c

system\core\libzipfile

 

commandline.c

system\core\adb

 

console.c

system\core\adb

 

file_sync_client.c

system\core\adb

 

get_my_path_windows.c

system\core\adb

 

list.c

system\core\libcutils

 

services.c

system\core\adb

 

sockets.c

system\core\adb

 

sysdeps_win32.c

system\core\adb

 

transport.c

system\core\adb

 

transport_local.c

system\core\adb

 

transport_usb.c

system\core\adb

 

usb_vendors.c

system\core\adb

 

usb_windows.c

system\core\adb

 

utils.c

system\core\adb

 

zipfile.c

system\core\libzipfile

 

 

下面列出头文件

文件名称

andriod源码位置

备注

adb.h

system\core\adb

 

adb_auth.h

system\core\adb

 

adb_client.h

system\core\adb

 

fdevent.h

system\core\adb

 

file_sync_service.h

system\core\adb

 

mutex_list.h

system\core\adb

 

private.h

system\core\libzipfile

 

sysdeps.h

system\core\adb

 

transport.h

system\core\adb

 

unistd.h

 

linux系统文件,直接从linux系统上拷贝出来

usb_vendors.h

system\core\adb

 

utils.h

system\core\adb

 

下面是引用的其它文件

文件名称

andriod源码位置

备注

cutils\list.h

system\core\include

 

cutils\sockets.h

system\core\include

 

mincrypt\rsa.h

system\core\include

 

mincrypt\sha.h

system\core\include

 

zipfile\zipfile.h

system\core\include

 

openssl\*.h

external

 

zlib\*.h

external

 

usb100.h

WinDDK\inc\api

微软官网下载winDDk

第三方库

文件名称

来源

备注

libeay32MT.lib

百度下载

openssl静态链接库

http://www.openssl.org/

ssleay32MT.lib

百度下载

openssl静态链接库

http://www.openssl.org/

zdll.lib

百度下载

zlib静态链接库

http://www.openssl.org/

ws2_32.lib

系统库文件

 

AdbWinApi.lib

第一步编译好的库文件

 

 

所需要的宏定义

WIN32

_DEBUG

_CONSOLE

ADB_HOST

HAVE_WIN32_IPC

HAVE_WIN32_PROC

HAVE_WINSOCK

通过上面的步骤adb的整个工程就算创建成功了。下面的话就是编译过程。由于编译器和平台通过,在linux下编译通过在vs2008平台下还要进行修改。这是一个比较繁复的过程。我采用的方法是一个文件一个文件编译,这样不至于报一大堆错误搞得头疼。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值