タグ

NDKに関するHamken100perのブックマーク (13)

  • cocos2d-x(Android NDK)ビルドを高速化する方法とオススメ設定 - matsukaz's blog

    こんにちは!対戦型脳トレアプリ BrainWars のエンジニア、matsukazです! 一緒にcocos2d-xとかrailsとかAWSとかスタンディングしてくれる仲間を絶賛募集中!!と、ちょっとPRしてみる。 BrainWarsはcocos2d-xで開発してるんですが、ccache を導入することでAndroid NDKビルドにかかる時間を劇的に改善できました。 今までビルドに30分近くかかってたのが3分程度まで短縮!すばらしー!ヽ(=´▽`=)ノ 動作確認したNDKのバージョンは、この記事を書いてる時点で最新のr10dです。 cocos2d-xの話で書いてますが、cocos2d-xに限らず高速化できるかと。 というわけでccacheの説明と導入方法、注意点などご紹介します。 ccacheってなに? C、C++、Objective-C、Objective-C++に対応したコンパイラーキ

    cocos2d-x(Android NDK)ビルドを高速化する方法とオススメ設定 - matsukaz's blog
    Hamken100per
    Hamken100per 2015/02/04
    ビルドを高速化するccasheについての記事。
  • Android NDKで使えないシステムコール・ライブラリ関数一覧 : DSAS開発者の部屋

    Android NDKでCのコードを書いていると、普段のCプログラミングでは悩まないことで悩むことがあります。たとえば、AndroidのlibcはGoogle製でPOSIXに準拠していません。他のUnix系環境であれば必ず実装されているライブラリ関数が存在しないなどの罠があるため、メジャーなツールをビルドするのにもconfigure;makeが素直に通らなかったりします。 それだけでなく、Android NDKが提供する開発環境にも問題があります。特に、NDKで配られているヘッダファイルとビルド用の共有ライブラリで対応が取れていないのは頭痛のタネです。どういうことかというと、ヘッダファイルに定義されているシステムコールを使おうと思ったらリンカエラーが出ることがあります。 また、システムコールの一部については、カーネルレベルでは正しく実装されているもののlibcにインターフェース実装がなく、

    Android NDKで使えないシステムコール・ライブラリ関数一覧 : DSAS開発者の部屋
    Hamken100per
    Hamken100per 2014/08/01
    Android NDKのlibcはPOSIX準拠していないので存在しない関数がある。ヘッダに記述されてもリンカエラーになることがあるという話し。存在しない関数リスト付き。
  • 超〜簡単にcocos2d-xでネイティブ連携を行う方法 - Qiita

    cocos2d-xを使っていると指定URLをWebブラウザで開きたいときがあると思います。 そんなときは、iOS/Androidのネイティブ機能を使いますが、NativeBridgeを使って 下記の様にしてみましょう。 ポイントは、NativeBridgeというクラス(機能毎にクラス分けしておくと後で 必要な機能のみを別アプリに組み込む事も可能ですね)を作成してiOS/Androidの ネイティブ実装を隠蔽し、cocos2d-x側ではどちらを呼び出すのか意識させない事です。 注意点として、BrowserNativeBridge.cppはXcodeプロジェクトに含めないで下さい。 以下の例ではブラウザー機能の実装のため「BrowserNativeBridge」クラスを 用意しています。 BrowserNativeBridge BrowserNativeBridge.hを用意する // Bro

    超〜簡単にcocos2d-xでネイティブ連携を行う方法 - Qiita
    Hamken100per
    Hamken100per 2014/08/01
    iOS/Androidでネイティブの機能を使う場合の実装の参考になる。
  • tests/examples/slesTestDecodeToBuffQueue.cpp - platform/frameworks/wilhelm - Git at Google

    Hamken100per
    Hamken100per 2014/07/30
    OpenSL ESでオーディオファイルをPCMにデコードするコード。正しく動くかは検証していない。
  • OSDIR

    Hamken100per
    Hamken100per 2014/07/30
    OpenSL ESでAudioファイルをPCMへデコードするサンプル。でもちょっとおかしい…。
  • Android NDKでファイル読み込みをやりたかっただけ - とあるSEの研究記録Ⅲ(レコーダー)

    Javaで開発されたAndroidアプリは「Dalvik」というAndroid OSに搭載されてる仮想マシンを経て解析され、実行します。 対してAndroid NDKはこの仮想マシンを通らず、ハードウェア上で直接実行できるコードを組むことが出来ます。加えてネイティブコードはC/C++言語、Java言語だけで開発されたアプリよりも断然速いです。 私は以前、テクスチャ・ポリゴンの描画機能だけをネイティブ化していました。しかし折角高速化出来るのであれば、描画部分だけでなく処理に時間の掛かる他のコードもネイティブ化したいところです。ということで思いついたのが今回のファイル読み込みです。 以前MMDモデルAndroidで読み込んで描画するプログラムをJavaだけで作ったことがあるのですが、1ファイルに付きデバッグで1分以上、リリースで5秒も読み込みに掛かりました。この処理をネイティブ化すればかなり

    Android NDKでファイル読み込みをやりたかっただけ - とあるSEの研究記録Ⅲ(レコーダー)
    Hamken100per
    Hamken100per 2014/07/25
    ファイルの読み込み関連。assetsフォルダ内、SDカードなど。
  • るにろぐ OpenSL

    OpenSL のプロファイルについて「次回書くよ!」とか言ってたけどちょっと間が空いてしまいました。 べ、別に忘れてたわけじゃな、ないんだけどそんなこともないっていうかなんていうかあぁ…。…スミマセン。 で、OpenSL のプロファイル。 プロファイルは今のところ全部で3つで、それぞれ以下のような機能がサポートされていることを示しています。 SL_PROFILES_PHONE 基的なモバイル機器としての機能 ・着信音やアラートトーンの再生(基的なMIDI機能) ・PCM再生 ・ゲーム音声(3D オーディオは含まない) SL_PROFILES_MUSIC 音楽を中心としたモバイル機器向けの機能 ・高品質オーディオ、 ・複数コーデックのサポート SL_PROFILES_GAME ゲームを中心としたモバイル機器向けの機能 ・高性能MIDI (多分 3D MIDI) ・3D オーディオ ゲーム

    Hamken100per
    Hamken100per 2014/07/23
    OpenSL ESのプロファイルについて。エンジンに設定されている同時発音数などの制限などを取得する方法など。
  • 2013-11: もうちょっと なんとか…

    ・ダ・ヴィンチ系女子高生 よくある、過去にタイムスリップした現代人が知識を利用して大きなことをやらかす漫画 …かと思ったら、単なるレオナルド・ダ・ヴィンチのうんちく漫画? ・博士の白衣女子攻略論 4コマじゃないと、学研まんが「~のひみつ」みたいだ。 ・かしこみかしこみ 新キャラ登場か? それとも、山椒が男であることを読者に示すためだけの回? さて、Android NDKプログラミングもそろそろサウンドの再生に取り掛かりたいと思います。 サウンドデータの管理ですが、 ・音を鳴らす度にファイルから読み込むのでは重い ・PCMデータをメモリに置いておくのは容量をう ということで、 「メモリ上の圧縮フォーマットデータをデコードしながら再生」 ができるようにしたいです(アプリの規模や状態で常にそれがベストとは限りませんが、少なくとも対応しておきたい)。 しかし、Androidのサウンドは ・SDK

    Hamken100per
    Hamken100per 2014/07/23
    OpenSL ESのオーディオクラスの作成した記事。
  • OpenSL ES と NDK を使って Android オーディオストリーミング - 閉村観光

    この文章は、Victor Lazzariniのブログを翻訳したものです。彼は音楽ライブラリPySndObjなどの開発者です。さて、内容はAndroid音楽プログラミングする場合、NDKを使って処理を高速化してもJavaAPIを叩く限り不満は残ります。ここでNDKとOpenSL ESを使うことで不満を一掃しています。最後に、翻訳の精度は毎度低いので心配な方は原文と一緒に読まれることを願います。 >>>それでは文 原文 http://goo.gl/M5vSB Androidのドキュメントやサンプルプログラムであまり触れられない話題にオーディオストリーミングがある。そのズレを埋めるのに、Android Native Development Kit(NDK)でもってOpenSL ES APIの使用検討してみたい。Androidプログラミングに不慣れな皆さんには、様々な開発コンポーネントをどの

    OpenSL ES と NDK を使って Android オーディオストリーミング - 閉村観光
    Hamken100per
    Hamken100per 2014/07/14
    OpenSL ESを使ってAndroidでオーディオストリーミングする方法。
  • LOCAL_WHOLE_STATIC_LIBRARIESとは何なのか、の備忘 - Guinea Pig

    Hamken100per
    Hamken100per 2014/07/06
    LOCAL_WHOLE_STATIC_LIBRARIESの意味。gccの-Wl,-whole-archiveオプションと同じで、静的ライブラリ内のクラス、メソッド全てをオブジェクトリンクするという意味。
  • ちろり Androidでglibc(7) Boost.Regex

    Hamken100per
    Hamken100per 2014/07/02
    boost::regexをandroid用にビルドする方法。
  • Android NDKを使う前に知っておいた方が良いメモ - C++ ときどき ごはん、わりとてぃーぶれいく☆

    執筆時点のAndroid NDK(r19)について。 知って措いた方良い事 JNIのCバインディングとC++バインディングはまったく別物 APIの名前は同じ挙句にC++版でも名前空間つこうて無かったりで、ありがちなC/C++対応と言いつつ実はCっていうパターンかと思いきやC++バインディングでは同名のAPIでパラメーターの数が違ったり、ポインターのポインターがポインターと参照になっていてAPIを使ったユーザー定義部分のコードをCとC++では変える必要があるなど設計がおかしい。 JNIは蛇殺し JNIのJAVAとCの名前空間の結合ルールが馬鹿なのでユーザー定義でsnake_caseのシンボルを使うと死ぬ。しかもAndroidで実行してランタイムエラーが出現するまで問題は顕在化しない。 この問題に対しsnakerの私は_の代わりに大文字の'X'を使う事にせざるを得なかった。例えば`jni_is

    Android NDKを使う前に知っておいた方が良いメモ - C++ ときどき ごはん、わりとてぃーぶれいく☆
    Hamken100per
    Hamken100per 2014/06/30
    NDKの標準ライブラリーまわりでいろいろ悩んでる時に見つけた記事。
  • Android NDKについて、年末だしいろいろ棚卸しするよ - crimsonwoodsのブログ

    需要があるか判らないけど、自分のためにも書いておきます。 NDKとは? Androidでの開発において、プロセッサネイティブなコードを使用して処理の高速化などを行う場合、 Androidが公式に提供しているNDK(Native Development Kit)を使用します。 2012年12月31日現在での最新バージョンはr8dというものになります。 ダウンロードはこちらから行えます NDKで出来る事 CやC++でコードを書くことができます。 コンパイラとしてgcc-4.4.3, gcc-4.6, gcc-4.7, clang-3.1を利用できます。 プロセッサのアーキテクチャに依存した命令を書くことができます(NEONとか)。 JNIを通して、DalvikVMからコードを相互に呼び出すことができます。 armeabi, armeabi-v7a, x86, mips用それぞれのコードを生成す

    Android NDKについて、年末だしいろいろ棚卸しするよ - crimsonwoodsのブログ
    Hamken100per
    Hamken100per 2014/06/30
    NDKでできる事。ちょっと記事が古いけど、いろいろ参考になる。
  • 1