2

私はAndroidで開発を始めたばかりで、現在はすばらしいアプリAIDEを使用してデバイス(GalaxyNexusとNexus7の両方)で直接コードを記述しています。

ここを見ると、adbを使用してDBをコンピューターにプルするための答えはたくさんありますが、私はコンピューターを使用していません。

アプリをデバッグ可能モードでビルドし、「run-as」を使用することで回答が表示されますが、権限なしのエラーが発生します。私には根がなく、それを身につけることを完全に嫌うわけではありませんが、これを行うための根以外の方法がないことを確認したいと思います。

私はconnectbotを使用してrun-asのものを試しています。

前もって感謝します

4

2 に答える 2

1

http://sourceforge.net/projects/asqlitemanager/のようなツールは、SDカード上にあるローカルSQLファイルの読み取りと書き込みを行うことができます。(電話をルート化せずに)ルート化された
電話では、多くのアプリケーションがシステムDBに対しても読み取り/書き込みを行うことができます。

最初に暗号化せずにローカルDBに重要なデータを配置しないことをお勧めします


編集:
私が正しく理解している場合、あなたはSQLiteアプリケーションを持っていて、アプリケーションの外部から(ただし、デバイス上で)sqliteDB にアクセスしたいと考えています

この場合、アプリケーションに「シークレット」オプション(デバッグバージョンのみ)を設定して、からアクティビティを開始しようとしますexternal sqlite browser application
または、DBをSDカード上のフォルダーにコピーするアクティビティを実行して、簡単に編集できるようにすることもできます。
しかし、本当に必要なのは何ですか。
値のみを表示する必要がありますか?
構造を確認する必要がありますか?
DBを完全に編集する必要がありますか?
(これらの質問への回答に基づいて)完全なsqliteエディターを使用せずに、データをダンプ(SDカードのtxtファイルに書き込む)するだけでよい場合があります。

于 2012-09-09T12:20:21.890 に答える
0

私には根がなく、それを身につけることを完全に嫌うわけではありませんが、これを行うための根以外の方法がないことを確認したいと思います。

あなたの側で作業せずにこれを行うためのルート以外の方法はありません。あるアプリ(たとえば、AIDE)には、別のアプリ(たとえば、あなたのアプリ)の内部ストレージにアクセスする権限がありません。

非ルートオプションには次のものがあります。

  • データベースを外部ストレージにコピーするバックアップ機能をアプリに追加します。この時点で、前の投稿で説明したaSQLiteManagerなどのアプリを使用できます(Playストアでも直接入手できます)。

  • ある種のSQLiteエディターを開発中に一時的にアプリに組み込み、本番環境に移行するときに削除します。

于 2012-09-09T12:22:35.663 に答える