BT

AndroidのC/C++ネイティブアプリケーション開発を支援するGoogleの新ツール

| 作者: Sergio De Simone フォローする 13 人のフォロワー , 翻訳者 吉田 英人 フォローする 0 人のフォロワー 投稿日 2015年1月12日. 推定読書時間: 4 分 |

原文(投稿日:2014/12/23)へのリンク

GoogleのFun Propulsion Labsが新たに提供するfplutilは,Android用のC/C++アプリケーション開発を容易にしてくれる,ツールとライブラリのセットだ。

fplutilを作り上げている主要な部分は,build_all_android.py, buildutil, libfplutil, android_ndk_perf.py の4つである。

build_all_android.py

このビルドスクリプトは,コマンドラインからネイティブアプリをビルド,インストール,実行する機能を持つ。Android NDK上でC/C++アプリをビルドするこのスクリプトは,ビルドの自動化と開発者のコンパイル/実行ループの合理化,いずれに対しても有効だ。

デバッグモードや最適化レベルなど,ビルド設定をコマンドラインから指定できる。同時に複数のデバイスを使用することも可能だ。

buildutil

Buildutilは,CMakeで使用する連続自動化スクリプトの記述プロセスを簡単にするための,Pythonモジュールのセットだ。buildutilを使ったAndroidアプリのビルド/アーカイブのは,次のようなものになる。

  1. 最初のステップで,以後のオペレーションを実行するandroid.BuildEnvironmentインスタンスを生成する。

    parser = argparse.ArgumentParser()
    buildutil.android.BuildEnvironment.add_arguments(parser)
    args = parser.parse_args()
    env = buildutil.android.BuildEnvironment(args)
    
  2. このステップが完了すれば,ネイティブ(C/C++)コンポーネントにはndk-build,JavaコンポーネントとAPKにはantを使って,アプリをビルドする。

    (rc, errmsg) = env.build\_all()
    
  3. 最後に,APKをzipファイルにアーカイブする。

    env.make\_archive(['apks'], 'output.zip', exclude=['objs', 'objs-debug'])
    

Anrdoid用のNDKビルド以外にも,LiinuxやOSX, Windowsのビルドもサポートしている。

libfplutil

libfplutilはlibfplutil_mainlibfplutil_printという,C/C++アプリケーションの記述を容易にするための2つの静的ライブラリをビルドする,ネイティブなAndroid NDKモジュールで構成されている

  • libfplutil_mainは,Android NativeActivityのエントリポイントであるandroid_main()を実装している。従来のC/C++エントリポイントであるint main()を,この関数がコールする。これにより,int main()というエントリポイントを持つ(標準的なCアプリケーションと同じように)アプリケーションを記述しても,このライブラリとリンクすることで(リンクの項参照),Android上で動作するようになる。

  • libfplutil_printは,標準出力ストリームに書き込みを行う関数に対する,一連のラッパ関数を実装している。これにより,printfを使用してターミナルへの書き込みを行うアプリケーションの出力を,Androidのログにリダイレクトすることが可能になる。

libfplutilをリンクすることで,標準的なHello,Wroldプログラムを,何も変更することなくコンパイルして,Android上で動作させることが可能になる。

android_ndk_perf.py

ネイティブ(C/C++)開発者に対して,アプリケーションのCPU使用率などの計測値を取得することによって,最適化作業をガイドするディスクトップツールである。Android_ndk_perfは開発者のワークステーション上で動作する。これにより,Androidデバイス上で動作するアプリケーションのトレースログが取得できる。アプリケーションのトレース情報が取得できれば,LinuxのPerfコマンドなどを使用してデータを検査するか,Webブラウザで検査するために,HTMLで視覚化することができる。

libfplutilは,githubからダウンロード可能だ。ドキュメントも合わせて用意されている。

Fun Propulsion Labsは,Androidなどの先進プラットフォーム用のゲームを専門とする,Google内のチームである。今年初めには,fluidのシミュレーションを含む2D物理エンジンであるLiquidFun 1.1をリソース化している。

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

あなたの意見をお聞かせください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする
コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

ディスカッション

InfoQにログインし新機能を利用する


パスワードを忘れた方はこちらへ

Follow

お気に入りのトピックや著者をフォローする

業界やサイト内で一番重要な見出しを閲覧する

Like

より多いシグナル、より少ないノイズ

お気に入りのトピックと著者を選択して自分のフィードを作る

Notifications

最新情報をすぐ手に入れるようにしよう

通知設定をして、お気に入りコンテンツを見逃さないようにしよう!

BT