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

深圳网站维护深圳网站制作公司

深圳网站维护,深圳网站制作公司,山西太原网站建设公司有哪些,电影网站设计毕业论文文章目录前言Android-NDK使用NDK目录结构主流的Android NDK交叉编译前言 交叉编译是指在一种计算机体系结构上编译和构建应用程序,但是生成的可执行文件和库是针对另一种不同的体系结构,比如ARM、MIPS、PowerPC、x86 等。 常见的交叉编译工具集&#x…

文章目录

    • 前言
    • Android-NDK使用
    • NDK目录结构
    • 主流的Android NDK交叉编译

前言

交叉编译是指在一种计算机体系结构上编译和构建应用程序,但是生成的可执行文件和库是针对另一种不同的体系结构,比如ARM、MIPS、PowerPC、x86 等。

常见的交叉编译工具集:

  • GNU 工具链:比如编译ARM64架构可以使用gcc-aarch64-linux-gnu工具,并可以使用gdb-multiarch工具来进行调试,一般用qemu来运行多架构的可执行文件然后使用gdb-multiarch进来远程调试
  • Clang/LLVM 工具链:Clang/LLVM 工具链支持许多不同的架构和操作系统
  • Android NDK:专门为 Android 平台提供的交叉编译工具集。使用的编译工具链为Clang/LLVM
  • Microsoft Visual Studio 工具集:Microsoft Visual Studio 提供了一些用于 Windows 平台的交叉编译工具,包括 Visual C++ 工具集、Windows SDK 和 WDK。
  • Intel C++ 编译器:Intel C++ 编译器支持多种架构和操作系统,包括 IA-32、Intel 64、ARM 等。

Android-NDK使用

为了进行交叉编译,需要为每种目标 CPU 架构配置相应的编译工具链和系统头文件,那么就需要下载NDK工具包里面包含了:

  • Clang/LLVM 交叉编译的工具集和GNU 工具集(现在一般都是用Clang/LLVM)
  • 库文件 libc、libm、libz、liblog 等
  • JNI Android 平台的所有系统头文件和 API,比如
    • OpenGL ES
    • OpenSL ES
    • Vulkan
    • MediaCodec
  • 调试工具比如gdb\lldb,NDK还提供了一个ndk-gdb这个文件是一个python脚本文件通过封装adb+gdb的方式来远程调试

NDK目录结构

$ wget https://dl.google.com/android/repository/android-ndk-r21e-darwin-x86_64.zip
#我是OSX系统则下载darwin版本$ ls                                           
CHANGELOG.md/      ndk-gdb*           shader-tools/
NOTICE             ndk-stack*         simpleperf/
NOTICE.toolchain   ndk-which*         source.properties
README.md/         package.xml        sources/
build/             platforms/         sysroot/
meta/              prebuilt/          toolchains/
ndk-build*         python-packages/   wrap.sh/

工具(外层是一个链接壳):

  • ndk-buildbash编译脚本,用于构建编译 C/C++ 命令,内部通过调用Clang/llvm工具集、Cmake工具最终生成可用于 Android 应用程序的共享库。
  • ndk-gdbpython脚本。用于调试 Android 应用程序的 GDB 调试器。
  • ndk-stack:用于解析崩溃日志的工具,可以将崩溃堆栈转换为可读的形式,以方便分析和修复错误。
  • ndk-dependspython脚本。用于检查 C/C++ 代码的依赖关系。
  • ndk-whichbash脚本。用于查找 NDK 工具链中的特定工具的路径。

目录:

  • toolchains: 包含各种支持的 CPU 架构的编译器和工具链。

  • platforms: 包含可用于构建本地库的 Android 平台版本。

  • sysroot:包含头文件和库,这些库可以在特定平台版本上构建本地库时使用,里面包含vulkan框架的共享库、头文件。

  • sources:包含 Android 系统源代码,可以在构建本地库时使用。

  • build:ndk-build工具的工作目录,内包含build-shader-tools.py是一个用于将使用 OpenGL Shading Language (GLSL) 编写的着色器代码编译成可被 Android 应用程序使用的格式的 Python 脚本,该应用程序使用 Android NDK (Native Development Kit) 进行开发.

    • build-shader-tools.py 是一个用于将使用 OpenGL Shading Language (GLSL) 编写的着色器代码编译成可被 Android 应用程序使用的格式的 Python 脚本,该应用程序使用 Android NDK (Native Development Kit) 进行开发。该脚本通常作为使用 OpenGL ES 进行图形渲染的 Android 应用程序构建过程的一部分使用。它以一个或多个 GLSL 文件作为输入,并生成可在应用程序中加载和使用的二进制文件
  • simpleperf: simpleperf工具的 C++ 代码和相关的构建脚本,用于编译 simpleperf工具可执行文件

    • simpleperf 是一个用于在 Android 系统上进行性能分析的工具。它是一个命令行工具,可帮助开发人员分析应用程序在运行时的 CPU 使用情况、函数调用频率、线程活动等方面的性能数据。可以通过 ndk-build 脚本来编译 simpleperf 工具的源代码,并生成 simpleperf 可执行文件
  • shader-tools 包含了 GLSL 编译器等其他工具,用于生成、调试 GLSL 代码,并构建 OpenGL ES 应用程序

Toolchains目录:

$ ls                                           
aarch64-linux-android-4.9/ renderscript/
arm-linux-androideabi-4.9/ x86-4.9/
llvm/                      x86_64-4.9/
  • renderscript :于构建 RenderScript 应用程序的工具集合(包含llvm-rs-cc编译器)。RenderScript 是一种高性能计算框架,可以在 Android 应用程序中使用,用于处理图像、音频、视频等大数据集合
  • aarch64/arm/x86/x86_64 -4.9:用于构建各个架构的工具链目录,其中4.9表示使用GCC 4.9作为交叉编译工具集编译文件
  • llvm :里面存放着clang/llvm工具集以及和上面GCC一样各个架构的库文件

主流的Android NDK交叉编译

  • Clang/llvm作为编译工具集,clang编译速度,以及代码优化比GCC强,并且clang本身就是一个可用于多架构编译前端编译器
  • aarch64-linux-android作为编译架构,目前的绝大部分Android真机都是armv8-a架构,小部分老手机使用armv7架构,x86\x64在移动端市场上基本都是手机模拟器在使用
http://www.hkea.cn/news/109689/

相关文章:

  • 鹤岗商城网站建设免费域名申请
  • 江苏三个地方疫情严重抖音视频排名优化
  • 竞价排名广告东莞关键词排名快速优化
  • 做视频网站要什么格式好网络营销公司怎么注册
  • 企业专业网站建设快速网站搭建
  • 武威建设网站的网站google谷歌搜索
  • 长沙公司做网站多少钱推广平台怎么做
  • 现在大家做电商网站用什么源码营销策略都有哪些
  • 可以做试卷的网站英语怎么说seo关键词排名优化系统源码
  • 网站怎么设置支付功能企业网站的主要类型有
  • 成都圣都装饰装修公司北京搜索优化排名公司
  • 境外建设网站贴吧互联网域名注册查询
  • 广州建站工作室淘客推广怎么做
  • 中国最大的网站建设公司百度广告联盟点击一次多少钱
  • wordpress单页主题营销seo手机关键词网址
  • dedecms做电影网站韩国最新新闻
  • 哪个网站做废旧好如何在百度上发布自己的广告
  • 网站表单及商品列表详情模板如何搭建自己的网站
  • 网站域名登记证明百度高级搜索怎么用
  • 国外网站在国内做镜像站点网站搭建费用
  • 网站后台如何添加关键词软件开发公司
  • 手机做网站的网站windows优化大师卸载不了
  • 万网速成网站有哪些 功能自己的网站怎么推广
  • 邯郸哪有做网站的河南百度推广公司
  • 我是做环保类产品注册哪些浏览量大的网站推销自己的产品比较好呢西安网站seo优化公司
  • 网页传奇游戏排行昆明网络推广优化
  • 商城模板网站模板网站软文是什么
  • 校园网站推广方案怎么做网站排名推广工具
  • 深圳罗湖企业网站建设报价网络媒体发稿平台
  • 用别人公司域名做网站线下推广的渠道和方法