タグ

AndroidとNDKに関するmainyaaのブックマーク (4)

  • Android NDKで使えないシステムコール・ライブラリ関数一覧 : DSAS開発者の部屋

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

    Android NDKで使えないシステムコール・ライブラリ関数一覧 : DSAS開発者の部屋
  • Android NDKでJNIを使用してアプリを高速化するには

    ファイルやライブラリの情報を定義する「Android.mk」 Android.mkは、$( APP_PROJECT_PATH)/jni/にあり、ファイルやライブラリの情報を定義します。下記は、今回使用するAndroid.mkの内容です。 LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := FireEffect LOCAL_SRC_FILES := FireEffect.c LOCAL_LDLIBS := -llog LOCAL_ARM_MODE := arm include $(BUILD_SHARED_LIBRARY) LOCAL_PATH これは、Android.mkの最初に定義しなければなりません。my-dirマクロで現在のディレクトリを指定しています。 include $(CLEAR_VARS) LO

    Android NDKでJNIを使用してアプリを高速化するには
    mainyaa
    mainyaa 2014/02/18
    “AndroidのCライブラリは「libc」ではなく「Bionic」というAndroid独自の実装です。この実装はANSI C準拠ではないため、ANSI Cにあるはずのヘッダファイルや関数がないことがあります。”
  • 日経LinuxでAndroid NDKのディープな連載はっじまるよー - Happy My Life

    普段から濃い目な記事ばかり書いていると言われがちな私ですが、次号か次々号あたりで、日経Linuxに「Androidアプリ開発の奥の手!絶対わかるAndroid NDKのディープな話」という連載(全3回予定)が始まります(私の連載タイトルって長めになると思うのは気のせいか…) この連載は、毎回Android NDKにある機能、ライブラリを1つ取り上げて、使い方から始まって仕組みの深いところも含めて解説していきます。短期連載なのでAndroid NDKのいろんなところを書けないのが残念だな、と。あとは、NDKを使ったことがない人にも配慮した内容だから、怖くないよ!大丈夫だよ! 編集部に伝えることは大事 で、感想などは編集部まで伝えて欲しいなと。 これは、連載全般に言えることだけど、「こんなことを書いて欲しい!」とか「もっと続けて欲しい!」という記事があったら、著者に直接伝えるよりは、アンケート

    日経LinuxでAndroid NDKのディープな連載はっじまるよー - Happy My Life
  • Android高速化 テクニック .pdf

    Android高速化テクニック第2章 特集1 Android による組込み開発 Android高速化 テクニック 中川 輪土 N a k a g a w a R i n d o 株式会社イーフロー 事業統括部 第1事業部 第 2 章 行することができます。Androidは1990年代後半の Javaに似ています。AndroidJavaの間には10年 分の差があることになります。章ではこの10年間で 培ったJava高速化手法を元にしたAndroidの高速 化テクニックについて解説します。 Androidアプリケーション 高速化テクニック  まずはAndroidアプリケーション高速化のテクニッ クについて解説します。Androidアプリケーションは Java言語で作成するため、Javaアプリケーションの 高速化テクニックがそのまま使えます。 ●インスタンス生成の抑制  インスタンスは以

  • 1