Google OS実験室 ~Moonlight 明日香~

GoogleのAndroidで遊び始めて, すでに6年以上が経った. Androidは思った以上の発展を遂げている. この技術を使って, 新しいことにチャレンジだ!!

Android

Wifi経由でadb接続する

普段, Androidアプリのデバッグは, PCとAndroid端末をUSBでadb接続して行っている.
しかし, 今回はAndroidのUSB Host APIを使ってArduino UNO(R3)とのUSB接続をデバッグしたいので, PCとAndroid端末をUSB接続できない. そこで, Wifi経由でのadb接続を利用することにした.
以前, Android 2.xxの時に一度試したことがあるが, その時はなぜか成功しなかった.
今回は, 安定してadb接続することができたので, その手順をまとめておく.

[手順] [1]
1. usbケーブルでPCとAndroid端末を接続する.
2. Android端末をネットワークに接続する.
3. Android端末のIPアドレスを調べる. (設定>Wi-Fiから)
4. コマンドプロンプトを起動する.
5. ">adb tcpip 5555"を実行する.
6. ">adb connect IPアドレス:5555"を実行する.
7. usbケーブルを外す.
8. ">adb devices"でAndroid端末がリストされるか確認する.

[動作例]
Nexus 7 (2013) / Android 4.4.4

adb01

もし, 切断する場合は, ">adb disconnect IPアドレス:5555"を実行する.

----
参照URL:
[1] ネットワーク越しにadb接続する<< TechBooster


Android 5.0 Lollipopにしてみた!

2014年11月12日に, Nexusシリーズ向けにAndroid 5.0(Lollipop)の提供が開始された.

さっそくNexus 7 (2012)をAndroid 5.0にしてみた.

手順は簡単.
1) 「Factory Images for Nexus Devices[1]からNexus7(WiFi)用Android 5.0イメージをダウンロードする.
2) 「
Nexus7にファクトリーイメージを書き込む [2]を参照し, ファクトリーイメージを書き込む.

アップデート後:
Nexus01

Nexus02

アップデートは完了.

Android 5.0 Lollipopでは, 「Material Design(マテリアルデザイン)」が採用されており, 見た目が洗練された感じがする.

----
参照URL:
[1] Factory Images for Nexus Devices
[2] Nexus7にファクトリーイメージを書き込む

CTSテストを試してみる

CTS実行環境を構築したので, CTSテストが正しく動作するか確認してみた.
本来ならGoogle社のNexus7等で試すのが一番良いのだが, 端末内のユーザデータ等を初期化する必要があるので, 今回はMSI社のPrimo81上で試してみた.

MSI Primo81
 CPU : Allwinner A31s Quad core 
 OS : Android 4.4 (4.2からupdate)
 メモリ :  DDR 1GB

1. CTSテスト実行[1]
 1) 「CTS実行環境を構築する」のテスト実行手順に沿って, Primo81の各種設定, アプリのインストール, テストデータのコピー等を行う.
 2) CTSプログラムを起動し, テストプラン"CTS"を実行する.
  cts-tf > run cts --plan CTS

2. テスト結果
 Primo81のテスト結果は以下の通り.

cts-02

テストが終了した時に, 画面にデバイスがマウントできないといったエラーが発生していた.
レポートを見ると, どうもテストは途中で中断したようである.

テスト実行中に, テストがFAILした場合などに端末にリブートがかかる場合があったが, その際にデバイスをマウントできなかったのだろうか?
dmesgでログをみると, 以下のようなエラーが発生していた.

[15337.971348] usb 1-1: USB disconnect, device number 104
[15338.281864] usb 1-1: new high-speed USB device number 105 using ehci-pci
[15338.685170] usb 1-1: New USB device found, idVendor=0db0, idProduct=0007
[15338.685173] usb 1-1: New USB device strings: Mfr=2, Product=3, SerialNumber=4
[15338.685175] usb 1-1: Product: Android
[15338.685176] usb 1-1: Manufacturer: USB Developer
[15338.685177] usb 1-1: SerialNumber: 51494143057817f0507
[15348.728709] usb 1-1: USB disconnect, device number 105
[15349.028809] usb 1-1: new high-speed USB device number 106 using ehci-pci
[15349.255309] usb 1-1: New USB device found, idVendor=0db0, idProduct=0007
[15349.255315] usb 1-1: New USB device strings: Mfr=2, Product=3, SerialNumber=4
[15349.255318] usb 1-1: Product: Android
[15349.255321] usb 1-1: Manufacturer: USB Developer
[15349.255323] usb 1-1: SerialNumber: 51494143057817f0507
[15349.297934] systemd-udevd[4784]: Failed to apply ACL on /dev/bus/usb/001/054: No such file or directory
[15349.297954] systemd-udevd[4784]: Failed to apply ACL on /dev/bus/usb/001/054: No such file or directory
[15349.324133] systemd-udevd[4784]: Failed to apply ACL on /dev/bus/usb/001/055: No such file or directory
[15349.324141] systemd-udevd[4784]: Failed to apply ACL on /dev/bus/usb/001/055: No such file or directory
[15349.340719] systemd-udevd[4784]: Failed to apply ACL on /dev/bus/usb/001/056: No such file or directory
[15349.340726] systemd-udevd[4784]: Failed to apply ACL on /dev/bus/usb/001/056: No such file or directory
[15349.359394] systemd-udevd[4784]: Failed to apply ACL on /dev/bus/usb/001/057: No such file or directory
   :

このエラーの回避策について少し調べてみたが, あまり見当たらない.
他の人はこのようなエラーが発生していないのだろうか?

今回はとりあえずスキップされたテスト項目を抽出し, その部分のみ再度テストすることとする.
原因/回避策は, また時間のあるときに調べてみよう....

----
参照URL:
 [1] Google OS実験室 ~Moonlight明日香~ : CTS実行環境を構築する

CTS実行環境を構築する

先日, AndroidのCTS(Compatibility Test Suite)を試す必要に迫られ, CTSの実行環境を構築したのでまとめておく.

CPU : Intel(R) Core(TM) i7-2600K@3.4GHz
OS : Windows 8.1 Pro(64bit)
RAM : 8.0GB
Guest OS : Ubuntu 14.04(64bit) on VMware(R) Player 6.0.3

1. CTS概要[1]
 CTSは, Google社がAndroid Platformを採用する端末に実施を義務付けているTest群である.
Google社は, Android Marketで配布されるアプリケーションが, どのOEMのAndroid端末でもスムーズに利用可能なように, 主要な公開APIを実行し, チェックさせることで, 互換性を保っている.

2. CTS環境構築
2.1 CTSファイルのダウンロード
 ここからターゲット端末のOSバージョン用のCTSファイルをダウンロードする.
 ・バージョン依存ファイル
   - Android x.x Rx Compatibility Test Suite(CTS)
 ・共通ファイル
   - Compatibility Test Suite (CTS) Users Manual
   - CTS Media 1.0

2.2 環境設定
 1) JDK6の確認
   CTSテストを実行するにはOracleのJDK6が必要となる.
   java version 1.6がインストールされていない場合, webup8というサイトからダウンロードしインストールする.
    $ sudo add-apt-repository ppa:webupd8team/java
    $ sudo apt-get update
    $ sudo apt-get install oracle-java6-installer
 2) Android Debug Bridgeの確認
   CTSテストを実行するにはAndroid Debug Bridge(adb)が必要となる.
   adbがインストールされていない場合, Android SDKをダウンロードしてadbが利用できるように環境変数を設定する.
   例) export ANDROID_SDK_ROOT=~/tools/adt-bundle-linux-x86_64-20140702/sdk
      export PATH=$PATH:$ANDROID_SDK_ROOT/platform-tools
 3) ダウンロードファイルの解凍
   - CTSファイルを解凍する
    例) ~/tools/android-cts
   - CTS Mediaファイルを解凍する
    例) ~/tools/android-cts-media



3. テスト実行[2]
3.1 実行準備
 1) デバイスにSDカードスロットがある場合には, 空のSDカードを挿入する.
 2) タブレット内のすべてのデータを消去する.
   (Settings > Backup & Reset > Factory data reset)
 3) 言語をEnglish(United States)に設定する.
   (Settings > Language & Input > Language)
 4) 位置(情報取得)をONに設定する.
   (Settings > Location)
 5) WiFiをONにして, ネットワークに接続する.
   (Settings > WiFi)
 6) スクリーンロックなしに設定する.
   (Settings > Security > Screen Lock = 'None')
 7) "USB Debugging"開発オプションにチェックを入れる.
   (Settings > Developer options > USB Debugging)
 8) デバイスをホストPCに接続し, RSA fingerprintの確認ダイアログが表示されたら, このPCからのUSBデバッグを常に許可するようにする.
 9) スリープモードにしないにチェックを入れる.
   (Settings > Developer options > Stay Awake)
10) 疑似ロケーションを許可にチェックを入れる.
   (Settings > Developer options > Allow mock locations)
11) CTS 2.1 R2~4.2 R4 :
   android-cts/repository/testcaes/CtsDelegatingAccessibilityServer.apkをインストールし, Delegating Accessibility Serviceを有効にする.
   (Settings > Accessibility > Delegating Accessibility Service)
12) CTS 2.3 R4以降 :
   android-cts/repository/testcases/CtsDeviceAdmin.apkをインストールし, android.deviceadmin.cts.*をすべて有効にする.
   (Settings > Security > Device administrators)
13) CTS 2.3 R12以降 : 
   CTSメディアデータをデバイスにコピーする.
注) 設定のメニュー階層はバージョンによって異なる場合がある.

3.2 実行
 1) CTSプログラムを起動する.
   ~/tools$ ./android-cts/tools/cts-tradefed
   09-21 00:33:55 I/: Detected new device 0123456789ABCDEF
   Android CTS 4.4_r4
   cts-tf >
 2) テストプランを実行する. 進捗状況や結果は画面に表示される.
   cts-tf > run cts --plan CTS
 3) テストが終了すると, android-cts/repository/results/testResult.xmlに結果が出力される.

CTSのテスト項目は~18,000あり, すべてをテストするにはかなりの時間がかかりそうである.

まずは手持ちの端末で試してみるか...

----
参照URL:
 [1] Android Compatibility | Android Developers
 [2] Compatibility Test Suite (CTS) Users Manual

livedoor プロフィール
アクセスカウンター
  • 今日:
  • 昨日:
  • 累計:

記事検索



  • ライブドアブログ