【Android】AndoroidとPCをadbで接続ファイルを操作する

今日は、AndroidとPCをadbで接続する備忘録です。
実際には備忘録を残す必要もないのだけれども、たまにしか触らないので念のため備忘録しておきます。

1)お約束のadb devicesを行います。
  
adb devices
  ちゃんと接続されたら、接続一覧がでます。

2)ファイルを取得する時
 adb pull /sdcard/test.txt c:\test\test.txt
 adb pull /sdcard/test.txt .
とかします。

3)ファイルを配置する時
 adb push c:\test\test.txt /sdcard/test.txt
とかします。

4)ファイルの有無を確かめる時
 adb shell /sdcard/
とか
 adb shell /sdcard/test*
 とかします。

以上、AndroidとPCをadbで接続ファイルを操作するでした

新しいスマホへデータ移行

新しいスマホへデータ移動 画像android スマホを 新しいスマホへデータ移行 することになりました。
新しいと言っても色違いのスマホへ交換するだけなんですけどね。。それでも新しいスマホへ旧スマホのアプリやデータを移動させる必要が出来ました。

 

新しいスマホへデータ移行

データバックアップの状態確認

最初にデータがGoogleのデータバックアップがONになってるか確認しました。
ついでに同期もちゃんと出来てるか確認
データのバックアップ確認画像データ同期の確認

次にデータを移す方のスマホを初期化しました
データの初期化実行画像初期化中画像

立ち上がるのを待って、セットアップします。

「タップ&ゴー」

途中で「タップ&ゴー」画面が立ち上がります。
(スナップショット取れました。後で貼り付けます)
タップアンドゴー画面

端末をセットアップする際にタップ&ゴーを利用すると、現在の Android 搭載端末から新しい Android 搭載端末に、すべての Google アカウント、バックアップ済みのアプリ、データをすばやくコピーすることができます。

条件として、新しい端末が Android 5.0 以降を搭載していることと、現在の端末が Android 4.0 以降を搭載していて NFC を有効にしていることが必要です。

NFCで端末同士の確認が行われます。(事前にNFCのONが必要)
現在の端末の画面に「この端末からアカウントとデータをコピーしますか?」というメッセージが表示されたら、[OK] をタップします。この処理には Bluetooth が使用されます。

復元?が開始されます。
タッチアンドゴー復元画面

データ移行確認

設定が完了すると、すべての Google アカウントのデータと関連付けられているアプリが新しい端末で利用できるようになります。

どんどんアプリがインストールされている状況
どんどんアプリが入っていく画像
アプリがダウンロードされている状況がわかります。

Google Play開発者サービスなどは、ユーザの許可が必要みたいなので、許可してやります

インストールされる前は、白っぽい感(山旅ロガー)じで、インストールされると普通のアイコンに(地図ロイド)

でも、全部が更新とかされるわけではなさそうなので、後からちゃんと更新とかしてあげる必要も有りそう。

後、セキュリティソフトのアバスト(avast)を入れてたのですが、入っていません。
起動されてないだけかな?
Google Playのインストール済のところにアバストちゃんとインストール済、最新って出てました。
起動したらちゃんと動き出しました。

電話のアドレス帳もちゃんと入ってました。
Lineはやって無いのですが、多分Lineアカウントは引き継げないと思いますので、手でやってあげる必要があると思います。でも、メールアドレスとパスワードがわかってたら、問題なく移行できますし。手間もそんなにかからないですよね。

さすがに時計のアラーム設定とかはデータ移動されてませんでした^^;
寝坊しないように再セットをお忘れなく。

山旅ロガーのデータ移行もできてなかった。。。
まぁ、仕方ないですよね。

感想

ローカルに有る写真とかはどうなのかな?
どこまでがBluetooth 経由でコピーしてくれるのか、わかりません。
ローカルでいろいろ保存している人はその辺りは要注意かもです。

私の場合写真も含めネットワーク上に保存出来るものはネットワークに保存しているので、最初のセットアップ以外はほぼ何もせず移行できました。
アプリのデータは、面倒なので諦めました。。。

画面のアイコンの配置も全くそのままで、以前に比べると楽に移動できますね。

 

 

【Android】SQLiteのデータベースを削除する

SQLliteのDatabaseをTable名を変更するために、Table削除、作成を行うよりDatabase削除をした方が簡単なので、Databaseを削除しようと思ったので、その備忘録です。

SQLliteのDatabaseは、/data/data/[アプリのパッケージ名]/databasesに在ります。
そして、Database削除を行うためには、そこにある2つのファイルを削除します。
「作成したDB名.db」と「作成したDB名.db-journal」です。

rm 作成したDB名.db*

※journalは消さなくてもいいかも?私は消しちゃいました。

ちなみに、adb shell で接続してもそのままのユーザ権限では、/data以下のファイルやディレクトリを表示できませんでした。
なので、su root して、root権限を取得して削除しました。
※他にも方法があるかもしれませんが、思いつかなかったので。。。

以上、SQLiteのデータベースを削除するでした。

【Android】別(呼び出し元)タスクの画面のオブジェクトへのfindViewByIdが未定義となる

メインスレッドからネットワーク処理ができないことで、HTTP通信を別タスクにしました。
サーバ処理結果を呼び出し元の画面に表示の際に、findViewByIdを使用したところ、未定義ですとなりエラーになってしまいました。

なぜか理解できませんでしたが、参照できていないんだろうと。。。。

そこでググったところ、AsyncHttpRequestを作る際に呼び出し元のActivityをとっておいて、その利用すれば良いことがわかりました。

private Activity mainActivity;
public AsyncHttpRequest(Activity activity) {
this.mainActivity = activity;
}

@Override
protected void onPostExecute(String result) {
TextView textview1 = (TextView)mainActivity.findViewById(R.id.textvew_result);
textview1.setText(result);
}

のような感じで正常に表示されるようになりました。
以上、簡単なことでしたが、備忘録まで。

【Android】httpClient.execute()で異常終了

AndroidからHTTP通信でサーバへデータを送信し、結果を受け取るプログラムを書いていたところ、httpClient.execute()を実施したところで異常終了を起こしてしまいました。
NetworkOnMainThreadExceptionというエラーが発生してしまうためでした。

ググったところ、Android3.0以上では メインスレッドからネットワーク処理を行うことを許していないらしい・・・ということが書かれていました。

そこで、AsyncTask・・・doInBackground()を使って、別タスクでhttpClient.execute()を行ったところ、正常に通信できるようになりました。
Android開発は初めて間もないので、変なところで詰まってしまします^^;

とりあえず、備忘録まで。

【Android】ADBをTCPIP(Wifi)で接続する

NFCリーダーを使用した開発をしている場合など、ADBをUSB接続で行っていると、何かと不便です。
そこで、ADBをWifiを使用してTCPIPで接続すれば、NFCリーダーもUSBハブなどを介さずそのまま接続できます。

deviceが複数ある場合は、deviceを選択してから実施することになると思いますが、1つしかない場合は、以下の手順でいけます。
1)USBで接続
2)adb devicesで確認
3)adb tcpip 5555
 ポート番号5555はデフォルト値みたいですが、私は他のポート番号で接続しています。
4)adb connect xxx.xxx.xxx.xxx:5555
 5555で接続すると5555:5555となるので、5555の場合は要らないかも。。。
 予め、タブレットのIPアドレスを確認しておくこと。
5)adb devicesで確認
6)USBを切離し

※タブレットがスリープになると接続が切れるらしいです。
やったことはないのですが、その場合は、多分再度4)のconnectから接続してあげる必要があると思います。

※追記(2013/11/21)
手持ちのタブレットでconnectしたのち、USBを切り離すとTCPIP(Wifi)経由の接続も切れてしまうものが発生。
USBを切離し後にconnectすると接続できない。。。
原因はわかりませんが、全部が全部できないみたいです。
ちなみに、Android4.2.2で発生しました。

ADB Wirelessというアプリで上のタブレットも無事にTCPIP(Wifi)で接続できました。(root権限が必要です)

以上

【Android】AD702のADB接続

マウスコンピュータのAD702をADB接続する際の「android_winusb.inf」用のインターフェース記述の備忘録です。
(他の開発マシンに設定する際の備忘録です。)

;AD702
%SingleAdbInterface% = USB_Install, USB\VID_18D1&PID_DEED
%CompositeAdbInterface% = USB_Install, USB\VID_18D1&PID_DEED&MI_01

「adb_usb.ini」への追加は「PLOYER / momo9 III」と同じベンダーIDだったので今回は編集していません。

以上

【Android】momo9 IIIのADB接続

中華PADの「PLOYER / momo9 III」をADB接続する際の「android_winusb.inf」用のインターフェース記述の備忘録です。

;momo-9 3
%SingleAdbInterface% = USB_Install, USB\VID_18D1&PID_0003
%CompositeAdbInterface% = USB_Install, USB\VID_18D1&PID_0003&MI_01

「adb_usb.ini」への追加はしなくても接続できたので今回は編集していません。

以上

【Android】Log.dでログが表示されない

ある開発PCでLog.dでログが出力されないままでした。
AndroidManifest.xmlのdebuggerbleはtrue設定しています。

そこでググったところ、Platform-toolsのパスを追加すれば幸せになるとの記述が有ったので実施しました。
追加後、eclipseを再起動して確認したところ正常に表示されました。

以上、備忘録まで

【Android】eclipseで外部jarをlibsへ配置するには

eclipseで外部jarをlibsへ配置するには。。。
どうやって実施すれば良いのか、わかっていませんでしたが、なんとなくこれでOKというのを発見しました。

今までは、どうやってインポートするのかなぁ?と思いつつ、いろいろ試してもlibs配下に入らず、余所のフォルダに入ったり、展開されて入ったりしていました。
しかし、サンプルソースとかを見ると、ちゃんとLibsに入っているので、どうやるんだろうと??思っていました。

そこで、試行錯誤で試してみたところ、
PCのエクスプローラーからファイルをドラッグして、libsに落としてやると実現できました。
こんな簡単なことに気が付かなかったとは、、、、

以上、備忘録まで