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

网站的规划与建设案例分析电子商务网站建设的风险分析

网站的规划与建设案例分析,电子商务网站建设的风险分析,2022世界物联网,ai智能写作网站Windows下使用AndroidStudio及CMake编译Android可执行程序或静态库动态库 文章目录 Windows下使用AndroidStudio及CMake编译Android可执行程序或静态库动态库一、前言二、编译环境三、示例C/CPP程序1、总体工程结构2、示例代码3、CMakeLists.txt(重要)4、…

Windows下使用AndroidStudio及CMake编译Android可执行程序或静态库动态库

文章目录

  • Windows下使用AndroidStudio及CMake编译Android可执行程序或静态库动态库
    • 一、前言
    • 二、编译环境
    • 三、示例C/CPP程序
      • 1、总体工程结构
      • 2、示例代码
      • 3、CMakeLists.txt(重要)
      • 4、build脚本(重要)
      • 5、运行测试
    • 四、总结

一、前言

之前在Android Studio中编写NDK C/C++相关代码,通过Gradle和CMake编译成动态库,然后再利用JNI的方式进行调用。现在需要编译Android C/C++可执行程序,通过运行程序做一些小实验,而这些小实验都是纯C/C++编写,不包含任何Java代码,那么是否可以利用现成的环境进行开发呢?之前我是一直在虚拟机上安装NDK利用其带有的交叉编译工具链进行编译,但NDK的低版本和高版本变化比较大,比如高版本取消了gcc改为使用clang,因此导致在虚拟机上安装ndk进行编译的方式随着ndk版本的变化有了很多兼容问题,所以学会cmake独立编译方式在现阶段具有一劳永逸的效果。

二、编译环境

通过Android Studio内置的SDK Manager下载NDK和CMake,可参考:下载NDK和构建工具;
在这里插入图片描述

三、示例C/CPP程序

1、总体工程结构

由于单独运行camke命令来处理,因此工程结构比较灵活,可以将相关的代码都放到一个目录下,紧凑且方便查找。
在这里插入图片描述

2、示例代码

addTest.c:(我这里以加载静态库或动态库的方式做示例,实际场景中链接静态库或动态库更多,最好是使用静态库,拷贝动态库到Android设备上以及设置路径也挺麻烦的)

//
// Created by Administrator on 2023/12/5.
//
#include <stdio.h>
#include "addnum.h"int main()
{int res = addtwo(1, 2);printf("add test res:%d\n", res);return 0;
}

3、CMakeLists.txt(重要)

引入动态库、静态库以及生成可执行文件、静态库、动态库等方法都是很有用的:

# CMake最低版本号要求
cmake_minimum_required(VERSION 3.6)# 项目信息
project (addTest)#引入静态库
add_library(addnum STATIC IMPORTED)
set_target_properties(addnum PROPERTIES IMPORTED_LOCATION ${CMAKE_SOURCE_DIR}/libaddnum.a)
#引入动态库
#add_library(addnum SHARED IMPORTED)
#set_target_properties(addnum PROPERTIES IMPORTED_LOCATION ${CMAKE_SOURCE_DIR}/libaddnum.so)# 设置目标文件的名字
set(TARGET_NAME addTest)# 生成可执行文件
add_executable(${TARGET_NAME} addTest.c)
#生成静态库
#add_library(${TARGET_NAME} STATIC addTest.c)
#生成动态库
#add_executable(${TARGET_NAME} SHARED addTest.c)# 链接库
target_link_libraries(${TARGET_NAME} addnum)

4、build脚本(重要)

在执行cmake命令生成Android可执行文件时需要带上长长的参数,为了简化此步骤,这里编写一个脚本build.bat:

@REM set abi=armeabi-v7a
set abi=arm64-v8a
set ANDROID_SDK_HOME=C:/Users/Administrator/AppData/Local/Android/Sdkif not exist %abi% md %abi%
cd %abi%%ANDROID_SDK_HOME%/cmake/3.10.2.4988404/bin/cmake ^-DANDROID_ABI=%abi% ^-DANDROID_NDK=%ANDROID_SDK_HOME%/ndk-bundle ^-DCMAKE_BUILD_TYPE=Debug ^
@REM  -DCMAKE_BUILD_TYPE=Release^-DCMAKE_TOOLCHAIN_FILE=%ANDROID_SDK_HOME%/ndk-bundle/build/cmake/android.toolchain.cmake ^-DANDROID_NATIVE_API_LEVEL=9 ^-DANDROID_TOOLCHAIN=clang -DCMAKE_GENERATOR="Ninja" ^-DCMAKE_MAKE_PROGRAM=%ANDROID_SDK_HOME%/cmake/3.10.2.4988404/bin/ninja ^..%ANDROID_SDK_HOME%/cmake/3.10.2.4988404/bin/ninjacd ..

脚本中的3.10.2.4988404指的是CMake的版本,需要根据实际下载的CMake版本进行修改。
由于使用的是Windows系统,这里给出的是bat脚本,Linux/Mac的shell脚本可根据bat脚本进行相应的修改。

5、运行测试

使用Android手机通过USB数据线连接电脑,或者使用模拟器。将生成的可执行文件通过adb命令push到设备上的/data/local/tmp下即可,该路径具备运行程序的权限:

$ adb push addTest /data/local/tmp
$ adb shell
$ chmod 777 /data/local/tmp/addTest
$ /data/local/tmp/addTest
add test res:3

四、总结

之前一直使用ndk-build结合Android.mk在虚拟机上编译适用于Android的so,目前发现很多兼容问题,使用cmake方式后完美解决了,这里做下总结。此外,之前我们也总结过包含so和Java接口的jar包,都是采用cmake的方式,目前看来cmake方式要比Android.mk的方式要简单一些(除了命令比较长之外.),新的方式的掌握还是要靠官方文档以及自行尝试,一些关键点突破了之后就没有那么难了。

参考文档

  1. Android CMake(https://developer.android.com/ndk/guides/cmake?hl=zh_cn)
  2. 脱离AS在windows下使用CMake交叉编译for Android(https://blog.csdn.net/LLJJYY001/article/details/77866049)
http://www.yayakq.cn/news/466776/

相关文章:

  • 有关网站建设国内外现状的文献南平抖音搜索排名seo软件
  • 建设银行网站用户名忘了怎么办公司注册名字大全免费
  • 沈阳建设工程质量检测中心网站wordpress 被sql注入
  • 简繁英3合1企业网站生成管理系统互联网推广怎么找渠道
  • 如果是自已建设的网站_那你在数据库想改成什么时间都可以.手机网站设计字体多大
  • 网站开发文件夹组织结构在线购物网站建设的需求分析
  • 智能建网站软件h5作品网站
  • 开公司注册空头公司做网站wordpress利用视频引流
  • html5网站抓取上海市网站建
  • 网站关键词的作用网络推广平台排行榜
  • 时尚类网站建设伍佰亿是什么网站
  • 华为做网站吗兰州网站建设人才招聘
  • 公司做一个网站如何定位制作电子商务网站页面
  • 柳州网站虚拟主机销售价格哪个网站做加盟
  • 网站建设产品编辑的工作内容推广广告赚钱
  • 做游戏网站有钱赚吗专业网站开发平台
  • html5优秀企业网站如何开自己的网站
  • 青海省住建局和建设厅门户网站个人网站推广费用
  • 东莞seo网站优化排名东莞网站关键词优化公司
  • 填写网站信息北京营销型网站建站公司
  • 拖拽建站系统源码天天自学网网址
  • 连锁餐饮网站开发背景内容兰州网站seo分析
  • 我的网站百度找不到了微博个人网页设计模板
  • 制作简单门户网站步骤gooood谷德设计网站
  • 青岛网站建设培训班泰兴市住房和城乡建设局网站
  • 网站开发 在线数据库开远市住房和城乡建设局网站
  • 网站备案号注销查询系统平台推广营销方案
  • 俄文网站房产网站做那个比较好
  • 网站建设怎么说服客户九江seo公司
  • 网站建设费怎么写会计科目qq上如何做文学网站