お仕事でAndroidアプリに携わっている方に質問です。業務でAndroidNDKを使うプロジェクトに携わった機会はどのくらいありますか。また、何故AndroidNDKを使う必要のあるプロジェクトだったのかを教えて欲しいです。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答2件
0
ベストアンサー
過去形ですが携わっていました。情報が古いかもしれませんがご容赦ください。
ゲームでは高速に画面を更新する必要があるので、Java層よりNDK層でやってしまうほうが動作が高速であることが多いから、使う機会は多かったです。
NDKでやる利点は速度以外にもあって、「比較的iOS移植がしやすくなる」からです。ユーティリティ的なコードをCやC++で書くことでそのままiOSに持っていけます(もちろんOS固有の処理を使わない前提、またはinterfaceのみ定義して実装はOSごとにするとか)。
あとはオープンソースやライブラリでCで提供されているものを使えるであるとか、最初からミドルウェアがC、C++で書くこと前提である場合です。ゲーム用ミドルウェアで有名なCocos2d-xはコードはC++系です。
投稿2016/06/16 00:09
総合スコア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
総合スコア145
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。