移植可能にしたい場合はandroid.database.sqlite
、直接使用できません。@msh が提案したように、インターフェースの背後に隠す必要があります。独自のインターフェースを発明する代わりに、既存のインターフェースを使用できます: java-jdbc :
csv と sqlite データベースの間で変換するポータブル android/java-se ライブラリを作成しました。
ライブラリの初期化により、他の jdbc インターフェイス (接続、ステートメントなど) へのアクセスを許可する jdbc ドライバー (java.sql.Driver) が取得されます。
org.sqldroid.SQLDroidDriverは、android 側ではオープンソースの android jdbc ドライバー、java-se-side ではorg.sqlite.JDBCを使用できます。
Android側でjdbcドライバーマネージャーを使用すると問題が発生したため
new org.sqldroid.SQLDroidDriver()
、ライブラリを初期化する代わりにAndroidクライアント側で使用しました
私のポータブル ライブラリは 3 つのライブラリで終了しました。
- @msh -s answer で説明されているように、android と java-se の実装の違いを隠す csv/sql とインターフェイスを含む 1 つのポータブル ライブラリ
- インターフェイスの 1 つの Android 固有の実装と
- インターフェイスの 1 つの java-se 固有の実装。
現在、プラットフォーム固有の部分にはログ記録のみがあります (log4j または android ログによって実装されています)。
java-se での統合テストは Android 側よりもはるかに簡単であるため、csv lib は両方のプラットフォームでうまく機能します。これは技術ライブラリです。
しかし、私はビジネスコードを共有ライブラリに入れることに失敗しました。多くの android api-s は、android-sandbox (コンテキスト) に依存しており、アクティビティ、ブロードキャストなどが継承され、java-se には存在しません。