<< 2011/09/14トップページ2011/09/16 >>
2011年9月15日

高負荷で落ちるねぇ

さてさて

SQLiteのダンプ取込みをJNIで組みましたぁ

まあ、シンプルな構造です
小さなダンプだと問題ありませんw

ただ。。。
レコード数が多いと以下のログを吐出します。。。
----------------------------------------
09-15 08:53:04.163: INFO/ActivityManager(59): Low Memory: No more background processes.
09-15 08:53:08.922: INFO/ActivityManager(59): Process jp.co.omronsoft.openwnn (pid 1080) has died.
09-15 08:53:08.942: WARN/ActivityManager(59): Scheduling restart of crashed service jp.co.omronsoft.openwnn/.OpenWnnJAJP in 5000ms
09-15 08:53:08.942: INFO/ActivityManager(59): Low Memory: No more background processes.
09-15 08:53:11.753: INFO/ActivityManager(59): Process jp.or.test02a (pid 1362) has died.
09-15 08:53:11.913: INFO/ActivityManager(59): Start proc com.android.launcher for activity com.android.launcher/com.android.launcher2.Launcher: pid=1535 uid=10025 gids={}
09-15 08:53:11.913: INFO/ActivityManager(59): Low Memory: No more background processes.
----------------------------------------

そう「Low Memory: No more background processes.」
悲鳴を上げてますね(^^;)

トランザクションでメモリー食ってるのかなぁ
また調べモノがぁ増えたぁ


一応、繰返しロジックはこんな感じ

sqlite3 *db;
int rc = sqlite3_open("/sdcard/cmkdata/test_3.DB", &db);
sqlite3_stmt *st;

strcpy(fs1,"");


while ( fgets(fs,n,fp)!= NULL){

ct++;

strcat( fs1, fs );


ret = strrchr( fs1,';');
if(ret != NULL){


if((strlen( fs1 ) - 2) == (ret - fs1)){


rc = sqlite3_prepare(db, fs1, -1, &st, NULL);

rc = sqlite3_step(st);




strcpy(fs1,"");

}


}



}


sprintf(pszRet,"%ld",ct);

sqlite3_finalize(st);

sqlite3_close(db);


シンプルすぎるのかなぁwww

投稿者:秀at 18:49 | さんでープログラム(Android編) | コメント(0) | トラックバック(0)

参照メンバ名は同じゃなかったw

ふむ
SQLiteのVer2とVer3のメンバー名同じジャナカッタww
DBオープンもsqlite3_openとsqlite_openだったww
思い込みは怖いねww


まあ、それはそれとして

Javaで個別のJNIライブラリ読込みについて

結果は、こんな感じ
android019
出来たね〜〜


別々にJNIライブラリを作成して
Java側から参照する様にしてます。


少し端折りますが

ライブラリTest02jniでは
sqlite.h(Ver2用)を参照(include)します。

ライブラリTest02v3jniでは
sqlite3.h(Ver3用)を参照(include)します。


個々で別々のメンバ作成します。
今回は「stringFromJNI」(Ver2側)と
「sqliteDBv3」(Ver3側)ですね。

jniフォルダーに個別フォルダーを作ってAndroid.mkを作ります。
何でも良いのですが
今回はTest02フォルダーとTest02v3フォルダーですね。

jniフォルダーにも配下ホルダーを参照する
Android.mkを作ります。
中身は「include $(call all-subdir-makefiles)」だけです。

NDKでビルド(ndk-build)してライブラリを作ります。

あとは、Java側(Activity)で
Test02jniとTest02v3jniの
ライブラリを参照します。

static {
System.loadLibrary("Test02jni");
System.loadLibrary("Test02v3jni");
}
だね

あとはJavaで
個々のメンバ名を参照で
「stringFromJNI」とか
「sqliteDBv3」とか使えば良いですね

ふむぅ(^^;)無理やりポイ感じがぁww
何とか成る事は、なったかぁ・・・

ま〜ダンプ取込んでVer3DB作成する
ロジックをテストで組んで見るかぁ〜〜〜

投稿者:秀at 00:08 | さんでープログラム(Android編) | コメント(0) | トラックバック(0)

<< 2011/09/14トップページ2011/09/16 >>
▲このページのトップへ