「Android Native Development Kit」の版間の差分
最新版を r21d に更新。 |
|||
10行目: | 10行目: | ||
| 最新評価版発表日 = |
| 最新評価版発表日 = |
||
| リポジトリ = https://android.googlesource.com/platform/ndk.git |
| リポジトリ = https://android.googlesource.com/platform/ndk.git |
||
| 対応OS = [[Android]] |
| 対応OS = [[Android (オペレーティングシステム)|Android]] |
||
| 対応プラットフォーム = [[x86]] / [[x64]] / [[ARMアーキテクチャ|ARM]] / ARM64 |
| 対応プラットフォーム = [[x86]] / [[x64]] / [[ARMアーキテクチャ|ARM]] / ARM64 |
||
| 種別 = [[ソフトウェア開発キット]] |
| 種別 = [[ソフトウェア開発キット]] |
||
17行目: | 17行目: | ||
}} |
}} |
||
'''Android Native Development Kit''' ('''Android NDK''') は、[[Android]][[オペレーティングシステム]]上で動作する[[アプリケーションソフトウェア]]を、[[C言語]]あるいは[[C++]]を用いたネイティブコードによって開発できるようにするための[[ソフトウェア開発キット]]<ref>[https://developer.android.com/ndk/guides?hl=ja NDK の概要 | Android NDK | Android Developers]</ref>。[[GNUコンパイラコレクション|GCC]]/[[Clang]]ツールチェイン、[[標準Cライブラリ]]の{{仮リンク|Bionic libc|en|Bionic (software)}}、[[標準C++ライブラリ]]のlibstdc++/libc++、Androidネイティブ[[アプリケーションプログラミングインタフェース|API]]などを含む。なお、GCCが同梱されている最後のNDKバージョンはr17cであり、r18では取り除かれた<ref>[https://developer.android.com/ndk/downloads/revision_history?hl=ja NDK 変更履歴 | Android NDK | Android Developers]</ref><ref>[https://developer.android.com/ndk/downloads/revision_history?hl=en NDK Revision History | Android NDK | Android Developers]</ref>。 |
'''Android Native Development Kit''' ('''Android NDK''') は、[[Android (オペレーティングシステム)|Android]][[オペレーティングシステム]]上で動作する[[アプリケーションソフトウェア]]を、[[C言語]]あるいは[[C++]]を用いたネイティブコードによって開発できるようにするための[[ソフトウェア開発キット]]<ref>[https://developer.android.com/ndk/guides?hl=ja NDK の概要 | Android NDK | Android Developers]</ref>。[[GNUコンパイラコレクション|GCC]]/[[Clang]]ツールチェイン、[[標準Cライブラリ]]の{{仮リンク|Bionic libc|en|Bionic (software)}}、[[標準C++ライブラリ]]のlibstdc++/libc++、Androidネイティブ[[アプリケーションプログラミングインタフェース|API]]などを含む。なお、GCCが同梱されている最後のNDKバージョンはr17cであり、r18では取り除かれた<ref>[https://developer.android.com/ndk/downloads/revision_history?hl=ja NDK 変更履歴 | Android NDK | Android Developers]</ref><ref>[https://developer.android.com/ndk/downloads/revision_history?hl=en NDK Revision History | Android NDK | Android Developers]</ref>。 |
||
== 概要 == |
== 概要 == |
||
33行目: | 33行目: | ||
* [[マネージコード]] |
* [[マネージコード]] |
||
* [[Java Native Interface]] |
* [[Java Native Interface]] |
||
* [[Android#開発環境]] |
* [[Android (オペレーティングシステム)#開発環境|Android]] |
||
* [[Android Studio]] |
* [[Android Studio]] |
||
* [[Android Development Tools]] |
* [[Android Development Tools]] |
2020年9月6日 (日) 07:13時点における版
開発元 | |
---|---|
最新版 |
r21d
/ 2020年6月10日[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マネージ言語を利用する。マネージ言語はメモリ管理や生産性、移植性の点で優れているが、メモリへの直接アクセスによるパフォーマンス向上や、x86のSSEあるいは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とよく似たものも提供されている。
脚注
関連項目
外部リンク
- googlesamples/android-ndk: Android NDK samples with Android Studio - NDKを利用したサンプル
- native - platform/frameworks/base - Git at Google - Android NDK固有APIのソースコード