Google OS実験室 ~Moonlight 明日香~

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

Android

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

Nexus7にファクトリイメージを書き込む

2013/10/31に「KitKat」ことAndroid 4.4が発表された.
しばらく電源を入れていなったNexus7(2012)にはOTAアップデートの案内が来てないので, ファクトリイメージをダウンロードしてAndroid4.4にアップデートしてみた. 

1. 事前準備
1.1 Android SDKのインストール[1]
 ファクトリイメージの書き込みにfastboot.exeやNexus7のUSBドライバが必要なので, ここを参照してAndroid SDKをインストールする. (ここでは詳細には説明しない.)
1.2 ファクトリイメージのダウンロード[2]
 1) ここから, 自分の端末にあったファクトリイメージをダウンロードする.
   今回は, "Factory Images "nakasi" for Nexus 7 (Wi-Fi)"の"Android 4.4 (KRT16S)"をダウンロードした.
 2) ファクトリイメージを解凍する.
   ファクトリイメージ(nakasi-krt16s-factory-da7dee49.tar)をcygwinのtarコマンドで解凍すると, 以下のファイルができる.
    nakasi-krt16s\bootloader-grouper-4.23.img
              flash-all.bat
              flash-all.sh
              flash-base.sh 
              image-nakasi-krt16s.zip
   注) 7-Zipなど一部解凍ツールでは正しく解凍できなかった.

2. ファクトリイメージ書き込み[2]
2.1 ブートローダを起動させる.
 1) Nexus7をシャットダウンさせる.
 2) fastbootモードにする.
   Nexus7の音量Downボタンを押しながら電源を押し続ける.
   → ドロイド君が表示されたらOK.
2.2 イメージを書き込む.
 1) ブートローダのロック解除を行う.
   $ fastboot oem unlock
 2) リカバリイメージがあるディレクトリ(nakasi-krt16s)に移動する.
 3) リカバリイメージを書き込む.
   $ ./flash-all.sh
 4) 書き込みに数分かかるので, 書き込みが完了するまで待つ.
 5) 必要ならブートローダのロックを行う.
   $ fastboot oem lock

以上で, ファクトリイメージの書き込み操作は終わり. 
意外と簡単でしょ!!

アップデートの結果はどうなったかというと, 以下の通り.

アップデート実行前:
update01

アップデート実行後:
update02

----
参照URL:
 [1] Get the Android SDK
 [2] Factory Images for Nexus Devices

eclipseの補完設定をカスタマイズする

Windows8.1上に"Get the Android SDK"のページからADT bundle for Windowsをダウンロードして, Android開発環境を構築したところ, eclipseの補完表示が機能していなかった.
そこで, eclipseの補完表示を有効にするとともに, 補完設定のカスタマイズについてまとめておく.

Eclipse Platform : 4.2.1v20130118
Android Developper Tools : v22.2.1-833290

1. 補完表示の有効化
 1) Windows > Preferencesを選択する.
 2) Java > Editor > Content Assist > Advancedで, "Java Proposals"にチェックを入れる.
  setting01

2. 補完設定のカスタマイズ[1]
カスタマイズポイント:
 ○ コンテンツ・アシストの自動有効化遅延を短くする.
 ○ コンテンツ・アシストの自動有効化トリガーとなる文字を追加する.

 1) Java > Editor > Content Assistで, "Enable auto activation"にチェックを入れる. (デフォルト:チェックON)
 2) "Auto activation delay (ms)"をデフォルトの200から50に変更する. 
   これにより, トリガーとなる文字を入力してから, 補完表示されるまでの時間を短くすることができる.
 3) "Auto activation triggers for Java"をデフォルトの"."から".abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_"に変更する.
   これにより, 変数名などの入力時に常に補完表示するようになる.
  setting02

頻繁に補完表示されるため, 好みが分かれるかもしれないが, 個人的には結構便利だと思ってる.
一度試してみては!?

----
参照URL:
 [1] Eclipseの補完設定をカスタマイズして爆速コーディング


Please use Android Tools > Fix Project Properties.と言われたら

Windows8.1上にAndroid開発環境を構築し遊んでいると,  途中から以下のようなエラーが発生するようになった.

 Android requires compiler compliance level 5.0 or 6.0. Found '1.7' instead. Please use Android Tools > Fix Project Properties.

どうもAndroid環境を構築する際にJDK7をインストールしたため, 何かの拍子にjavaコンパイラが1.7に切り替わったようだ.

このエラーに対処する方法は, 2通りある.
1. Android Tools > Fix Project Properties
 1) プロジェクト名の所でマウス右クリックし, "Android Tools > Fix Project Properties"を選択する.

2. javaコンパイラのバージョン変更
 1) プロジェクト名の所でマウス右クリックし, "Properties"を選択する.
 2) "Java Compiler"で, Compiler compliance levelを1.7から1.6に変更する.
  error01
これでOK.

ところで, なぜこのようになったからであるが, コード修正していて以下のようなメッセージが出たときに, ついOKしたのが原因のようだ.

 Change project complicance and JRE to 1.7

注意しましよう!!

プロフィール

明日香

アクセスカウンター
  • 今日:
  • 昨日:
  • 累計:

記事検索



  • ライブドアブログ