jni学習
1509 ワード
1.EclipseでHellJniプロジェクトを作成します.
2.ローカルメソッドを作成します.
3.demo root$javac AESEncryptを実行します.java
srcディレクトリsrc root$javah-classpath.-jni com.demo.AESEncrypt、その後生産com_demo_AESEncrypt.hファイル.
4.
注意:
1. fatal error: string: No such file or directory compilation terminated.
1.jniディレクトリの下にアプリケーションを新規作成する.mk; APPに参加するSTL := stlport_staticの右側の値は、次のように変更できます.
System-デフォルトの最小C++を使用してライブラリを実行します.これにより、生成されるアプリケーションの体積が小さく、メモリの消費量が小さくなりますが、一部の機能はサポートされません.
stlport_static-STLportを静的ライブラリとして使用しており、Android開発網が極力推奨している
stlport_shared-STLportはダイナミックライブラリとして、互換性と一部の低バージョンのAndroidファームウェアを生成する可能性がありますが、現在は推奨されていません.
gnustl_static-GNU libstdc++を静的ライブラリとして使用
STLPORTはデフォルトではC++例外処理やRTTIはサポートされていませんので、-fexceptionsや-frttiは表示されません.本当に必要ならgnustl_を使用してください.staticは標準C++の特性をサポートしますが、生成されるファイルの体積が大きくなり、実行効率が低下します.
C++異常処理をサポートし、Application.mkにLOCAL_を入れるCPPFLAGS+=-fexceptionsという文は、同じようにRTTIをサポートするならLOCAL_を加えるCPPFLAGS+=-frttiは、stlportではなくgnustl静的ライブラリを使用することを改めて注意します.
強制的にSTLPortを再コンパイルし、Application.mkにSTLPORT_を入れるFORCE_REBUILD:=trueは、STLPortソースコードの再コンパイルを強制することができます.いくつかの理由で、STLPortライブラリを自分で変更する必要がある場合があります.一般的な一般的な開発者はこれを使用する必要はありません.
2.STLを使用するcppファイルに関連するヘッダファイルを含み、using namespace stdを使用する.
2.ローカルメソッドを作成します.
package com.demo;
public class AESEncrypt {
public native void encryp_data(byte[] key, byte[] buff, byte[] out);
public native String decryp_data(byte[] key, byte[] buff);
static
{
System.loadLibrary("AES");
}
}
3.demo root$javac AESEncryptを実行します.java
srcディレクトリsrc root$javah-classpath.-jni com.demo.AESEncrypt、その後生産com_demo_AESEncrypt.hファイル.
4.
注意:
1. fatal error: string: No such file or directory compilation terminated.
1.jniディレクトリの下にアプリケーションを新規作成する.mk; APPに参加するSTL := stlport_staticの右側の値は、次のように変更できます.
System-デフォルトの最小C++を使用してライブラリを実行します.これにより、生成されるアプリケーションの体積が小さく、メモリの消費量が小さくなりますが、一部の機能はサポートされません.
stlport_static-STLportを静的ライブラリとして使用しており、Android開発網が極力推奨している
stlport_shared-STLportはダイナミックライブラリとして、互換性と一部の低バージョンのAndroidファームウェアを生成する可能性がありますが、現在は推奨されていません.
gnustl_static-GNU libstdc++を静的ライブラリとして使用
STLPORTはデフォルトではC++例外処理やRTTIはサポートされていませんので、-fexceptionsや-frttiは表示されません.本当に必要ならgnustl_を使用してください.staticは標準C++の特性をサポートしますが、生成されるファイルの体積が大きくなり、実行効率が低下します.
C++異常処理をサポートし、Application.mkにLOCAL_を入れるCPPFLAGS+=-fexceptionsという文は、同じようにRTTIをサポートするならLOCAL_を加えるCPPFLAGS+=-frttiは、stlportではなくgnustl静的ライブラリを使用することを改めて注意します.
強制的にSTLPortを再コンパイルし、Application.mkにSTLPORT_を入れるFORCE_REBUILD:=trueは、STLPortソースコードの再コンパイルを強制することができます.いくつかの理由で、STLPortライブラリを自分で変更する必要がある場合があります.一般的な一般的な開発者はこれを使用する必要はありません.
2.STLを使用するcppファイルに関連するヘッダファイルを含み、using namespace stdを使用する.