Kindle FireがMacのAndroidStudioで認識されない

この記事は次のブログに引っ越しました。

MacAndroid StudioにUSB接続でAmazonKindle Fire HD(第5世代)をつなげても認識されない あらかじめKindle本体に隠されいる開発者オプションでFire開発者にUSBデバッグを許可する必要があります。 Android Studioでアプリの開発中に動作テストを実行する際、USB接続したAndroidバイスを検知すると、デバイス本体で実行するかエミュレーターで実行するか選択できるので簡単に実機で動作検証出来ます。 しかし、Android File Transfer.appなどのファイル転送アプリでデバイスは認識はされているのに、Android Studioからは認識されない(選択肢に表示されない)場合、デバイス側がUSBデバッグ用のモードが有効になっていない可能性があります。 Mac( OSX )の場合、Windowsと違いUSBドライバを別途入れる必要がないのですが、いずれのOSにしてもAndroidバイスを開発に使う場合は事前に隠しモードの開発者設定を行う必要があります。「設定」内の「セキュリテイ」詳細設定にある「不明ソースからのアプリ」をオンにしただけでは認識されません。 大抵のAndroid端末は端末情報のビルド番号を7回以上タップして開発者オプションを有効にするのですが、Kindle Fire HDの第5世代はAndroid 5.x Lollipopをベースにした Fire OS 5.x が入っており、ちょくちょく細かいところで他のAndroidと項目の表記が違います。 以下はKindle Fireでの具体的な設定です。 「設定」に入る 「端末オプション」に入り「シリアル番号」を7回以上タップする 「開発者オプション」が現れるので「ADBを有効にする(Fire開発者にUSBデバッグを許可する)」をオンにします 確認ダイアログが表示されるので「有効にする」を選択します PCがつながっていると「USBデバッグを許可しますか?」と聞いてくるので「OK」を選びます。この時「このコンピューターを常に許可」にチェックを入れておくと以後聞いてこなくなります。 同開発者オプション画面にある「USB接続でアプリを検証」がオンになっていることを確認します 以上でAndroid Studioでも認識されるようになると思います。 Kindle Fire(FireOS Ver.5.3.x)の「開発者オプション」で設定出来る項目 「USBでコンピューターに接続」USBの接続タイプが選べます。タイプは、メディア・ファイル転送モード(MTP)か外部カメラモード(PTP)で、後者はデジカメをつなげた時と同じモードになります。 「スリープモードにしない」充電中・USB接続中に画面をスリープモードにしない設定にできます。 「Bluetooth HCIスヌープ ログを有効にする」Bluetoothでファイルを転送する際に利用されるHCIプロトコルのパケットをキャプチャしてファイルに保存できます。 「プロセスデータ」実行中のプロセスの詳細情報がみれるようになります。 「ADBを有効にする」開発用にUSB接続でデバッグを許可できます。 「USBデバッグ権限を取り消し」USBに接続された相手のデバッグ作業をリセットできます。実行中にハング/フリーズした場合など。 「仮の位置情報の使用を許可する」GPSなどの検証で、仮想のGPS情報を渡した場合の動作の検証ができるようになります。 「表示属性検査を検証する」Viewクラスの属性情報を監視して、現在のViewに何が設定されているか見えるようになります。 「デバッグアプリを選択」アプリの起動処理のデバッグに利用するようです。 「デバッガーを待機」上記でデバッグアプリを選択していると、onCreateを実行する前にデバッガーと接続してくれます。 「USB接続でアプリを検証」上記ADB(デバッグ)やADT(データ転送)の接続でインストールしようとするアプリが怪しい挙動をしないか(悪質アプリとみなされないか)事前に確認します。 「ワイヤレスディスプレイ証明書」ワイヤレスモニタ(Miracast)の互換オプションを表示します。 「Wi-Fiの詳細ログを有効にする」"LogCat"ビューにWiFi通信時の詳細なログを表示します。 「Wi-Fiからモバイル接続への強制的なハンドオーバー」モバイル接続を優先します。 「Wi-Fiローミングのスキャンを常に許可」アクセスポイントの自動切り替えを常に行わせることができます。 「ロガーバッファサイズ」"LogCat"でログを取る際のバッファサイズを指定できます。指定できるサイズ値はは"64K,256K,1M,4M,16M"です。 「タップを表示」画面上にタップ情報を表示します。 「ポインターの表示」画面上にタップ時の詳細なポインターの情報を表示します。 「サーフェスの更新を表示」画面上の更新箇所を点滅で表示してくれます。 「レイアウトの境界を表示」マージン(余白)やレイアウトの調整をするために境界線を表示します。 「RTLレイアウトの方向を指定」右から左へ文字を読む文化圏のモードで表示します。 「ウィンドウアニメーションのスケール」ウィンドウのアニメーション速度を変更できます。 「トランジションアニメーションのスケール」トランジッション時のアニメーション速度を変更できます。 「アニメーター持続時間のスケール」アニメーションの速度を変更できます。 「セカンドディスプレイをシミュレート」2次画面(セカンドディスプレイ)を仮想表示します。 「GPUレンダリングを使用」2D描画であっても常にGPUを利用します。 「GPUの更新を表示」GPUによるレンダリング(描画)箇所を点滅で知らせてくれます。 「ハードウェアレイヤーの更新を表示」ハードウェアレイヤーによるレンダリング(描画)箇所を緑色の点滅で知らせてくれます。 「GPUオーバードローをデバッグGPUによる重ね書きされた箇所を別の色で知らせてくれます。 「非長方形のクリップ操作をデバッグ」非矩形(長方形)の操作できるクリップ領域を表示します。 「4x MSAAを強制」OpenGL ES 2.0でのアンチエリアシング(4x MSAA)を有効にします。 「ハードウェアオーバーレイを無効にする」オーバーレイの合成にGPUを使います。 「色空間をシミュレート」画面上の色が色弱向けの見え方に変わります。 「AwesomePlayerを使用(廃止)」メディアの再生にNuPlayerでなく、代わりに最新のプレーヤーを使います。 「USBオーディオルーティングを無効にする」USBオーディオ接続時に自動検知しないようにできます。 「厳格モード有効」メインスレッドの処理が長い場合に点滅で遅延を知らせてくれます。 「CPU使用状況を表示」アプリのCPU使用状況を画面にオーバーレイ表示します。 「プロフィールのGPUレンダリングGPUのダンプ情報を確認できます。 「OpenGLトレースを有効にする」OpenGL利用時、"LogCat", "Systrace(グラフィック)", "glGetErrorでコールスタック"のいずれかの方法で利用情報をトレースできます。 「アクティビティを保存しない」ユーザー側のアクティビティを直ちに破棄し記憶しないようにします。 「バックグラウドプロセスの上限」バックグラウントで使用するプロセス数を制限できます。最大4。 「すべてのANRを表示」バックグラウンドのANRも検知し、バックグラウンドのアプリが応答しない場合に通知してくれます。