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

公司网站域名注册流程专业app制作的公司

公司网站域名注册流程,专业app制作的公司,百度网盟推广是什么,昆山做网站怎么做目录 前言一、Java二、C[android]三、C[ndk]四、Rust接口 前言 在 Android 开发中,AIDL 文件通常会被自动编译,生成对应语言的接口文件。对于应用层 Java 开发者来说,使用 AIDL 和 Binder 封装的接口可以让他们更加专注于应用逻辑&#xff0…

目录

  • 前言
  • 一、Java
  • 二、C++[android]
  • 三、C++[ndk]
  • 四、Rust接口


前言

在 Android 开发中,AIDL 文件通常会被自动编译,生成对应语言的接口文件。对于应用层 Java 开发者来说,使用 AIDL 和 Binder 封装的接口可以让他们更加专注于应用逻辑,而不需要过多关注 Binder 的调用细节或 AIDL 的编译过程。

然而,对于中下层开发者来说,包括 framework 和 native 层开发,可能需要编写 native service,并且有必要理解 Binder 的底层机制。

关于编译 AIDL 文件的过程,通常是由构建系统自动完成。在编译过程中,AIDL 文件会被处理并生成相应的接口文件,以便后续开发使用。生成的接口文件内容会根据具体的需求和语言类型而有所不同,可以根据生成的接口文件来进行后续的开发工作。

  • 如果使用 SDK 中的 aidl 工具,需要将其路径添加到系统的 PATH 环境变量中。通常位于路径:~/Android/Sdk/build-tools/33.0.2/aidl。
  • 而如果使用源码中的 aidl 工具,则在设置好源码编译环境后,这个工具会自动添加到系统的 PATH 环境变量中。源码中的 aidl 工具通常位于路径:out/soong/host/linux-x86/bin/aidl。

准备文件
ITestAudio.aidl

package henry.test.audio;interface ITestAudio{int requestAudioFocus(int streamType, int durationHint);int abandonAudioFocus();void requestAudioFocusForCall(int streamType, int durationHint);void abandonAudioFocusForCall();void setMode(int mode);
}

环境
源码环境:out/soong/host/linux-x86/bin/

aidl命令
aidl --lang={java|cpp|ndk} [options] input_aidl_file。

  • –lang={java|cpp|ndk}
    指定生成接口类型。如果不指定,默认生成Java文件。
  • -o 指定输出目录
    Java:省略-o参数,java文件生成到aidl文件目录下。
    C++/Rust:必选参数。
  • -I DIR, --include=DIR
    指定依赖的aidl文件所在目录。不是C++头文件目录。
    例如:A.aidl引用了B.aidl,在生成A.aidl的时候需要指定-I参数才能正常编译。
    只要是AIDL文件中有依赖,生成任何类型的接口(Java、C++、Rust)都要指定这个参数。

一、Java

aidl -o ./java --lang=java henry/test/audio/ITestAudio.aidl
tree ./java
./java
└── henry└── test└── audio└── ITestAudio.java3 directories, 1 file

二、C++[android]

cpp:生成的代码是为了在Android源码中编译,代码中会调用Android源码中的native接口。
例如,引用的头文件:
<binder/IBinder.h>,<binder/IInterface.h>,<binder/Status.h>,<android-base/macros.h>

–lang=cpp,参数指定生成Android源码下编译的C++接口文件。

-o和-h参数分别指定.cpp文件和.h文件输出的路径。可以指定不同的目录。
C++接口文件比较多,一个aidl文件生成4个文件。第一步编译ITestAudio.aidl后,生成文件包括:
3个头文件:
一个Interface头文件:ITestAudio.h
一个Bp头文件:BpTestAudio.h
一个Bn头文件:BnTestAudio.h
一个源码文件:ITestAudio.cpp

aidl -h ./cpp_android/ -o ./cpp_android --lang=cpp henry/test/audio/ITestAudio.aidl
tree ./cpp_android/
./cpp_android/
└── henry└── test└── audio├── BnTestAudio.h├── BpTestAudio.h├── ITestAudio.cpp└── ITestAudio.h3 directories, 4 files

三、C++[ndk]

ndk:生成的代码是为了使用ndk独立编译,调用的是ndk的接口,
例如,引用的头文件:
<android/binder_interface_utils.h> <android/binder_ibinder.h>
–lang=ndk

aidl -h ./cpp_ndk -o ./cpp_ndk --lang=ndk henry/test/audio/ITestAudio.aidl
tree ./cpp_ndk/
./cpp_ndk/
├── aidl
│   └── henry
│       └── test
│           └── audio
│               ├── BnTestAudio.h
│               ├── BpTestAudio.h
│               └── ITestAudio.h
└── henry└── test└── audio└── ITestAudio.cpp7 directories, 4 files

四、Rust接口

–lang=rust指定生成rust后端接口文件
较新Android 版本才支持

aidl -o ./rust --lang=rust henry/test/audio/ITestAudio.aidl
tree ./cpp_ndk/
./rust/
── henry└── test└── audio└── ITestAudio.rs
http://www.yayakq.cn/news/808718/

相关文章:

  • 网站做好了怎样推广专业做网站多少钱
  • 南京专业做网站腾冲住房和城乡建设局门户网站
  • 网站营销与推广帮人做网站一定要先收费
  • 苏州网站推广哪家好搜索引擎优化概述
  • 如何做网站搭建api接口做微信网站要多少钱
  • 中国空间站设计在轨飞行几年企业网站建设与推广方案实例
  • 国外饮品网站建设电子商务网站的预期收益
  • 做网站空间多大物流公司做网站哪家好
  • 做直播网站需要什么资质建设银行手机银行电脑版官方网站
  • 做网站的图片素材微盟微商城官网
  • 专业网站建设公司排名广西建设网查证
  • 电商网站建设收费室内设计师找图片的网站
  • 网站推广和网站优化网站建设三层架构实训报告
  • 百度收录自适应网站市城乡规划建设局网站
  • 雅虎提交网站入口如何做网站热力图
  • 深圳市建设网络有限公司网站个人网站做论坛
  • 官方网站平台有哪些wap网站引导页特效
  • dw中怎样做网站链接电子商务网站设计心得体会
  • 网站建设中的时尚资讯网站管理系统软件
  • 中专网站建设课程中文网站欣赏
  • 网站优化策略分析网站推广短信
  • 携程旅游电子商务网站策划书专注郑州网站建设
  • 找网站做q币通过信息系统融合和创新形成企业解决方案
  • 做一个平台网站大概多少钱在网站做责编会很累吗
  • 网站改进建议有哪些电商公司建设网站
  • 著名的外贸网站深圳航空股份有限公司
  • 广州做网站比较有名的公司展示中心网站建设
  • 广州定制网页设计百度快速排名优化工具
  • 中国建设网站工程承包分包法南通企业网页制作
  • 中国建设银行的招投标网站建设教育协会网站