質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Android NDK

Android NDKとは、Android SDKと対を成すツールです。ネイティブコードのアプリ、またはC/C++言語の既存のポートライブラリでパフォーマンスクリティカルな部分を構築できます。ヘッダ、ライブラリを提供して、アクティビティやユーザ入力処理などを構築できます。

Q&A

解決済

2回答

1821閲覧

業務でAndroidNDKを使うプロジェクトに携わった機会はどのくらい?

退会済みユーザー

退会済みユーザー

総合スコア0

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Android NDK

Android NDKとは、Android SDKと対を成すツールです。ネイティブコードのアプリ、またはC/C++言語の既存のポートライブラリでパフォーマンスクリティカルな部分を構築できます。ヘッダ、ライブラリを提供して、アクティビティやユーザ入力処理などを構築できます。

0グッド

0クリップ

投稿2016/06/15 23:04

お仕事でAndroidアプリに携わっている方に質問です。業務でAndroidNDKを使うプロジェクトに携わった機会はどのくらいありますか。また、何故AndroidNDKを使う必要のあるプロジェクトだったのかを教えて欲しいです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

過去形ですが携わっていました。情報が古いかもしれませんがご容赦ください。

ゲームでは高速に画面を更新する必要があるので、Java層よりNDK層でやってしまうほうが動作が高速であることが多いから、使う機会は多かったです。
NDKでやる利点は速度以外にもあって、「比較的iOS移植がしやすくなる」からです。ユーティリティ的なコードをCやC++で書くことでそのままiOSに持っていけます(もちろんOS固有の処理を使わない前提、またはinterfaceのみ定義して実装はOSごとにするとか)。

あとはオープンソースやライブラリでCで提供されているものを使えるであるとか、最初からミドルウェアがC、C++で書くこと前提である場合です。ゲーム用ミドルウェアで有名なCocos2d-xはコードはC++系です。

投稿2016/06/16 00:09

masaya_ohashi

総合スコア9206

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

JNIとのやり取りをするために関数をsynchronizedしているのもありNDKが一概に速いわけではないのですが
OCRとかカメラ(Webカメラみたいなのも含む)でNDKが利用されてたり
http://qiita.com/KeithYokoma/items/c7f32a77402410545edb
話もあったりして、そのまま標準関数を使うのが微妙という仕様があったりします。

でも自前で対応しようとするとやはり大変で、armのライブラリのみ対応でx86のZenfoneとかに代表されるSimフリースマホでは落ちるとか
同じ関数を使っているはずなのにOSのバージョンが上がると落ちるとかいろいろあったりします
(その対応用にsoを増やすとサイズがどんどん大きくなるジレンマが。。。)

それとは別にNDKを使ったライブラリを使う機会はこの頃増えています
(Realmとか動画広告ライブラリとかそうですね)

Google的には直接使うよりRenderScriptをつかってもらうのを推奨していたりしていますが
いかんせんサンプルがほとんどないのと、表示にRenderScriptを使うのはOS5あたりから非推奨
OpenCL的な使い方を理想としています
というのは確かに微妙かと(iOSにそのまま移植はできませんし)

投稿2016/06/16 01:05

kimukou_26

総合スコア145

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問