コンテンツにスキップ

Android Native Development Kit

出典: フリー百科事典『ウィキペディア(Wikipedia)』

これはこのページの過去の版です。Sygh (会話 | 投稿記録) による 2020年3月22日 (日) 13:40個人設定で未設定ならUTC)時点の版であり、現在の版とは大きく異なる場合があります。

Android NDK
開発元 Google
最新版
r21 / 2020年1月14日 (5年前) (2020-01-14)[1]
リポジトリ https://android.googlesource.com/platform/ndk.git
対応OS Android
プラットフォーム x86 / x64 / ARM / ARM64
種別 ソフトウェア開発キット
ライセンス Apache License v2.0[2]
公式サイト https://developer.android.com/ndk
テンプレートを表示

Android Native Development Kit (Android NDK) は、Androidオペレーティングシステム上で動作するアプリケーションソフトウェアを、C言語あるいはC++を用いたネイティブコードによって開発できるようにするためのソフトウェア開発キット[3]GCC/Clangツールチェイン、標準CライブラリBionic libc英語版標準C++ライブラリのlibstdc++/libc++、AndroidネイティブAPIなどを含む。なお、GCCが同梱されている最後のNDKバージョンはr17cであり、r18では取り除かれた[4][5]

概要

Androidのアプリケーション開発には通例Java仮想マシンDalvik仮想マシン/Android Runtime)上で動作するJavaあるいはKotlinといったJVMマネージ言語を利用する。マネージ言語はメモリ管理や生産性、移植性の点で優れているが、メモリへの直接アクセスによるパフォーマンス向上や、x86SSEあるいはARMのNEONといったプロセッサ (CPU) アーキテクチャ固有の拡張命令の使用、またOpenCVのような既存のC/C++コード資産を活用する目的で、NDKを用いたマシンネイティブな開発が許可されている。ただしNDKを利用すると、CPUアーキテクチャごとにバイナリを用意しなければならなくなるというデメリットもある。

Android 2.3以降ではNativeActivityのサポートにより、制約はあるもののC/C++のみでアプリケーション開発をすることもできるようになっている。JVMとネイティブコード間の相互運用には、一般的なデスクトップのJavaアプリケーション開発時と同様、Java Native Interface (JNI) を利用できる。Androidのグラフィカルユーザーインターフェイス (GUI) ライブラリなど、上位レベルのAPIはAndroid SDKに含まれるが、大半はJVM言語向けにしか提供されておらず、C/C++向けには提供されていないため、C/C++から利用するにはJNIを経由する必要がある。

NDKにおけるAndroid固有のネイティブAPI[6]は、"A" で始まる名前が付けられており、JVM言語用APIとよく似たものも提供されている。

脚注

関連項目

外部リンク