ひよこメモ

備忘ブログ Ruby, Rails, AWS, html5, css3, javascript, vim,

UnityでBluetooth LE通信を実現したい1

UnityでBluetooth LE通信を実現したい。
Unity用にjavaプラグインの自作は避けられないらしい。
まずはAndroid Studio(Java)を使う。(javaほとんど分からないけど)
Android Studioのバージョンが2と古かったので更新。
Android Studio バージョン3.1.1(2018年4月20日現在最新)
Android Studio 2.0の設定は~/Library/Preferences/AndroidStudio2.0に残るらしい。
JavaSE Development Kit(javaを使うためのパッケージ)インストールが必要。
1.8が最新だがMacは1.6以前が安定しているらしい。
「HAXM installationが変更を加えようとしています。」と聞かれた。
Intel Hardware Accelerated Execution Manager (Intel® HAXM) Android用エミュレータを高速化するものらしい。ハクスム・ハクセム。
インストールが終わったら「Start a Android Studio project」
include Kotlin support?Kotlin:開発工数が削減できて安全でInperoperability(相互運用性)が高い。JetBrains(IntelliJ IDEAを開発する会社)が後ろ盾。AndroidStudio用のプラグインをKotlinが用意してくれてるらしい。
Gradleについて理解が足りない。Gradleはビルドシステム。必要なモジュールをまとめて記述しておける感じ?AndroidSDKのインストールやビルドシステムantのセットアップを自動でやってくれる。Gradle自身のダウンロードもやってくれる。GUIで操作可能。Rubyで使ったMakefileのようなもの。依存関係の管理。taskという仕事のかたまりを作り、それを実行させる。他の人が作った便利なタスクを借りて実行が基本らしい。
(ToolBarのAVD Managerというボタンを押すとエミュレータを実行できる。)
Activity選択は「Empty Activity」を選択。
app>java>com.company.test.myapplication>MainActivity(FinderだとMainActivity.java)選択

package com.company.test.myapplication;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
}

エミュレータを起動した状態で再生ボタンを押すと、無事HelloWorldが表示された。
Hello World自体はapp>java>res(Resource)>layout>activity_main.xmlに保存されているText。

Android Studio下部にあるConsoleにて「.gradlew -1 hello」の実行
その前にGradle Scripts>build.gradleに

task hello {
    doLast {
        println 'こんにちは'
    }
}

を追記。
するとConsole実行時にprintlnが表示される。
.gradlewとは?MyApplicationフォルダ直下にあった。gradleをgradleをインストールすることなしに実行できる。

Bluetooth LE通信までの道のりは遠い。
Kotlinが便利そう。
ひとまず最新版AndroidStudioインストールとエミュレータでのHelloworld実行。
ビルドシステムGradle(consoleではgradlew)