電子書籍の厳選無料作品が豊富!

APIにまつわる言い方で教えていただきたい意味があります。

(1)Eclipse で API を叩く → Android開発ならベースがJavaだからJava以外の言語でメソッドを呼び出すイメージ ですか?

(2)ネイティブAPI → 機械語で書かれたAPIということですか?

以上よろしくお願いします。

A 回答 (2件)

う~ん、APIという言葉の定義は難しいすね。



私の解釈ではAPI(Aplication Program Interface)はSPI(Service Provider Interface)の対義語となる。つまり、APIという言葉はかなり広い意味と捕らえている。つまり、Javaのコアパッケージ(java.langとかjava.ioとか)に用意されてるクラス群、メソッド群もAPIだし、私やあなたが自作のユーティリティクラスを作ったとしてもそれらは全部APIだ。
もっと広い定義ではSPIもAPIの一種と捕らえる事もできようが、以下のような階層構造をとるときにライブラリーがライブラリーを呼ぶプログラムに対して提供するのがAPI、ライブラリーが依存する個別の実装に提供するのがSPIと私は思っている。

・APIの例
私やあなたが作るプログラム
 |
 | ←API
 |
android.jarとかapache-commons-logging.jarとかlibmozc.soとか

・APIとSPIの例
ADOでDBアクセスしたい私やあなたが作るプログラム
 |
 | ←API
 |
Microsoft ActiveX Data Object(ADO)
 |
 | ←SPI
 |
oracle oledb provider(Oracle OCI経由でOracle Databaseへ)


ということで
(1)APIを叩く=ライブラリーの機能を呼び出す事すべて。Java to Javaだろうが、VB to CだろうがGroovy to JavaだろうがJava to ネイティブだろうが全部ひっくるめてAPIを叩くと表現している。

(2)ネイティブAPI=私も同じ解釈。C言語などで書かれ、OSやCPUに対してネイティブに動作するライブラリーを呼び出す口をネイティブAPIと私は考えている。
    • good
    • 0
この回答へのお礼

連続回答有難うございます。しかし抽象的で捕えがたい概念ですね。うーむ、とにかく回答ありがとうございました!?

お礼日時:2014/01/18 14:19

>つまり、Javaのコアパッケージ(java.langとかjava.ioとか)に用意されてるクラス群、メソッド群もAPIだし、私やあなたが自作のユーティリティクラスを作ったとしてもそれらは全部APIだ。


#1の人の回答に対しての補足になるけど
http://docs.oracle.com/javase/jp/6/api/
http://docs.oracle.com/javase/jp/7/api/
oracle自身がJavaの各クラス(パッケージ)をAPIとしています。

>(2)ネイティブAPI=私も同じ解釈。C言語などで書かれ、OSやCPUに対してネイティブに動作するライブラリーを呼び出す口をネイティブAPIと私は考えている。
ここまで来るとどちらかというとシステムコールになるのでは?
    • good
    • 0
この回答へのお礼

リンク有難うございます。システムコールという意見も留意しておきます。

お礼日時:2014/01/28 00:13

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!