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

网站建站平台 开源网站开发的标准

网站建站平台 开源,网站开发的标准,蜘蛛网网站建设分析,wordpress订阅地址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.w-s-a.com/news/408130/

相关文章:

  • 政务服务网站建设整改报告wordpress的导航代码
  • 图片素材网站建设做教育网站用什么颜色
  • 快站淘客中转页wordpress商业插件
  • 可信网站网站认证免费软件下载网站免费软件下载网站
  • 小学生网站制作最新域名网站
  • 奖励网站代码设计制作ppt时
  • 茂名优化网站建设门户网站和部门网站的区别
  • 一尊网 又一个wordpress站点wordpress获取当前文章名称
  • 营销型网站多少钱新建网站的外链多久生效
  • 网站空间怎么选择tp5企业网站开发百度云
  • 网站建设saas排名成立公司的流程和要求及费用
  • 网站建设共享骨科医院网站优化服务商
  • 肯尼亚网站域名万能进销存软件免费版
  • 做商城网站价格上海做网站建设
  • 广州制作外贸网站公司阿里云网站模板
  • 做网站为什么要买服务器十堰城市建设网站
  • 西安网站seo技术厂家东莞如何制作免费的网页
  • 做旅游的网站的目的和意义极限优化wordpress
  • 做美食视频网站有哪些品牌营销策划机构
  • 佛山知名营销网站开发wordpress可视化编辑器排行
  • 石岩做网站哪家好石家庄做网站设计
  • 建设网站需要冠县做网站
  • 保定网站seo哪家公司好wordpress教程视频下载
  • 网站开发 哪些文档网站海外推广方法
  • 广西建设局网站首页如何做条形码网站怎么搞
  • 琼海建设网站wordpress 商城站下载地址
  • 网站需要多大数据库divider wordpress
  • 兰州北京网站建设网络广告推广网站
  • 宁晋网站建设森网站建设
  • 网站没有收录原因trel域名