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

做一个企业网站的费用网络优化器

做一个企业网站的费用,网络优化器,诸暨东莞网站建设公司,wordpress 2个菜单做中英文文章目录 背景过程第一个坑第二个坑 arm64-v8a 和 armeabi-v7a的区别实例64位#xff0c;Android设备CPU:arm64-v8a32位#xff0c;Android设备CPU:armeabi-v7a 基本数据类型在32位和64位的区别指针长度在32位和64位的区别 其他可能性chatgpt回答参考 背景 使用NDK开发项目的… 文章目录 背景过程第一个坑第二个坑 arm64-v8a 和 armeabi-v7a的区别实例64位Android设备CPU:arm64-v8a32位Android设备CPU:armeabi-v7a 基本数据类型在32位和64位的区别指针长度在32位和64位的区别 其他可能性chatgpt回答参考 背景 使用NDK开发项目的一个安全库的时候踩了一个坑。在这里做一个记录和总结避免以后重复踩坑。 需求开发安全库用作密钥加密解密体系位非对称密钥体系。 经历使用的是合作公司提供的C源码通过JNI接入C代码提供给Java层调用。 过程 第一个坑 运行的时候Android stduio显示列链接错误怀疑是CMake的问题。新建一个test.c和test.h可以正常运行。发现是C源码里面没有加上 #ifdef __cplusplus extern C { #endif //c代码声明 #ifdef __cplusplus }; #endif导致C链接时候和C的符号对不上链接失败坑的地方在于编译器没有提示这个问题。只能这样试出来。 第二个坑 前面几个接口可以正常运行中间某个接口不能打印程序不崩溃只是不能打印。 同样的代码在Linux设备可以正常运行。 debug进去C源码里面进行代码review和数据观察分析发现里面定义了long 、long long之类的变量。每次在某些循环操作里面断开debug。没能找出原因。 在代码里面加上数据打印在怀疑的代码段加上大量的打印日志观察数据是否越界。数据太多也发现也没有越界导致crash。 调试和思路了半天没有思路了。那另外一台机器来跑一下bingo 居然可以正常打印结果值了。 首先第一件想到的是可能是cpu架构不同导致的。 第一台机器是arm64-v8a第二台测试正常的cpu是armeabi-v7a。 好吧他们的区别是一台是64位一台是32位。 怀疑就是不同位数cpu里面数据长度不同导致的。 arm64-v8a 和 armeabi-v7a的区别 在Android开发中arm64-v8a 和 armeabi-v7a 是两种不同的CPU架构。arm64-v8a 适用于64位ARM处理器而 armeabi-v7a 适用于32位ARM处理器。 先来跑一个实例看看。 实例 void print64And32(){//写一个代码32位机器上运行时输出sizeof指针的结果是多少64位机器上运行时输出sizeof指针的结果是多少LOGD(sizeof(int) %d\n, sizeof(int));LOGD(sizeof(long) %d\n, sizeof(long));LOGD(sizeof(long long) %d\n, sizeof(long long));LOGD(sizeof(char) %d\n, sizeof(char));LOGD(sizeof(float) %d\n, sizeof(float));LOGD(sizeof(double) %d\n, sizeof(double));LOGD(sizeof(void *) %d\n, sizeof(void *));LOGD(sizeof(char *) %d\n, sizeof(char *));LOGD(sizeof(int *) %d\n, sizeof(int *));LOGD(sizeof(long *) %d\n, sizeof(long *));LOGD(sizeof(long long *) %d\n, sizeof(long long *));LOGD(sizeof(float *) %d\n, sizeof(float *));LOGD(sizeof(double *) %d\n, sizeof(double *));}64位Android设备CPU:arm64-v8a sizeof(int) 4 sizeof(long) 8 sizeof(long long) 8 sizeof(char) 1 sizeof(float) 4 sizeof(double) 8 sizeof(void *) 8 sizeof(char *) 8 sizeof(int *) 8 sizeof(long *) 8 sizeof(long long *) 8 sizeof(float *) 8 sizeof(double *) 832位Android设备CPU:armeabi-v7a sizeof(int) 4 sizeof(long) 4 sizeof(long long) 8 sizeof(char) 1 sizeof(float) 4 sizeof(double) 8 sizeof(void *) 4 sizeof(char *) 4 sizeof(int *) 4 sizeof(long *) 4 sizeof(long long *) 4 sizeof(float *) 4 sizeof(double *) 4基本数据类型在32位和64位的区别 从上述实测可以知道在32位机器上基本数据类型的大小如下 int4字节long4字节long long8字节char1字节float4字节double8字节 在64位机器上基本数据类型的大小如下 int4字节long8字节long long8字节char1字节float4字节double8字节 需要注意的是指针的大小在32位和64位机器上都是相同的都是8字节。 指针长度在32位和64位的区别 32位机器上运行时输出sizeof指针的结果是4。 64位机器上运行时输出sizeof指针的结果是8。 其他可能性 架构相关的问题 你的应用程序可能包含了特定于 arm64-v8a 架构的代码而这段代码在 armeabi-v7a 上无法正确运行。确保你的应用程序中没有架构相关的问题并且所有的本地代码都是通用的。 依赖库问题 如果你的应用程序使用了本地库例如C/C库这些库可能是特定于 arm64-v8a 的。确保你的应用程序包含适用于 armeabi-v7a 的版本的这些库。 指令集兼容性 arm64-v8a 使用ARMv8-A指令集而 armeabi-v7a 使用ARMv7-A指令集。确保你的应用程序中的本地代码对目标指令集是兼容的。 ABI Filters 在你的 build.gradle 文件中可能设置了 ABI Filters导致只有 arm64-v8a 被打包到 APK 中。检查你的构建配置确保包含了 armeabi-v7a 的支持。 chatgpt回答参考 当你的 C 代码在 32 位处理器上能够正常运行但在 64 位处理器上出现问题时可能有一些常见的原因 指针大小和类型问题 64 位处理器上的指针大小为 8 字节而在 32 位处理器上为 4 字节。如果你的代码中存在对指针大小的假设或者类型转换问题可能导致在 64 位系统上出现问题。请确保你的代码对指针操作和类型大小有正确的处理。 整数溢出 如果你的代码依赖于特定的整数大小可能会在 64 位系统上溢出。在 64 位系统上int 类型仍然是 32 位但 long 类型变为 64 位。确保你的代码中没有整数溢出的问题。 对齐问题 在 64 位系统上对齐要求可能更加严格。如果你的代码依赖于特定的数据结构对齐方式确保你的结构体或变量的对齐方式是正确的。 未初始化变量 64 位系统上的内存布局可能与 32 位系统不同。确保你的代码中所有的变量都被正确初始化以防止使用未初始化的内存。 依赖的库或第三方代码 如果你的代码依赖于特定的库或第三方代码确保这些库在 64 位系统上是兼容的。有时问题可能并不是在你的代码中而是在你依赖的库中。 汇编语言代码 如果你的代码包含了汇编语言部分确保这些汇编语言代码是对 64 位系统的正确支持。 总体而言要确保 C 代码能够在 64 位处理器上正确运行需要注意 32 位和 64 位系统之间的差异并确保代码中没有与平台相关的假设。最好的做法是使用编译器提供的宏来处理不同平台的区别以确保代码的可移植性。
http://www.w-s-a.com/news/775912/

相关文章:

  • 韩雪冬网站手机网站开发 宽度
  • 奉贤专业做网站新手怎么做企业网站
  • 做网站用哪几个端口 比较好手机号网站源码
  • 手机免费代理ip网站那个旅游网站做攻略最好
  • 西安做网站找哪家公司好苏州专业网站建设开发
  • dedecms如何做网站网站设计实施方案
  • 网站建设合约品牌设计有哪些
  • 织梦企业门户网站宝塔搭建wordpress网站
  • 网站为什么没有排名了11月将现新冠感染高峰
  • 网站开发维护专员岗位职责辽阳企业网站建设
  • 做外国订单有什么网站网站设计论文提纲
  • 商城网站建设报价方案导师让做网站
  • 清远市企业网站seo联系方式动易官方网站
  • 手机上怎么做能打开的网站一级域名和二级域名跨域
  • 网站首页效果图wordpress 在线教育
  • 电商网站开发团队广西桂林商贸旅游技工学校
  • 网站模板文件怎么下载东莞常平镇邮政编码
  • 建网站需要什么wordpress误删的后果
  • wordpress无插件实现网站地图做阿里巴巴网站店铺装修费用
  • 英文互动网站建设南宁住房和城乡建设局网站
  • 威海微网站建设乐清建网站哪家强
  • 网站和app的开发成本saas系统开发教程
  • ps切片工具做网站大气简洁网站
  • 网至普的营销型网站建设wordpress邮箱验证插件下载
  • 找权重高的网站方法张家港早晨网站建设
  • WordPress数据库添加管理员关键词优化举例
  • 河南国基建设集团--官方网站wordpress qode
  • 做农村电子商务的网站有哪些内容静态网站模板古典
  • 导航网站设计方案个人网站推广方法
  • 网站排名易下拉教程防wordpress花园