• ベストアンサー

APIにまつわる言葉の言い方

APIにまつわる言い方で教えていただきたい意味があります。 (1)Eclipse で API を叩く → Android開発ならベースがJavaだからJava以外の言語でメソッドを呼び出すイメージ ですか? (2)ネイティブAPI → 機械語で書かれたAPIということですか? 以上よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • anmochi
  • ベストアンサー率65% (1332/2045)
回答No.1

う~ん、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と私は考えている。

KAIJI-000
質問者

お礼

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

その他の回答 (1)

回答No.2

>つまり、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と私は考えている。 ここまで来るとどちらかというとシステムコールになるのでは?

KAIJI-000
質問者

お礼

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

関連するQ&A