Effective Android NDK Advanced Core Engineer

Similar documents
日本アンドロイドの会 四国支部 Kickoff ミーティング in ABC2009


-2-

1 C STL(1) C C C libc C C C++ STL(Standard Template Library ) libc libc C++ C STL libc STL iostream Algorithm libc STL string vector l


<4D F736F F D CF097AC E A D836A B2E646F6378>


IBM の Java 活用ガイド_rev2

第3章 OpenGL の基礎

JVMTIを使った超低負荷プロファイラの作成

アプリケーションプロセッサを用いた画像ソリューションの構築

コンバートスター15シリーズ 製品パンフレット

第3章 OpenGL の基礎

<4D F736F F D20566F F6E658C6791D FE382C582CC4A D834F E F8F4390B394C52E646F63>


10/ / /30 3. ( ) 11/ 6 4. UNIX + C socket 11/13 5. ( ) C 11/20 6. http, CGI Perl 11/27 7. ( ) Perl 12/ 4 8. Windows Winsock 12/11 9. JAV

もくじ 1. Android とは? 2. Android アーキテクチャ 3. Android 開発 (OS 編 ) 4. Android 開発 ( アプリ編 ) 5. Android アプリ実演 6. Android の今後について

: : : TSTank 2

2 1 Web Java Android Java 1.2 6) Java Java 7) 6) Java Java (Swing, JavaFX) (JDBC) 7) OS 1.3 Java Java

新・明解Java入門

19 3!! (+) (>) (++) (+=) for while 3.1!! (20, 20) (1)(Blocks1.java) import javax.swing.japplet; import java.awt.graphics;

1: Android 2 Android 2.1 Android 4 Activity Android Service ContentProvider BroadcastReceiver Activity ( ): Android 1 Android Service ( ): ContentProv

Microsoft Word - keisankigairon.ch doc

Agenda Intro & history LLVM overview Demo Pros & Cons LLVM Intermediate Language LLVM tools

untitled

r3.dvi

2 以下の作業を行ってください ダウンロード URL Eclipse 3.7 Indigo Pleiades All in One を選択します Full All in One(JRE あり ) の Java を選択し パソコンの任意の

JS2-14 マルチコアCPU時代の Javaプログラミング

ASP.NET 5 Web 開発 ~ フレームワーク編 ~

Java演習(4) -- 変数と型 --

r1.dvi

2 ColorSpace DepthSpace CameraSpace Kinect V2 Kinect V2 BOdyIndex 3. NtKinect Kinect V2 C++ NtKinect [4] NtKinect = Kinect SDK + + STL(C++) + OpenCV +

02


K227 Java 2

(STL) STL 1 (deta structure) (algorithm) (deta structure) 2 STL STL (Standard Template Library) 2.1 STL STL ( ) vector<int> x; for(int i = 0; i < 10;

07-二村幸孝・出口大輔.indd

mbed_library_study_meeting_v1.0.key

untitled


TOPPERS 活用アイデア アプリケーション開発 コンテスト 部門 : 活用アイデア部門アプリケーション開発部門がじぇるね IoT 部門作品のタイトル : TOPPERS_ASP3 カーネルと astah*-uml による状態マシン図でのソフト設計と動作検証の試み作成者 : 塩出武 ( しおでたけ

WebGL OpenGL GLSL Kageyama (Kobe Univ.) Visualization / 57

Adobe LiveCycle Workbench 11 のインストール

Adobe AIR のセキュリティ


@makoto_anjo (Computer Science) Google Desktop(Hall of Fame)


解きながら学ぶJava入門編

UR242 Operation Manual

Android Layout SDK プログラミング マニュアル

橡計画0.PDF


やさしいJavaプログラミング -Great Ideas for Java Programming サンプルPDF

fiš„v8.dvi


Presentation

Transcription:

Effective Android NDK Advanced Core Engineer

Effective Android NDK

Effective Android NDK NDK NDK NDK JNI

Effective Android NDK native java native NDK

NDK

NDK C, C++ native toolset Android java native

NDK

Android... native

3D

... OpenGL ES

C, C++ Android iphone OpenGL ES API

... 3D androido3d Android iphone

NDK

Android NDK, revision5 NDK NDK eclipse, ADT, Android SDK Windows cygwin

... java eclipse native emacs eclipse CDT...

JNI

JNI Android http://www.atmarkit.co.jp/fwcr/rensai2/

native native

NDK tweet... VM JNI reply...

... JNI

native

NDK java native java native

... java X,Y,Z native X,Y,Z

Java OpenGL ES (X, Y, Z) Java

java native

java java.nio.bytebuffer

java.nio.bytebuffer ByteBuffer Java

Java

buffer import java.nio.bytebuffer import java.nio.floatbuffer... int num = * 3 * 4; // 3... x, y, z 4... float float x = X ; float y = Y ; float z = Z ; ByteBuffer buffer = ByteBuffer.allocateDirect(num); buffer.order(byteorder.nativeorder()); FloatBuffer floatbuffer = buffer.asfloatbuffer(); floatbuffer.put(x); //put 1 floatbuffer.put(y); floatbuffer.put(z); nativesetpositionbuffer(floatbuffer, ); //JNI

buffer import java.nio.bytebuffer import java.nio.floatbuffer... int num = * 3 * 4; // 3... x, y, z 4... float float x = X ; float y = Y ; float z = Z ; ByteBuffer buffer = ByteBuffer.allocateDirect(num); buffer.order(byteorder.nativeorder()); FloatBuffer floatbuffer = buffer.asfloatbuffer(); floatbuffer.put(x); //put 1 floatbuffer.put(y); floatbuffer.put(z); nativesetpositionbuffer(floatbuffer, ); //JNI

import java.nio.bytebuffer import java.nio.floatbuffer... int num = * 3 * 4; // 3... x, y, z 4... float float x = X ; float y = Y ; float z = Z ; ByteBuffer buffer = ByteBuffer.allocateDirect(num); buffer.order(byteorder.nativeorder()); FloatBuffer floatbuffer = buffer.asfloatbuffer(); floatbuffer.put(x); //put 1 floatbuffer.put(y); floatbuffer.put(z); nativesetpositionbuffer(floatbuffer, ); //JNI

JNIEXPORT void JNICALL Java_com_foo_bar_nativeSetPositionBuffer (JNIEnv *env, jobject thiz, jobject buffer, jint num) { float *buf = (float *)env->getdirectbufferaddress(buffer); for(int i = 0; i < num; i++) { float x = *buf++; // Java X } } float y = *buf++; // Java Y float z = *buf++; // Java Z...

JNIEXPORT void JNICALL Java_com_foo_bar_nativeSetPositionBuffer (JNIEnv *env, jobject thiz, jobject buffer, jint num) { float *buf = (float *)env->getdirectbufferaddress(buffer); for(int i = 0; i < num; i++) { float x = *buf++; // Java X } } float y = *buf++; // Java Y float z = *buf++; // Java Z...

NDK

toolchain (Stable API)

android-ndk-1.5_r1 libc (C library) headers libm (math library) JNI interface headers libz (Zlib compression) liblog (Android logging) C++ <cstddef>,<new>,<utility>,<stl_pair.h>

android-ndk-1.6_r1 libc (C library) headers libm (math library) JNI interface headers libz (Zlib compression) liblog (Android logging) C++ <cstddef>,<new>,<utility>,<stl_pair.h> The OpenGL ES 1.x Library

android-ndk-r3 libc (C library) headers libm (math library) JNI interface headers libz (Zlib compression) liblog (Android logging) C++ <cstddef>,<new>,<utility>,<stl_pair.h> OpenGL ES 1.x and OpenGL ES 2.0 Library

toolchain, r5 libc (C library) headers JNI interface headers libm (math library) headers libz (Zlib compression) headers liblog (Android logging) header OpenGL ES 1.1 and OpenGL ES 2.0 (3D graphics libraries) headers

toolchain, r5 libjnigraphics (Pixel buffer access) header (for Android 2.2 and above). A Minimal set of headers for C++ support OpenSL ES native audio libraries Android native application APIS

r5 STL assets Activity native

native