Android Things



Googleがモノのインターネット用の更新されたプラットフォームを導入-Android Things





12月13日、GoogleはAndroid開発をサポートするモノのインターネット向けプラットフォームの開発者向けプレビューのリリースを正式に発表しました。 これで、Android開発に精通しているすべての人がIoTデバイスを作成する世界に簡単に参入できるようになります。



3種類のデバイスが公式にサポートされています。





さらに2つのサポートがまもなく予定されています。





アプリケーションの開発に必要なのは、Android Studioと上記のデバイスの1つだけです。



アプリ



画像の代替






Android Things用の構造アプリ



公式リポジトリですべての例を見ることができます 。 新しいアプリケーションを開始するためのテンプレートがあります。



原則として、複数のアプリケーションをAndroid Thingsデバイスにインストールすることはできないため、デバイスの起動時に1つのアプリケーションが自動的に起動します。



アプリケーションを表示するには、通常のAndroidアプリケーションと同じUIツールキットを使用しますが、システムステータスバーとナビゲーションボタンはサポートしていません。 アプリケーションが機能するためにディスプレイが存在する必要はなく、すべてのイベントがアプリケーションアクティビティに自動的に配信されます。



アプリケーションのgradleファイルで、minSdkVersion 24をインストールし、提供された依存関係を追加します。



provided 'com.google.android.things:androidthings:0.1-devpreview'
      
      





アプリケーションのAndroidManifestでは、以下を指定する必要があります。



 <uses-library android:name="com.google.android.things"/>
      
      





アプリケーションには、デバイスの起動時に開始され、電源がオフになると破棄されるアクティビティが1つしかありません。



デバイスの起動時にアクティビティが自動的に開始されるようにするには、追加のパラメーターをデバイスに追加する必要があります。



 <intent-filter> <action android:name="android.intent.action.MAIN"/> <category android:name="android.intent.category.IOT_LAUNCHER"/> <category android:name="android.intent.category.DEFAULT"/> </intent-filter>
      
      





標準スキンも利用可能です:Theme.DeviceDefault



周辺機器



このプラットフォームは、GPIO、PWM、I2C、SPI、UARTなどの一連のハードウェアインターフェイスをサポートしています。 すぐに利用できるさまざまな周辺機器を接続するためのライブラリ:





独自のドライバーを作成することもできます。 ここで、Googleはユーザードライバーの概念を紹介します 。これは、センサーのドライバーが既存のドライバーサービスをサポートすることを前提としているため、さまざまなプラットフォームで簡単に使用できます。









ほぼ等しく



次の3種類のドライバーがサポートされています。





主な関心はあらゆる種類のセンサーの接続であると思うので、これについてさらに詳しく説明します。



まず、ドライバーオブジェクトを作成する必要があります。 センサードライバーはUserSensorDriver抽象クラスを継承し、2つのメソッドのみをオーバーライドする必要があります。



read-センサーから新しいデータを受信するために呼び出され、UserSensorReadingクラスのオブジェクトとしてデータを返す必要があります。

setEnabled-スリープモードへの切り替えまたはエネルギーの節約に使用されます。



次に、UserSensor.Builderを使用して、UserSensorオブジェクトを作成し、名前、製造元を指定し、タイプを設定して、ドライバーを渡します。 UserDriverManagerマネージャーにセンサーを登録し、アプリケーションが閉じられたときに登録を無効にすることを忘れないでください。

ドライバーの作成の詳細については、 こちらをご覧ください



デモ例からわかるように、アプリケーションは2つの主要部分で構成されています。 すべての作業と補助クラスBoardDefaultsが実行されるアクティビティ。アプリケーションが実行されているプラ​​ットフォームに応じて、特定のデバイスが接続されているピンの文字列名を返します。



サポートされているデバイスを操作するために、システムはPeripheralManagerServiceを提供します。これにより、特定のプラットフォームで使用可能なピン/バスのリストを取得し、デバイスが接続されているピンを示すことができます。



デバイスの各タイプには、制御およびフィードバックインターフェイス用の独自のメソッドセットがあります。



LED接続例
  PeripheralManagerService pioService = new PeripheralManagerService(); mLed = pioService.openGpio(BoardDefaults.getLedGpioPin()); mLed.setDirection(Gpio.DIRECTION_OUT_INITIALLY_LOW);
      
      





そして、ブール値を渡します
  mLedGpio.setValue(value);
      
      





ボタン接続例
  mButtonInputDriver = new ButtonInputDriver( BoardDefaults.getGPIOForButton(), Button.LogicState.PRESSED_WHEN_LOW, KeyEvent.KEYCODE_SPACE); mButtonInputDriver.register();
      
      





そして、ボタンのクリックをキャッチします

 @Override public boolean onKeyUp(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_SPACE) { // button pressed return true; } return super.onKeyUp(keyCode, event); }
      
      





多数のセンサーを接続した例を詳しく見ることができます。



プラットフォーム機能



最初に制限について。 多くの標準アプリケーションとコンテンツプロバイダー、および一部のGoogle APIは、プラットフォームでは利用できません。

意図 Google API
カレンダー契約 アドモブ
連絡先 Android Pay
ドキュメント Firebaseアプリのインデックス作成
ダウンロードマネージャー Firebase認証
MediaStore Firebaseダイナミックリンク
設定 Firebaseの招待
テレフォニー Firebaseの通知
UserDictionary 地図
ボイスメール契約 ゲームをする
検索する
サインイン


ステータスバーがないため、通知はサポートされていないため、NotificationManager APIは使用できません。



しかし、かなりの数が利用可能です:



キャスト

運転

Firebase分析

Firebaseクラウドメッセージング(FCM)

Firebaseクラッシュレポート

Firebaseリアルタイムデータベース

Firebaseリモート設定

Firebaseストレージ

フィット

インスタンスID

場所

近く

場所

モバイルビジョン


そして、ここでは、Firebase Realtime Database、Firebase Analytics、およびFCMのサポートが利用できることを喜ばずにいられません。これにより、インターネット経由でAndroid Thingsデバイスを簡単に管理し、それらからデータを収集できます。



作業中に権限を要求する必要もありません。AndroidManifestで指定されたすべての権限が自動的に付与されます。



Google織り



Android Thingsとともに、GoogleはWeaveプラットフォームを導入しました。 プラットフォームには以下が含まれます。





Weaveは現在、HVACコントローラー、電球、ソケット、テレビ、スイッチをサポートしています。



プラットフォームのすべての機能にアクセスするには、Googleグループに参加する必要あります。



WeaveはすでにPhilips HueおよびSamsung SmartThingsデバイスで使用されており、Belkin WeMo、LiFX、Honeywell、Wink、TP-Link、First Alertなどの多くのメーカーがプラットフォームの使用に関して合意しています。



費用



Raspberry Pi 3モデルB〜4000回こする。 + 500rからの電源。 (Arduino Breakout Kitを搭載したIntel®Edison〜7500摩擦。+ 800摩擦からの電源供給。)+ SDカード32GB〜700摩擦。 700 rのプロトタイピングボード。



その結果、素晴らしい新年の贈り物には約7,000ルーブルの費用がかかります。 また、いくつかのセンサーを備えたRaspberry Pi 3などの既製キットもほぼ同じ価格で提供されています。



明けましておめでとうございます!



Android Thingsの公式Webサイト

例付きのGithubリポジトリ

Google Weavrの公式Webサイト



All Articles