Android NDK 命令规范

Android NDK API 标识

  • A 前缀表示这是 Android NDK 的原生 C/C++ API
  • 区别于 Java/Kotlin 层的 Android API
  • 这是 Google 的官方命名约定

举例说明

c 复制代码
// Camera2 NDK API
ACameraManager_create()          // Android Camera Manager
ACameraDevice                    // Android Camera Device  
ACameraCaptureSession           // Android Camera Capture Session
ACaptureRequest                 // Android Capture Request
AImageReader                    // Android Image Reader

// 其他 NDK API
ALooper                         // Android Looper (消息循环)
AAssetManager                   // Android Asset Manager (资源管理)
ANativeWindow                   // Android Native Window (原生窗口)
ATrace_beginSection()           // Android Trace (性能追踪)

其他 Android NDK 前缀 等

c 复制代码
// A 系列 - Android 核心 API
ACameraManager, ALooper, AAssetManager

// JNI 系列 - Java Native Interface
JNIEnv, jobject, jstring, jclass

// EGL 系列 - OpenGL ES 相关
EGLDisplay, EGLContext, EGLSurface

// GL 系列 - OpenGL
glGenTextures, glBindTexture

原因解释

命名规范的历史背景 避免命名冲突
复制代码
// 如果没有 A 前缀,可能会与其他库冲突
CameraManager vs ACameraManager  // 明确这是 Android 的
ImageReader vs AImageReader      // 避免与第三方库冲突
API 层次区分
复制代码
// Java 层 (Android Framework)
CameraManager cameraManager = (CameraManager) getSystemService(Context.
CAMERA_SERVICE);

// NDK 层 (Native C/C++)
ACameraManager* cameraManager = ACameraManager_create();
相关推荐
冬奇Lab4 小时前
MediaPlayer 播放器架构:NuPlayer 的 Source/Decoder/Renderer 三驾马车
android·音视频开发·源码阅读
炸炸鱼.6 小时前
Python 操作 MySQL 数据库
android·数据库·python·adb
用户41659673693557 小时前
nextlib 项目架构与深度技术指南 (Architecture & Technical Master Guide)
android
aq55356008 小时前
Laravel10.x重磅升级,新特性一览
android·java·开发语言
Trouvaille ~8 小时前
【MySQL篇】数据类型:存储数据的基础
android·数据库·mysql·adb·字符集·数据类型·基础入门
2401_8858850410 小时前
开发视频短信接口好开发吗?图文视频短信接口对接教程
android·音视频
千码君201611 小时前
kotlin:Jetpack Compose 给APP添加声音(点击音效/背景音乐)
android·开发语言·kotlin·音效·jetpack compose
Fᴏʀ ʏ꯭ᴏ꯭ᴜ꯭.11 小时前
MySQL半同步复制与GTID实战详解
android·mysql·adb
用户416596736935512 小时前
深度解码:记一次视频时间戳(PTS)异常导致的播放故障排查
android
大白菜和MySQL14 小时前
linux系统环境常用命令
android·linux·adb