2012-03-11 6 views
0

http://www.reigndesign.com/blog/using-your-own-sqlite-database-in-android-applications/Android - 私のSqlite3データベースをEclipseに入れるための適切な場所? Androidのシステムパスについて

この男の話:

//アプリケーションのデータベースのAndroidのデフォルトのシステムパス。
プライベート静的String DB_PATH = "/ data/data/YOUR_PACKAGE/databases /";

ここでは、DB_PATH = "/data/data/com.android.example/databases/"がsqliteデータベースに関する他の多くのリンクにあります。

問題は、eclipse(mac osx 10.7)でデータディレクトリを作成していないことです.Myroidola xoom(Android 4.0.3 - Ice cream sandwichを使用しています)では、デフォルトのシステムパスを特定できません。私は/データ/データ/を参照して何も参照していない... Astroファイルマネージャを使用しています。

私はMacを使用しているので、モトローラのxoomに私のEclipseワークスペースから私のAPKファイルを転送するためにアンドロイドファイルシステムアプリを使用しなければなりませんでした。私は私の質問の1つがあるべきだと思いました - どこにこれを置くための適切な場所か、それとも問題でしょうか?

私はすでにSqliteデータベースブラウザをダウンロードし、上記のリンクとしてデータベースを埋めました。私は主キーを持っていません。 .dbファイルを自分のプロジェクトの資産フォルダにコピーしました。リンク状態としても使用しています。

また、私のデータベースは既にテーブルを使って作成されているので、誰もが常に言及しているデータディレクトリにテーブルをコピーしてから挿入/更新/選択などができるはずです。等?

私のコード今のところ:

public class DatabaseHelper extends SQLiteOpenHelper { 

private Context myDbContext; 
private static String dbName = "restaurant"; 

public DatabaseHelper(Context context){ 
    super(context, dbName, null, 1); 
    this.myDbContext = context; 

} 

@Override 
public void onCreate(SQLiteDatabase db) { 

     //need to take input from local database and copy it 
     //but where do i copy the information to? what path should i use? 

} 

@Override 
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 
    Log.w(DatabaseHelper.class.getName(), "upgrading database/changing database which will remove all old data!"); 
    db.execSQL("drop table if exists menu"); 
    db.execSQL("drop table if exists items"); 
    db.execSQL("drop table if exists server"); 
    onCreate(db); 
} 

}

+0

私は本当にすぐにコメントします。私はあなたが私の質問をすることができるように、apkからデータベースを取り出し、私のxoomの内容をコピーする必要があることを理解しています。質問は、私はそれを保存するために自分の場所を作ることができるか、それはシステム上の特定のパスになければならないのですか? – cspam

答えて

0

問題は、である日食は、(MAC OSX 10.7上)であるデータディレクトリを作成していませんでし

Eclipseは作成されません。デバイス上の/dataディレクトリ。それは工場からのものです。

と(アンドロイド4.0.3を持っている - アイスクリームサンドイッチ)私のMotorola Xoomの上で私は、デフォルトのシステムパスが何であるかを判断することができません。

Androidには「デフォルトのシステムパス」という概念はありません。

私はモトローラXoomの上に私のEclipseワークスペースから自分のAPKファイルを転送するには、Androidのファイルシステムアプリを使用しなければならなかったのMacを使用していますので。

ほとんどのAndroid開発者は、Eclipseからアプリを実行するだけです。

また、私のデータベースは本当にすべて私が(私は推測する)必要なすべての人が常に言及し、私は挿入/更新/選択を行うことができるはずですそのデータディレクトリにテーブルをコピーする、等など?

SQLiteAssetHelperを使用してください。これは、Eclipseでデータベースをパッケージ化する手順を示し、実行時に適切な場所に解凍します。

関連する問題