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

网站模版如何去除title版权信息联盟营销是一种 的网络营销方式

网站模版如何去除title版权信息,联盟营销是一种 的网络营销方式,百度top风云榜,上海电商公司排名环境搭建 Android NDK开发实战之环境搭建篇(so库,Gemini ai)-CSDN博客 初始配置 前面已经运行了一个简单的初始程序#xff0c;现在我们来往初始程序添加类和函数#xff0c;并成功运行的实验。 一级配置 第一层配置主要是cmake文件环境和一些编译选项。 build配置 可参…环境搭建 Android NDK开发实战之环境搭建篇(so库,Gemini ai)-CSDN博客 初始配置 前面已经运行了一个简单的初始程序现在我们来往初始程序添加类和函数并成功运行的实验。 一级配置 第一层配置主要是cmake文件环境和一些编译选项。 build配置 可参考  #build配置externalNativeBuild {cmake {path file(src/main/cpp/CMakeLists.txt)version 3.22.1//cpp 编译选项cppFlags -fexceptions -stdc11//设置cstl为动态库 默认是静态库 arguments -DANDROID_STLc_shared}} 二级cmake配置 主要配置生成的动态库名称具体看注释 为了测试 我们创建一个hello类 #include iostream class hello { public:std::string getVersion(); };#include hello.h std::string hello::getVersion(){return v1.0 hello word; } #include jni.h #include string#include hello.h extern C JNIEXPORT jstring JNICALL //stringFromJNI是cfunction名称 Java_com_example_first_1ndk_1cpp_MainActivity_stringFromJNI(JNIEnv* env,jobject /* this */) {std::string helo Hello from first native C ;hello h;helo h.getVersion();return env-NewStringUTF(helo.data()); } 更改cmake把cpp文件加入 #cmake最低版本 cmake_minimum_required(VERSION 3.22.1)#最终项目名称 通过${CMAKE_PROJECT_NAME}获得 project(first_ndk_cpp)add_library(#生成的动态库名称${CMAKE_PROJECT_NAME}#生成库类型SHARED动态 默认静态SHARED#相关cpp文件 假设有全局变量交叉使用需要注意编译顺序。native-lib.cpphello.cpp)target_link_libraries(#最终生成目标库名称${CMAKE_PROJECT_NAME}# 链接其他目标库androidlog) MainActivity MainActivity 通常被认为是 Android 应用程序的主要入口点。 public class MainActivity extends AppCompatActivity {// 静态初始化块, 程序启动时调用static {//加载名为 first_ndk_cpp 的动态库System.loadLibrary(first_ndk_cpp);}private ActivityMainBinding binding;Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);//视图绑定binding ActivityMainBinding.inflate(getLayoutInflater());setContentView(binding.getRoot());// Example of a call to a native methodTextView tv binding.sampleText;tv.setText(stringFromJNI()); //java调用}/**这声明了一个名为 stringFromJNI 的本地方法。该实现位于 first_ndk_cpp 库中。*/public native String stringFromJNI(); } 运行 最后运行输出 小结 熟悉基本配置知道增加类代码如何重新编译成动态库使用。 动态库实战 场景编译两份版本动态库 分别输出v1和v2然后切换运行。 设置动态库导出路劲 前面操作我们成功编译出动态库。但是路劲很隐蔽其次规范处理。 实现方法 CMakeLists.txt 设置导出so路劲 CMAKE_ARCHIVE_OUTPUT_DIRECTORY 默认存放静态库的⽂件夹位置 CMAKE_LIBRARY_OUTPUT_DIRECTORY 默认存放动态库的⽂件夹位置 # 第一种做法单独设置动态库的默认输出路径 # 将动态库输出到 main/jniLibs/${ANDROID_ABI} 目录 # ${ANDROID_ABI} 是 Gradle 配置的 ABI 策略如 armeabi-v7a, arm64-v8a 等 set(CMAKE_LIBRARY_OUTPUT_DIRECTORY${CMAKE_CURRENT_SOURCE_DIR}/../libs/jniLibs/${ANDROID_ABI})# 第二种做法设置动态库和静态库的默认输出路径 # 将动态库和静态库输出到 main/jniLibs/${ANDROID_ABI} 目录 # 注意LIBRARY_OUTPUT_PATH 是旧版 CMake 的变量 #推荐使用 CMAKE_LIBRARY_OUTPUT_DIRECTORY 和 CMAKE_ARCHIVE_OUTPUT_DIRECTORY set(LIBRARY_OUTPUT_PATH${CMAKE_CURRENT_SOURCE_DIR}/../libs/jniLibs/${ANDROID_ABI}) 根据这个方法步骤编译两个版本 主要区别 std::string hello::getVersion(){return v2.0 hello word; } 尝试版本切换 //定义项目的源代码和资源文件的目录结构sourceSets {main {//指定 JNI 库文件.so 文件的存放目录jniLibs.srcDirs [src/main/libs/jniLibs]}} 小结 学习如何指定动态库导出路劲并根据动态库切换实现多种版本调用。 特定cpu架构实战 上述讨论了如何导出不同的动态库现在如果只想根据x86架构导出单个so库如何实现 先看看为什么需要指定cpu ⽣成指定cpu平台对应的so库⽂件 应⽤⼆进制接⼝(ABI)包含的内容 1、可执⾏⼆进制⽂件的格式以及⽀持的内容类型⼆进制⽂件如程序、共享库... 2、可使⽤的CPU指令集 3、运⾏时内存存储和加载的字节顺序 4、应⽤和系统之间传递数据的规范以及系统调⽤函数时如何使⽤堆栈、寄存器 5、如何重整C名称 abi与 指令集 Android 支持多种 CPU 架构每种架构对应不同的 ABI。以下是常见的 CPU 架构及其对应的 ABI CPU 架构ABI说明ARMv5armeabi32 位 ARM 架构已过时Android NDK r17 已不再支持。ARMv7armeabi-v7a32 位 ARM 架构支持硬件浮点运算和 NEON 指令集。ARMv8arm64-v8a64 位 ARM 架构支持 AArch64 指令集。MIPSmips32 位 MIPS 架构已过时Android NDK r17 已不再支持。MIPS64mips6464 位 MIPS 架构已过时Android NDK r17 已不再支持。x86x8632 位 Intel x86 架构主要用于模拟器和部分低端设备。x86_64x86_6464 位 Intel x86 架构主要用于模拟器和高性能设备。 ABI 兼容性是指应用程序在不同 CPU 架构上的运行能力。以下是各 ABI 的兼容性说明 ABI兼容性说明armeabi兼容 ARMv5 和 ARMv7但不兼容 ARMv864 位。armeabi-v7a兼容 ARMv7但不兼容 ARMv5 和 ARMv864 位。arm64-v8a兼容 ARMv864 位但不兼容 ARMv5 和 ARMv732 位。mips仅兼容 MIPS 架构已过时。mips64仅兼容 MIPS64 架构已过时。x86兼容 x86 架构同时兼容 armeabi 和 armeabi-v7a通过二进制翻译运行。x86_64兼容 x86_64 架构同时兼容 arm64-v8a通过二进制翻译运行。 x86 和 x86_64 的特殊性 x86主要用于模拟器和部分低端设备。通过二进制翻译可以运行 armeabi 和 armeabi-v7a 的代码但性能较低。 x86_64主要用于模拟器和高性能设备。通过二进制翻译可以运行 arm64-v8a 的代码。 ABI 配置 在 Android 项目中可以通过 Gradle 配置支持的 ABI。 android {defaultConfig {ndk {abiFilters armeabi-v7a, arm64-v8a, x86, x86_64}} } 小结 ARM 架构armeabi-v7a 和 arm64-v8a 是当前主流的架构。 x86 架构主要用于模拟器通过二进制翻译可以运行 ARM 架构的代码。 ABI 配置通过 Gradle 的 abiFilters 指定支持的 ABI。 问题 当遇到不能run编译没错误信息则进行sync now即可解决 学习资料分享 0voice · GitHub
http://www.dnsts.com.cn/news/275565.html

相关文章:

  • 郑州建设网站推广公司晋城做网站的
  • 站长工具如何使用html编辑器安卓版 中文
  • 做鞋用什么网站好自己注册网站要多少钱
  • 企业网站 asp.net软件营销方案
  • 设计一套企业vi多少钱seo优化师是什么
  • 做网站还有价值吗今天广州新增确诊最新消息
  • 腾讯云网站托管管理咨询公司名字大全
  • 网站开发与推广方向哪个网站可以做面料订单
  • 成品网站建设流程吉林网站开发公司
  • 查找网站备案信息深圳网站建设 湖南岚鸿
  • wordpress 显示置顶文章百度免费优化
  • 南京专业网站制作哪家好建站语言
  • 代码怎么做网站做矿业的郑州公司网站
  • 沈阳网站seo外包手机网站适配
  • 宁波网站建设找哪家好响应式网页设计实例
  • 物流网站平台建设免费的微商加人软件
  • 三亚旅游网站建设长沙关键词优化新报价
  • 深圳查询建设项目规划的网站大庆免费网站建设
  • 手机app制作网站公司注册地址在哪里看
  • 小牛门户网站公司车辆管理系统软件
  • 女人网上量体做衣网站做网站的销售员电话话术
  • 网站开发前端和后端怎么连接帕绍网站建设
  • 控制面板网站网站开发容易吗
  • 长沙医考网站建设公司中国八冶建设集团网站
  • 网站有多难做toxue外贸网
  • 网站设计文档模板h5做的网站
  • 北京网站优化推广分析商服网站模板
  • 湘潭网站建设哪些公司网站多网合一
  • 兰州网站建设招聘如何防止网站被注册
  • 备案网站ip地址莱芜都市网招聘