Help us understand the problem. What is going on with this article?

IntelliJ IDEA 13の新機能 - AndroidのSQLiteデータベースに直接接続してみた

More than 5 years have passed since last update.

IntelliJ IDEAはバージョン13からAndroidのSQLiteデータベースに直接接続できるようになりました。
これまでもAndroid端末のSQLiteデータベースの中身を参照する方法はいくつかありましたが、rootを取ったり、端末のデータベースファイルをローカルに抽出してからDatabaseツールで参照するなど、ひと手間必要な方法ばかりでした。しかしIntelliJ IDEAの新機能ではroot化の必要無しで、データベースに直接接続することができます。

準備

まずはテーブルにデータをinsertする簡単なアプリを作ってデータを登録し、データベースに接続してみます。

ちょうどormLiteを試していたところなのでそれをサンプルアプリとして使いました。
テキストボックスに入力した内容をwordテーブルに登録してテーブルの全内容をListViewで表示するだけの簡単アプリです。

device-2013-12-08-160622.png

wordテーブルの定義は以下の通り。

カラム 備考
id INTEGER AUTOINCREMENT
value TEXT 入力値を保存

サンプルアプリはGitHubにおいてあります。

https://github.com/radiocat/ormExample

端末に接続

まずはサンプルアプリをUSB経由で端末に転送してインストールします。
次にDatabaseツールウィンドウの+ボタンを押してAndroid SQLiteを選択します。

スクリーンショット 2013-12-05 0.29.05.png

Data Sources and Driversダイアログが表示されるので対象の端末、Package名、Databaseファイル名を選択します。
当たり前ですが端末が繋がった状態でなければ設定できません。
ダイアログの下にSQLite driver missingのエラーが表示されている場合はDownloadをクリックすると自動でダウンロードされます。
スクリーンショット 2013-12-05 2.03.48.png

Synchronizeボタンを押すと接続を行い、指定したデータベース内のテーブルが表示されます。
ここからは既存のDatabaseツールでおなじみのUIです。
スクリーンショット 2013-12-05 2.05.07.png

テーブルを開くと確かに中を参照することができました。
スクリーンショット 2013-12-05 2.06.50.png

MySQLなどのデータベースに繋いだときは自動でテーブルの情報を表示してくれますがAndroid SQLiteの場合は現状ではSynchronizeボタンを押さないと表示されないようです。
とはいえ操作はとても簡単で今までに比べるとずいぶん楽です。

データの更新

テーブルを開いて内容を直接書き換えてみます。
スクリーンショット 2013-12-05 2.07.23.png

変更した内容を端末のアプリに反映させるには右クリック→Uploadする必要があります。
スクリーンショット 2013-12-05 2.10.38.png

通常のデータベース操作よりは1アクション必要ですが、端末上のデータを直接触れるのは便利です。
もちろんデータの追加や削除も同様に行えます。

SQLによるデータ操作

既存のDatabaseツールと同様に右クリック→ConsoleからConsoleウィンドウを立ち上げてSQLを実行することもできます。

スクリーンショット 2013-12-05 2.15.38.png

Database ConsoleにSQLの結果が表示されます。
スクリーンショット 2013-12-05 2.15.48.png

もちろんinsert,update,deleteといった更新クエリも実行できます。

まとめ

Android SQLiteのDatabase機能はAndroid 2.2以上の端末で実行可能とのことです。
もちろん実機だけでなくエミュレーターでも可能でした。

そのほか、IntelliJ IDEA 13からTerminal機能が利用できるようになり、OSのターミナルを起動しなくてもIntelliJの中でコマンドを発行できるようになりました。
Androidの開発ではadbコマンドなどを発行する時にターミナルを使うことがよくあるのでこの機能も地味に便利です。

スクリーンショット_2013-12-08_16_16_21.png

また、Android DDMSウィンドウの左上にカメラマークのアイコンが追加され、スクリーンショットを撮ることができるようになりました。
わざわざ個別にDDMSを立ち上げる必要がありません。これも地味に便利です。
スクリーンショット 2013-12-08 16.13.57.png

Database機能はUltimate Editionのみの機能ですがデザイナ機能などDatabase以外の機能も強力なのでAndroid開発者は購入して損は無いと思います。

radiocat
Web系技術とAndroidアプリ開発が中心。スクラムマスターもやってます。 よろしくお願いします。
http://radiocat.hatenablog.com/
rakus
「IT技術で中小企業を強くします!」というミッションを掲げ、中小企業の業務効率化に貢献する複数のクラウドサービスを提供しているIT企業です。「楽楽精算」「メールディーラー」など、国内トップシェアを誇る複数のサービスを開発し、累計導入社数は5万社を超えています。次の時代の"楽"を創るための、まだ見ぬサービスや機能を生み出す取り組みは、今日も続いています。
https://www.rakus.co.jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした