Android NDK r4bを使っていろいろやってみてたのでちょっとまとめ。 (以下の内容はubuntu 10.04で使用した上で書いています。Macやwindows(cygwinが必要)だとちょっと違いがあるかも) 自分の理解では、Android NDKはネイティブ層アプリやライブラリのビルドを必要ソースのみで楽にビルドするためのツールです。 NDKを使わない場合ネイティブソースのビルドは、Androidのソースをgitで拾ってきてその中でmmコマンドなどを使ってビルドするのですが、NDKがあれば単体でビルドできます。 基本的使い方は、java層からJNIを使用した時に呼ばれるネイティブ層のライブラリを作るときに使用するもののようです。 単体ビルド 単体でビルドする場合、 ~/project/jni/ というディレクトリを作成し、Android.mkとビルド対象ソースをここに配置。 N
こんにちは。 ついにAndroid2.2がやってきました。 テザリングやFlash対応をはじめ、多くの新機能が追加されましたが、 やはり一番の注目は「JITコンパイラ搭載」ではないでしょうか。 JIT(Just In Time)コンパイラとは、Javaプログラムを実行前にネイティブコードに変換し、実行する方式のことで、 これにより2~5倍の高速化が見られるとか…! ということで、以前紹介した記事内での検証をAndroid 2.2端末で再検証してみたいと思います。 検証端末は次のものを使用しています。 前回:HT-03A (AndroidSDK 1.6) 今回:Nexus One (AndroidSDK 2.2) 絶対的な数値は端末が異なるため、あまり参考になりません。 nativeとjavaの相対比較に注目してください。 検証内容の詳細については過去の記事を参照してください。
AndroidにはNDK(Native Development Kit)という高速化のための仕組みが提供されています。 名前が示す通り、ネイティブプログラムを実行するためのSDKです。NDKを使えば、ソースコードをC/C++言語で記述して、高速にアプリケーションを実行できます。 今回はNDKのインストールから作成環境を整えるまでを順を追って紹介します(開発環境はAndroid NDK r4b および Cygwin 1.7.xです)。 NDKの理解のために Cygwinのインストール(Windows) NDKのダウンロード 環境変数(PATHとANDROID_NDK_ROOT)の設定 Hallo JNIの実行(NDK付属のサンプルプログラム) Windows環境でNDKを使うには、Cygwin(シグウィン)と呼ばれるUnixエミュレータが必要です。 Anroid NDKを使う手順をごく簡単に
ろくにCをやってないのにJava Native Interfaceをちょっとやってみた. 基本編 クラスやオブジェクトの取扱 基本編 JNIの基本 とりあえずHello 2003-07-20T15:13+09:00 matsu Javaからhelloを出力するネイティブコードを呼んでみる. nativeメソッドの引数(プリミティブ型) 2003-07-20T15:13+09:00 matsu nativeメソッドから引数を渡せなければ,あんまり嬉しくない.なので,ここではいろんなプリミティブ型の引数を渡しみる. フィールドの取得 2003-07-20T15:13+09:00 matsu ネイティブコードからクラスやオブジェクトのフィールドを取得する. フィールドの設定 2003-07-20T15:13+09:00 matsu ネイティブコードからクラスやオブジェクトのフィールドを設定する.
JNIのC言語/C++側のコーディング C言語とC++の違い コーディング例 JNI関数の概要 プリミティブ型・参照型(JavaオブジェクトのC/C++での扱い) String型 [/2006-11-09] 配列型 クラスの取得・インスタンス生成 [/2008-02-02] オブジェクトのメソッド呼び出し [/2008-02-07] オブジェクトのフィールド操作 ローカル参照の終了 [2006-11-09] 例外処理 [/2007-10-13] jni.hの中でC言語/C++で使える構造体 (クラス)が定義されているが、 コンパイラーがC言語の場合とC++の場合では定義のされ方が異なり、使い方も少し異なる。 JniJikken.c: JniJikken.cpp: #include "JniJikken.h" JNIEXPORT jbyteArray JNICALL Java_JniJikk
さて、Javaから、わざわざDLLを呼ぼうってわけですから、とりあえず、お互いが会話をしないなんてことはありえないわけで、Java/DLL間でのインターフェイスを見ていきましょう。 今回は、byte配列をパラメータで渡して、その内容をひっくり返して(?)返してくれるというサンプルです。 ページ先頭へ戻る // ArrTest.java // import java.io.*; class ArrTest { private native void invert(byte arr1[], byte arr2[]); private void printArray(byte arr[]) { System.out.println("*** array contents ***"); for(int i=0; i<arr.length; ++i) { System.out.println("Ar
今回はAndroid NDKを使用して、JavaコードとC言語で記述されたNativeコードで速度の比較を行おうと思います。 まずはNDKをインストールします。以下のリンクからndkをダウンロードします。 http://developer.android.com/intl/ja/sdk/ndk/1.6_r1/index.html ダウンロードしてきたら以下を実行しインストールします。 $(NDKROOT)/build/host-setup.sh これでインストールが完了です。簡単ですね。 早速、Javaのコードを書いて速度比較していきましょう。 今回は簡単に1億回足し算を行い、JavaとNativeで比較してみます。 public class JniTest extends Activity { @Override public void onCreate(Bundle savedI
Android高速化テクニック第2章 特集1 Android による組込み開発 Android高速化 テクニック 中川 輪土 N a k a g a w a R i n d o 株式会社イーフロー 事業統括本部 第1事業部 第 2 章 行することができます。Androidは1990年代後半の Javaに似ています。AndroidとJavaの間には10年 分の差があることになります。本章ではこの10年間で 培ったJava高速化手法を元にしたAndroidの高速 化テクニックについて解説します。 Androidアプリケーション 高速化テクニック まずはAndroidアプリケーション高速化のテクニッ クについて解説します。Androidアプリケーションは Java言語で作成するため、Javaアプリケーションの 高速化テクニックがそのまま使えます。 ●インスタンス生成の抑制 インスタンスは以
SDK1.5r3、NDKr3 ソースコード NDKからOpenGLがたたけるということでまずはインストールとプロジェクト作成をしてみるべ というわけでメモ書きです インストールと「hello-jni」実行はブリリアントサービス様のページが素敵過ぎるのでおまかせ http://d.hatena.ne.jp/bs-android/20090707/1246952991 ここではプロジェクト作成をeclipseからするための簡易メモ 1)新規Androidプロジェクト作成 新規Androidプロジェクトの作成でロケーション指定として cyuwin内のNDKインストールしたフォルダ以下の「APP」以下に指定する TsNDKというアプリを作る場合 例)C:\cygwin\home\Ukai2009\android-ndk-r3\apps\TsNDK\project ソースを「project」以下に置
Captcha security check babukuma.com is for sale Please prove you're not a robot View Price Processing
はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28
AndroidでJNIを使う方法をドキュメントにまとめました。 PDF版はこちら Androidのコンパイル環境を構築されていることが前提です。 よろしければAndroidのコンパイル環境を整える方法にあるPDFのコンパイル環境構築資料をご覧ください。 AndroidでJNI – Android meets JNI 株式会社ブリリアントサービス 勉どろいどチーム 和泉憲二 門口敏広 藤田竜史 このドキュメントでは、androidアプリケーション(Dalvik VM)からJNI(Java Native Interface)を使用して、C/C++言語で作成した共有ライブラリのJNIメソッドをコールする、一連の方法について解説します。 開発環境 本ドキュメントでは、以下の開発環境が用意されている事を前提に、説明を進めます。 用意する環境 本ドキュメントにおける確認済みの環境 androidアプリ
Hey all. This blog records my thoughts of the day about my life on the Eclipse CDT project. I will occasionally give opinions and news regarding the Eclipse CDT - the project and its ecosystem - and on open source in general. Please feel free to comment on anything I say. I appreciate it when people are honest with me. And, please, please, consider all of these opinions mine, not of my employer. A
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く