在NDK开发中经常会出现应用Crash的情况,而JNI层的报错信息,不像Java层报错信息那样可以直接在日志中看到错误的行数,JNI层中出现的错误直接看根本定位不到错误的位置。通常来说,JNI报的基本都是堆栈信息,需要NDK的一些工具进行地址转换,转换后即可看到错误的位置。addr2line就是这些地址转换的工具。一、环境配置1、工具路径 路径一般都在Sdk/ndk下工具选择 可以看到在toolchains下有多个选择,这应该是根据需要解析的so库类型进行选择,这里我选择了第一个。bin路径 配置环境变量 将上面的bin路径复制到环境变量中
在NDK开发中经常会出现应用Crash的情况,而JNI层的报错信息,不像Java层报错信息那样可以直接在日志中看到错误的行数,JNI层中出现的错误直接看根本定位不到错误的位置。通常来说,JNI报的基本都是堆栈信息,需要NDK的一些工具进行地址转换,转换后即可看到错误的位置。addr2line就是这些地址转换的工具。一、环境配置1、工具路径 路径一般都在Sdk/ndk下工具选择 可以看到在toolchains下有多个选择,这应该是根据需要解析的so库类型进行选择,这里我选择了第一个。bin路径 配置环境变量 将上面的bin路径复制到环境变量中
问题在项目中需要对用户敏感数据进行脱敏处理,例如身份号、手机号等信息进行加密再入库。解决思路就是:一种最简单直接的方式,在所有涉及数据敏感的查询到对插入时进行密码加解密方法二:有方法一到出现对所有重大问题的影响,需要考虑到问题的出现,并且需要考虑可能出现的组员时添加数据的方法。最后决定采用mybatis的插件在mybatis的SQL执行和结果填充操作上进行切入。上层业务调用不再需要考虑数据的加敏同时也保证了数据的加解密Mybatis插件原理Mybatis的是通过拦截器实现的,Mabatis支持对当事人进行拦截实现设置对参数中带有敏感参数字段的数据时进行加密对返回的结果进行解密处理根据不同的要求
问题在项目中需要对用户敏感数据进行脱敏处理,例如身份号、手机号等信息进行加密再入库。解决思路就是:一种最简单直接的方式,在所有涉及数据敏感的查询到对插入时进行密码加解密方法二:有方法一到出现对所有重大问题的影响,需要考虑到问题的出现,并且需要考虑可能出现的组员时添加数据的方法。最后决定采用mybatis的插件在mybatis的SQL执行和结果填充操作上进行切入。上层业务调用不再需要考虑数据的加敏同时也保证了数据的加解密Mybatis插件原理Mybatis的是通过拦截器实现的,Mabatis支持对当事人进行拦截实现设置对参数中带有敏感参数字段的数据时进行加密对返回的结果进行解密处理根据不同的要求
一、开发环境操作系统:Ubuntu18.04LTS显卡:NVIDIARTX2080Super显卡驱动:专有驱动450.142.00CUDA:10.2PyCharm版本:2020.2.5二、问题描述最近在GitHub上闲逛,Git了一个YOLOv3目标检测的项目。Git下来并且配置好环境开始运行,发现TensorFlow找不到动态库libcudart.so.10.1。开始能够想到的原因是我在本地安装的CUDA版本是10.2,项目的Tensorflow版本是2.1.0,两者可能不适配。我首先尝试在COCO数据集上运行模型训练算法,发现是可以运行的,只是训练的速度实在有点慢。看了下输出信息,发现Te
一、开发环境操作系统:Ubuntu18.04LTS显卡:NVIDIARTX2080Super显卡驱动:专有驱动450.142.00CUDA:10.2PyCharm版本:2020.2.5二、问题描述最近在GitHub上闲逛,Git了一个YOLOv3目标检测的项目。Git下来并且配置好环境开始运行,发现TensorFlow找不到动态库libcudart.so.10.1。开始能够想到的原因是我在本地安装的CUDA版本是10.2,项目的Tensorflow版本是2.1.0,两者可能不适配。我首先尝试在COCO数据集上运行模型训练算法,发现是可以运行的,只是训练的速度实在有点慢。看了下输出信息,发现Te
最近华为商店平台已经要求App64位才能上架了。在下半年,所有平台都差不多会强制要求。在不久,硬件也只支持64位了,意味着,32位以后将会被淘汰。好巧不巧,最近处理的以前别人的项目,刚好全是32位的,下手特别狠,可能为了代码量小,直接把64位的so包删掉了。那么直接开门见山,讲重要几点一:设置64位的代码defaultConfig{ndk{abiFilters"armeabi-v7a"//如果添加armeabi-v7a就必须添加arm64-v8aabiFilters"arm64-v8a"abiFilters"x86"//添加x86必须添加x86_64abiFilters"x86_64"}}二:
Android开发之引用三方库导致SO库冲突的解决办法微信图片_20220416170320.png从这个图片可以看出匹配到了多个libc++_shared.sopackagingOptions{pickFirst'lib/armeabi/libc++_shared.so'pickFirst'lib/armeabi-v7a/libc++_shared.so'pickFirst'lib/arm64-v8a/libc++_shared.so'pickFirst'lib/x86/libc++_shared.so'pickFirst'lib/x86_64/libc++_shared.so'}packa
最近华为商店平台已经要求App64位才能上架了。在下半年,所有平台都差不多会强制要求。在不久,硬件也只支持64位了,意味着,32位以后将会被淘汰。好巧不巧,最近处理的以前别人的项目,刚好全是32位的,下手特别狠,可能为了代码量小,直接把64位的so包删掉了。那么直接开门见山,讲重要几点一:设置64位的代码defaultConfig{ndk{abiFilters"armeabi-v7a"//如果添加armeabi-v7a就必须添加arm64-v8aabiFilters"arm64-v8a"abiFilters"x86"//添加x86必须添加x86_64abiFilters"x86_64"}}二:
Android开发之引用三方库导致SO库冲突的解决办法微信图片_20220416170320.png从这个图片可以看出匹配到了多个libc++_shared.sopackagingOptions{pickFirst'lib/armeabi/libc++_shared.so'pickFirst'lib/armeabi-v7a/libc++_shared.so'pickFirst'lib/arm64-v8a/libc++_shared.so'pickFirst'lib/x86/libc++_shared.so'pickFirst'lib/x86_64/libc++_shared.so'}packa