当前位置: 首页 > news >正文

合肥公司门户网站制作网站建设协议书模板 完整版

合肥公司门户网站制作,网站建设协议书模板 完整版,贵阳做网站好的公司,威海网站建设公司排名adb tool 分为 adb 和 adbd。 adb 用作 host 使用#xff0c;包含了client和server#xff0c;adbd 则作为 device 端#xff0c;在 android 源码目录下#xff0c;共用一套源码。但 android 源码下的 adb#xff0c;不支持把 adb 编译为 android 平台的 adb client。因此…adb tool 分为 adb 和 adbd。 adb 用作 host 使用包含了client和serveradbd 则作为 device 端在 android 源码目录下共用一套源码。但 android 源码下的 adb不支持把 adb 编译为 android 平台的 adb client。因此需要自己进行交叉编译。 参考链接 https://blog.csdn.net/disappears_nick/article/details/117031743 https://gitee.com/jackackcheng/android-tools-4.2.2 1. 下载源码 参考上面的链接直接使用经过版本验证源码。 git clone https://gitee.com/jackackcheng/android-tools-4.2.2由于平台架构是aarch64的android11因此一般的工具链可能用不了。下载 android-ndk-r25c 里面包含有 aarch64-linux-android30-clang 工具链位于 android-ndk-r25c/toolchains/llvm/prebuilt/linux-x86_64/bin/ 。 添加临时环境变量 export PATH$PATH:$path/android-ndk-r25c/toolchains/llvm/prebuilt/linux-x86_64/bin/可以编译个简单的helloworld放到android上看看能不能运行测试工具链是否可用。 2. 编译zlib 解压 zlib-1.2.11.tar.gz : tar -xzvf zlib-1.2.11.tar.gz配置编译环境 ./configure --prefix$(pwd)/../libz --static由于 clang 编译器和 gcc 编译器的命令规则不一样因此直接上面配置环境时指定工具链会有问题。 因此在配置好环境后通过直接修改Makefile来解决这个问题。执行上述命令后目录下会生成 Makefile。打开Makefile修改其中和工具链相关的配置 CCaarch64-linux-android30-clang LDSHAREDaarch64-linux-android30-clang CPPaarch64-linux-android30-clang ARllvm-ar RANLIBllvm-ranlib每次执行 ./configure 都会导致Makefile的重新生成。可以在修改后对Makefile做个备份。 编译 make -j20 make install -j20安装后会在上层目录 libz 下生成 include 和 lib 包含了供我们使用的头文件和静态库。 3. 编译openssl 和编译zlib一样先配置好环境然后修改 Makefile指定 aarch64-linux-android30-clang 作为工具链。 解压 openssl-1.0.0e.tar.gz: tar -xzvf openssl-1.0.0e.tar.gz配置编译环境 ./Configure static os/compiler:aarch64-linux-android30-clang --prefix$(pwd)/../libopenssl修改Makefile CC aarch64-linux-android30-clang AR llvm-ar $(ARFLAGS) r RANLIB llvm-ranlib NM llvm-nm编译 make -j20 make install 安装后会在上层目录 libopenssl 下生成 include 和 lib 包含了供我们使用的头文件和静态库。 4. 编译adb 进入到 android-tools-4.2.2/core/adb 目录下里面已经由写好的 Makefile了只需要修改工具链即可。这里我们使用静态链接方便直接拷贝adb进行使用避免环境问题。 修改Makefile指定编译生成的 zlib 和 openssl 的头文件路径和静态库文件路径 CC:aarch64-linux-android30-clangCPPFLAGS -I/media/data1/library/tmp/2_adb/android-tools-4.2.2/libopenssl/include CPPFLAGS -I/media/data1/library/tmp/2_adb/android-tools-4.2.2/libz/includeLIBS -lc -pthread /media/data1/library/tmp/2_adb/android-tools-4.2.2/libz/lib/libz.a /media/data1/library/tmp/2_adb/android-tools-4.2.2/libopenssl/lib/libcrypto.a编译 make -j20不出意外目录下会生成 adb 这个上传到 android 上就可以用了。 5. 使用问题 通过上述流程编译的 adb在 android 上运行是没有问题了。但是确无法识别设备需要解决一些bug才行。 下面是遇到的问题和解决办法。 5.1 无法启动 server / # adb devices * daemon not running. starting it now on port 5040 * * daemon started successfully * ** daemon still not running error: cannot connect to daemon这个问题在交叉编译到 aarch64 的 Linux上时不会出现。 如果 $HOME 目录下面有 .android/adb_usb.ini 文件会从这个文件中读取 usb vendor id。 if (get_adb_usb_ini(temp, sizeof(temp)) 0) {FILE * f fopen(temp, rt);if (f ! NULL) {/* The vendor id file is pretty basic. 1 vendor id per line.Lines starting with # are comments */while (fgets(temp, sizeof(temp), f) ! NULL) {if (temp[0] #)continue;long value strtol(temp, NULL, 0);printf(vendor id: 0x%lx\n, value);if (errno EINVAL || errno ERANGE || value INT_MAX || value 0) {printf(errno: %s\n, strerror(errno));fprintf(stderr, Invalid content in %s. Quitting.\n, ANDROID_ADB_INI);exit(2);}vendorIds[vendorIdCount] (int)value;/* make sure we dont go beyond the array */if (vendorIdCount VENDOR_COUNT_MAX) {break;}}}}这里 errno 在 main 函数进入时就已经是 Invalid argument 状态了因此在这里会导致程序退出。暂不清楚是什么原因导致的 errno 是错误状态。因此在 main 最开始的地方 把 errno 置 0即可。 int main(int argc, char **argv) {errno 0; #if ADB_HOST }5.2 ADB server didn’t ACK / # adb devices service: host:devices * daemon not running. starting it now on port 5040 * ADB server didnt ACK * failed to start daemon * error: cannot connect to daemon和上述原因一样是由于errno问题意外退出导致的。adb 会默认先fork一个进程运行 adb server然后通过管道读取输出信息读取到 “OK\n” 后才会往下执行。在读取 OK 的位置添加读取信息并打印发现读取到的是如下内容 temp: Invalid content in adb_usb.ini. temp: Quitting.fork 的 子进程启动 server 时遇到 5.1 无法启动 server 的问题退出并打印上述错误信息然后被父进程读到。 5.3 无法识别到device 默认adb只识别支持的 usb vendor id 列表的设备。如果设备不在支持列表那么是无法识别的。需要添加 device 的 usb vendor id 到 usb_vendor.c 中 /** built-in vendor list */ int builtInVendorIds[] {VENDOR_ID_GOOGLE,VENDOR_ID_INTEL,VENDOR_ID_HTC,VENDOR_ID_SAMSUNG,VENDOR_ID_MOTOROLA,VENDOR_ID_LGE,VENDOR_ID_HUAWEI,VENDOR_ID_ACER,VENDOR_ID_SONY_ERICSSON,VENDOR_ID_FOXCONN,VENDOR_ID_DELL,VENDOR_ID_NVIDIA,0x2c7c,....或者 创建 $HOME/.android/adb_usb.ini 文件将需要识别设备的 usb vendor id写入到这个文件中 echo 0x2c7c $HOME/.android/adb_usb.ini/ # adb devices List of devices attached f9618ed6 device emulator-5554 device
http://www.hkea.cn/news/14272142/

相关文章:

  • wordpress做网站怎么样温州网站建设和运营
  • 怎样建官方网站商务网站需求说明书
  • 建设企业网站平台书本翻页 网站模板
  • 研学网站平台建设方案上海知名的网站建设公
  • asp网站如何建设长沙百度快速排名优化
  • 找外包公司做网站给源码吗wordpress 外网访问
  • 商业网站 技术网站横幅背景图片
  • 做招聘网站的怎么让人注册简历wordpress设置导航条
  • 做网站要钱吗?企业vi设计主要包括哪些内容
  • 情侣博客网站模板下载青岛网站定制开发
  • 自己的电脑做服务器搭建网站企业网站如何宣传
  • 没有网站怎么推广网站中文通用网址域名
  • 遵义祥云平台网站建设企业网站cms程序
  • 网站开发使用的技术有哪些自己制作头像app软件
  • python做音乐网站软件外包怎么样
  • 中国网站访问量排行可以兑换微信红包的捕鱼游戏
  • 做基网站wordpress 漏洞 利用
  • 无锡网站商城建设网站设计需要什么技术
  • 杭州老牌的网站建设新闻页面设计
  • wordpress安装脚本seo技术最新黑帽
  • 自己服务器建网站 备案创建个人网站的流程
  • 教外国人做中国菜网站成都sem优化
  • 做影视网站会侵权犯法吗顺口大气三个字公司名字
  • 学校网站建设基本流程网络营销推广的方式和特点
  • winxp下做网站苏州园区体检中心
  • 西语网站域名2345推广联盟
  • 网站建设 需求网络编程技术期末考试
  • 申请微官网的网站太原做网站
  • 广东科技网站建设阳春网站开发
  • 南京外贸网站建设公司衡水商城网站制作