事象の水平線

個人的ブックマーク代わりなメモ書きブログ。 地球は丸いよ。↓このへん。

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

PageTop
SQLcipher はAndroidでSQLiteをAES暗号化するナイスなライブラリ
BSDライセンスっぽいので商用でも安心して使えそう。

SQLcipherの使い方はググれば簡単に素敵な記事が見つかるので省略。

同様にセキュリティ関連でJNIを一緒に使おうとして数時間ハマッタので共存させるメモ。

簡潔に答えのみを
/jni/以下に適当なフォルダ(今回はexternal/armeabi/)を作りsqlcipherのlibsに入れるべきファイルを入れる。
sqlcipher.png

Android.mkを以下のような感じにする。

include $(CLEAR_VARS)
LOCAL_MODULE := OwnJNISource
LOCAL_SRC_FILES := OwnJNISource.cpp
include $(BUILD_SHARED_LIBRARY)

include $(CLEAR_VARS)
LOCAL_MODULE := database_sqlcipher
LOCAL_SRC_FILES := external/armeabi/libdatabase_sqlcipher.so
include $(PREBUILT_SHARED_LIBRARY)

include $(CLEAR_VARS)
LOCAL_MODULE := sqlcipher_android
LOCAL_SRC_FILES := external/armeabi/libsqlcipher_android.so
include $(PREBUILT_SHARED_LIBRARY)

include $(CLEAR_VARS)
LOCAL_MODULE := stlport_shared
LOCAL_SRC_FILES := external/armeabi/libstlport_shared.so
include $(PREBUILT_SHARED_LIBRARY)

以上でOK

説明としては、JNIで.soをビルドする時に他の.soを消してしまうので、既存の.soを別ディレクトリからコピーするようにする。らしい。
armeabi-v7a と x86 についてはどうするかは調べてないです。
→調べてみた。『JNI と SQLcipher の共存    と複数ターゲット

詳しい説明は以下参照
Android NDK の使用とapkファイルへの入れ方
.[ Android ] 自分でコンパイルした既存のビルド済みの複数の共有ライブラリ(lib***.so)を使う方法。 Android.mk の設定が必要

スポンサーサイト

PageTop
EclipseでAndroid SDK を更新したら勝手にできるようになったappcompat_v7

Android 4.xのActionBarに関係するらしいけど、全く使わないのでappcompat_v7_xを消して以前のActivityでプロジェクトを作る個人的メモ。
(多国語対応の/res/values/string以外のリソースxmlは使わずソースで書く派なのであしからず)

通常通り
ファイル>新規>Android アプリケーション・プロジェクト
からプロジェクトを作る。

appcompat_v7_2とか出来てるから
右クリックで削除
ディスク上からプロジェクト・コンテンツを削除 (元に戻せません) にチェック

MainActivity.javaを開き
public class MainActivity extends ActionBarActivity {
のActionBarActivityをただのActivityにする

Activityの赤下線にカーソルを持って行き
'Activity'をインポートします(android.app) をクリック
赤線のついてるimportは削除
onCreateの中のsuper以外は削除
onCreate以外のメソッドは削除

/res/values/styles.xmlの
Theme.AppCompat.Light → android:Theme.Light
に変更
それだけではまだ赤バツなので
ctrl-A ctrl-x ctrl-v
(全部選んでカットしてペースト これで直る。多分Eclipseのバグ プロジェクト>クリーンでも多分直る)

/res/values-v11
/res/values-v14
/res/values-w820dp

とかとか削除

/res/menu/main.xml
削除

あとは、デバッグボタンを押すとか、プロジェクト>クリーンとかで 赤バツ半全部消える はず。

PageTop
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。