佐藤の屋敷

技術的なことを残せれば幸い

MQTTを試してみる( 2/2 )

前回に引き続きMQTTを試します。長いです。

■前回の記事

satoyashiki.hatenablog.com

■環境、用意するもの

  • Windows 8.1 64bit
  • Windows上のCentOS6.X 仮想サーバ(vargrant)でのmosquitto-1.4.5
  • Windows上のクライアントはPaho 1.1 ( JavaScrpt client )

■Paho 1.1 ( JavaScript版 )

www.eclipse.org

■前提

  • Windows上のCentOS6.Xへmosquittoをyumでインストール済み
  • mosquittoが、CentOS上で起動済みでPython接続が成功したあとの話

■以下手順続き

  1. WindowsからJavaScript接続してみる。上手くいかない。
  2. あ、mosquittoがWebSocketモードじゃないのね?設定を変える。動かない。
  3. mosquittoのRedHat/FedoraのyumのリポジトリはWebSocketが無効なのでソースコンパイルが必要とわかる。
  4. ソースコンパイルをいろいろする。
  5. やっと準備完了でmosquitto起動
  6. WindowsからJavaScript接続してみる。上手くいく。やったー。
  7. 試しにCentOSをやめてUbuntuでやってみる。WebSocketが素直にうまくいく。
  8. これは罠なので気を付けようって話。(ググったブログは結構Ubuntuのサンプルばかり。)
  9. 結局世界のStack Overflowは凄いと言うことだ。
  10. 疲れました。お疲れ様です。

1. WindowsからJavaScript接続してみる。上手くいかない。

コードはPahoからダウンロードしてきてコードを準備( 上にあるPahoページからmqttws31-min.jsを入手する )

index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>TEST</title>
    <script type="text/javascript" src="mqttws31-min.js"></script>
    <script type="text/javascript" src="mqclient.js"></script>
</head>
<body>

</body>
</html>

client.js

// Create a client instance
var client = new Paho.MQTT.Client("192.168.33.20", 1883 , "clientId" + new Date().getTime());

// set callback handlers
client.onConnectionLost = onConnectionLost;
client.onMessageArrived = onMessageArrived;

// connect the client
client.connect({onSuccess:onConnect});

// called when the client connects
function onConnect() {
    // Once a connection has been made, make a subscription and send a message.
    console.log("onConnect");
    client.subscribe("/World");
    message = new Paho.MQTT.Message("Hello");
    message.destinationName = "/World";
    client.send(message);
}

// called when the client loses its connection
function onConnectionLost(responseObject) {
    if (responseObject.errorCode !== 0) {
        console.log("onConnectionLost:"+responseObject.errorMessage);
    }
}

// called when a message arrives
function onMessageArrived(message) {
    console.log("onMessageArrived:"+message.payloadString);
}

IPとかはvagrantで設定したものです。
ポートはmosquittoのデフォルトです。

chormeのデベロッパーツールを開いて実行。なんか上手く動いてない。
f:id:satoysan:20151112174535p:plain

WebSocket connection to 'ws://192.168.33.20:1883/mqtt' failed: Error during WebSocket handshake: net::ERR_CONNECTION_RESET

2. あ、mosquittoがWebSocketモードじゃないのね?設定を変える。動かない。

WebSocketモードじゃないので設定を変えることに。

mosquitto.confの設定マニュアルeclipse.org

mosquitto.conf

# Place your local configuration in /etc/mosquitto/conf.d/

pid_file /var/run/mosquitto.pid

persistence true
persistence_location /var/lib/mosquitto/

#log_dest file /var/log/mosquitto/mosquitto.log

include_dir /etc/mosquitto/conf.d

protocol websockets

protocol websocketsを追加

mosquitto再起動。

# /etc/init.d/mosquitto restart
Shutting down Mosquitto MQTT broker1447318610: mosquitto version 1.4.5 terminating
1447318610: Saving in-memory database to /var/lib/mosquitto/mosquitto.db.
                                                           [  OK  ]
Starting Mosquitto MQTT brokerError: Websockets support not available.
Error found at /etc/mosquitto/mosquitto.conf:12.
Error: Unable to open configuration file.
                                                           [FAILED]

なぜにWebsocketがサポートされとらんのじゃ!いろいろ調べる。いろいろググる。

3. mosquittoのRedHat/FedoraのyumのリポジトリはWebSocketが無効なのでソースコンパイルが必要とわかる。

stackoverflow.com
あー・・・なるほどなるほど。Answersを見ると結構衝撃。
つまり、CentOS版のパッケージはダメってことですね。Webosocketsが。

4. ソースコンパイルをいろいろする。

駆け足で行きます。

# yum remove mosquitto
# yum install gcc-c++
# yum install cmake
# yum install openssl-devel
# cd /usr/local/src/
# wget http://mosquitto.org/files/source/mosquitto-1.4.5.tar.gz
# tar zxvf mosquitto-1.4.5.tar.gz
# cd mosquitto-1.4.5
# vi config.mk

mosquittoのパッケージはさよならします。そしてコンパイルする準備で最初yumでいろいろインストールします。

config.mkをイジってWITH_WEBSOCKETS:=noをyesに変更してWebosocketsを有効に。ちなみにWITH_SRVをyesにしたままだと、c-areasというライブラリがないと怒られるので、こちらもインストールする。面倒な場合はconfig.mkでnoにすればコンパイルは通ります。他libuuid-develなんかも入れますが、WITH_UUIDをnoにすれば・・・うんぬん。

以下全部対応します。

# cd ../
# wget http://c-ares.haxx.se/download/c-ares-1.10.0.tar.gz
# tar zxvf c-ares-1.10.0.tar.gz
# cd c-ares-1.10.0
# ./configure
# make
# make install 
# cd ../
# yum install libuuid-devel
# wget http://git.libwebsockets.org/cgi-bin/cgit/libwebsockets/snapshot/libwebsockets-1.5-chrome47-firefox41.tar.gz
# tar zxvf libwebsockets-1.5-chrome47-firefox41.tar.gz
# cd libwebsockets-1.5-chrome47-firefox41
# mkdir build
# cd build
# cmake ../ -DLIB_SUFFIX=64
# make 
# make install

mosquittoのコンパイル準備完了

# cd /usr/local/src/mosquitto-1.4.5
# make
# make install
# cd /etc/mosquitto
# useradd mosquitto
# cp mosquitto.conf.example mosquitto.conf
# vi mosquitto.conf

ということで、mosquitto.confを修正してprotocol websocketsに変更

#protocol mqtt
protocol websockets

ちょっと試しでmosquitto --helpとかしてみるとエラーがでたりします。

mosquitto: error while loading shared libraries: libwebsockets.so.5: cannot open shared object file: No such file or directory

こいつに対応するにはパスを指定する必要があります。

# vi /etc/ld.so.conf.d/liblocal.conf

liblocal.conf

/usr/local/lib64
/usr/local/lib

そして適用

# ldconfig

ちょっとコマンド実行お試し。

# mosquitto --help
mosquitto version 1.4.5 (build date 2015-11-12 09:54:01+0000)

mosquitto is an MQTT v3.1 broker.

Usage: mosquitto [-c config_file] [-d] [-h] [-p port]

 -c : specify the broker config file.
 -d : put the broker into the background after starting.
 -h : display this help.
 -p : start the broker listening on the specified port.
      Not recommended in conjunction with the -c option.
 -v : verbose mode - enable all logging types. This overrides
      any logging options given in the config file.

See http://mosquitto.org/ for more information.

うまくいきました。

5. やっと準備完了でmosquitto起動。

では早速起動

# mosquitto -c /etc/mosquitto/mosquitto.conf -d
1447322705: mosquitto version 1.4.5 (build date 2015-11-12 09:54:01+0000) starting
1447322705: Config loaded from /etc/mosquitto/mosquitto.conf.
1447322705: Opening websockets listen socket on port 1883.

おお、websockets listen socketしたー!

6. WindowsからJavaScript接続してみる。上手くいく。やったー。

ようやく帰ってきました。JavaScriptのソース実行
f:id:satoysan:20151112190739p:plain

CentOSには厳しい道程があるので、気をつけよう!そのうちyumでWebSocket対応版が出ると思うけどね!*1

付録

srcコンパイルで入れたmosquittoにゃ起動シェルがないので、/etc/init.d/にシェルを置きます。
https://gist.github.com/basuke/7777918
ここは環境に合わせて修正する。

7. 試しにCentOSをやめてUbuntuでやってみる。WebSocketが素直にうまくいく。

vagrantでubuntu/trusty64boxファイルを作る。
で・・・ささっとapt-getで放り込んで実行

$ sudo apt-add-repository ppa:mosquitto-dev/mosquitto-ppa
$ sudo apt-get update
$ sudo apt-get install mosquitto
$ su -
# cd /etc/mosquitto/
# vi mosquitto.conf
# service mosquitto start

mosquitto.confの中を修正。protocol websocketsに。
さっきのjavascriptコードのIPが違うのでそこだけ変更して実行すると…うまくいきました。
つまりはUbuntuでやってる人はこの問題にぶち当たらないということですね!
でも本番サーバがCentOSになってたりしてハマり道を歩むという。。。

9. 結局世界のStack Overflowは凄いと言うことだ。

 ありがとう。Stack Overflow。ありがとう。Stack Overflowユーザの皆様。

*1:ついでにこの記事も死滅する運命

MQTTを試してみる( 1/2 )

仕事では無縁なものだったので話には聞いていたけど全く手を出していなかったのですが、そろそろ知っておかないとなあと感じ始めましたので、やってみることにしました。(ラズパイで使う予定)

■MQTTとはなんぞや

  • 1対多の通信可能なプロトコル
  • すごく軽量
  • 仕組みが簡単
  • IoTサービスにうってつけ
  • チャットやらスマホのゲームなんかにも使われる

■目的、したいこと

  • MQTTを使ってみたい
  • サーバーはCentOSで
  • ブローカーはMosquitto
  • クライアントはJavaScriptを希望だけど、今回はPython。

■環境、用意するもの

  • Windows 8.1 64bit
  • Windows上のCentOS6.X 仮想サーバ(vargrant)でのmosquitto-1.4.5
  • Windows上のクライアントはPaho 1.1 ( Python client )

■入手元

ブローカー( Mosquitto )

クライアント( Paho )

■以下手順

  1. CentOSを準備( vagrant init puphpet/centos65-x64 ) *1
  2. CentOS起動( vagrant up )
  3. CentOSの初期の設定をごにょごにょする。(password変えたり、ユーザ作ったり)
  4. yum で mosquitto をインストールする。
  5. mosquittoを起動する。
  6. WindowsからPython接続してみる。上手くいく。
  7. JavaScript編は次回へ続く

■以下、気になるところの説明

4. yumでmosquitto をインストールする。

# cd /etc/yum.repos.d

yumリポジトリを準備します。

# wget http://download.opensuse.org/repositories/home:/oojah:/mqtt/CentOS_CentOS-6/home:oojah:mqtt.repo

ファイルをダウンロードします

# yum install mosquitto

mosquittoをインストール

5. mosquittoを起動する。

# /etc/init.d/mosquitto start

6. WindowsからPython接続してみる。上手くいく。

WindowsにPython2.7がインストールされていることが前提です。無い場合はインストールしてください。

Takahiro Ikeuchi氏のコードを拝借して接続テストを試みます。librabuch.jp

まずは paho-mqtt というパッケージを用意します。私の場合はIntellij IDEAですので、Pythonで新規プロジェクトを準備し、内部ターミナルでpipを実行しました。
f:id:satoysan:20151111002759p:plain

それでは、コードを拝借してsub.py,pub.pyの準備を。。一部IPやらトピックなどを修正しています。

pub.py ( 1秒置きに5回ループしながら「test test」をサブスクライバーへ )

from time import sleep
import paho.mqtt.client as mqtt

host = '192.168.11.52'
port = 1883
topic = 'sato/a1'

client = mqtt.Client(protocol=mqtt.MQTTv311)

client.connect(host, port=port, keepalive=60)

for i in range(5):
    client.publish(topic, 'test test')
    sleep(1)

client.disconnect()

sub.py

import paho.mqtt.client as mqtt

host = '192.168.11.52'
port = 1883
topic = 'sato/a1'

def on_connect(client, userdata, flags, respons_code):
    print('status {0}'.format(respons_code))

    client.subscribe(topic)

def on_message(client, userdata, msg):
    print(msg.topic + ' ' + str(msg.payload))

if __name__ == '__main__':

    client = mqtt.Client(protocol=mqtt.MQTTv311)

    client.on_connect = on_connect
    client.on_message = on_message

    client.connect(host, port=port, keepalive=60)

    client.loop_forever()

で…sub.py,pub.pyを実行したのですが、接続失敗しました。なぜなら…iptablesが邪魔しておりました。22ポートを除く他のポートがALLブロックされてて…なので、まずは解放というか停止。

# /etc/init.d/iptables stop
iptables: Setting chains to policy ACCEPT: filter          [  OK  ]
iptables: Flushing firewall rules:                         [  OK  ]
iptables: Unloading modules:                               [  OK  ]

気を取り直してsub.py,pub.pyを実行。問題なく1秒置きにsub.py側に「sato/a1 test test」が出力されます。
f:id:satoysan:20151111005322p:plain

まずはめでたしめでたし。

7. JavaScript編は次回へ続く

こっちはWebSocketでハマります。CentOS用のmosquittoの闇は深いです。
次回へ続く。

*1:vagrantの起動とか設定はここでは省きます。

WindowsにVirtualBoxとVagrantをインストールしたメモ

◆目的、したいこと

複数台のCentOSをWindows上で起動したい。
CentOS6.7にしてみる。

◆環境

  • OS: Windows 8.1 64bit
  • CPU: i7-4790 3.60GHz
  • Mem: 8G

◆インストールしたもの

  • VirtualBox-5.0.8-103449-Win.exe
  • VirtualBox 5.0.8 Oracle VM VirtualBox Extension Pack
  • vagrant_1.7.4.msi
  • vagrant-manager-windows-1.0.0.3.exe *1

◆それぞれの入手とインストール

■VirtualBoxの入手

■Vagrantの入手

■Vagrant Managerの入手

■インストールの順序というかやった順序

  1. VirtualBox-5.0.8-103449-Win.exeを何も考えずインストール
  2. Extension Packもインストール
  3. vagrant_1.7.4.msiをインストール( 最後に再起動要求が来るのでYesに )
  4. Vagrant Managerはまだインストールしてなかった
  5. 私の場合C:\はSSDで容量少ないからそんなところにいろいろ置きたくなかったのでVirtualBoxの仮想マシンフォルダの変更とvagrantの設定ファイルをD:\の自分の決めたところへ
  6. ひとまずvagrantの設定ファイルはD:\vMachine\centosとした
  7. cmdコマンドでコマンドプロンプト起動してD:\vMachine\centosへ移動
  8. そこでvagrant initコマンドの実行をしてVagrantfileを作る
  9. エディタでVagrantfileファイルの編集
  10. 初回起動くらいはコマンドラインでvagrant upを実行し仮想サーバを3台起動
  11. 初回はbento/centos-6.7からダウンロードされるので時間がかかります
  12. 無事起動が確認できたら一旦シャットダウンvagrant halt
  13. Vagrant Managerのインストール
  14. あとは自由にSSHなどで接続してそれぞれのサーバの設定を行います。*3
9.で書いたVagrantfileの内容
# -*- mode: ruby -*-
# vi: set ft=ruby :

Vagrant.configure(2) do |config|
  config.vm.box = "bento/centos-6.7"
  
  config.vm.define :web1 do | web1 |
    web1.vm.hostname = "web1"
    web1.vm.network "public_network", ip: "192.168.1.50"
  end
  
  config.vm.define :web2 do | web2 |
    web2.vm.hostname = "web2"
    web2.vm.network "public_network", ip: "192.168.1.51"
  end

  config.vm.define :db1 do | db1 |
    db1.vm.hostname = "db1"
    db1.vm.network "public_network", ip: "192.168.1.60"
  end
  
end
10.vagrant upを実行するとこんな感じで表示(抜粋)
D:\vMachine\centos>vagrant up
Bringing machine 'web1' up with 'virtualbox' provider...
Bringing machine 'web2' up with 'virtualbox' provider...
Bringing machine 'db1' up with 'virtualbox' provider...
==> web1: Checking if box 'bento/centos-6.7' is up to date...
==> web1: Clearing any previously set forwarded ports...
==> web1: Clearing any previously set network interfaces...
==> web1: Preparing network interfaces based on configuration...
    web1: Adapter 1: nat
    web1: Adapter 2: bridged
==> web1: Forwarding ports...
    web1: 22 => 2222 (adapter 1)
==> web1: Booting VM...
==> web1: Waiting for machine to boot. This may take a few minutes...
    web1: SSH address: 127.0.0.1:2222
    web1: SSH username: vagrant
    web1: SSH auth method: private key
    web1: Warning: Connection timeout. Retrying...
    web1: Warning: Remote connection disconnect. Retrying...
==> web1: Machine booted and ready!
==> web1: Checking for guest additions in VM...
==> web1: Setting hostname...
==> web1: Configuring and enabling network interfaces...
==> web1: Mounting shared folders...
    web1: /vagrant => D:/vMachine/centos
==> web1: Machine already provisioned. Run `vagrant provision` or use the `--provision`
==> web1: flag to force provisioning. Provisioners marked to run always will still run.
==> web2: Checking if box 'bento/centos-6.7' is up to date...
==> web2: Clearing any previously set forwarded ports...
==> web2: Fixed port collision for 22 => 2222. Now on port 2200.
==> web2: Clearing any previously set network interfaces...
==> web2: Preparing network interfaces based on configuration...
    web2: Adapter 1: nat
    web2: Adapter 2: bridged
==> web2: Forwarding ports...
    web2: 22 => 2200 (adapter 1)
==> web2: Booting VM...

~~~~~
VirtualBoxマネージャーを見るとこんな感じでしっかり3台起動している。*4

f:id:satoysan:20151108132717p:plain

さて、ここまできたらSSHでサーバにつなぎます。前述のVagrantfileではweb1サーバは"public_network", ip: "192.168.11.50"として記載していますのでそのままTeraTermなどで接続します。*5

vagrant-managerで起動するイメージ

f:id:satoysan:20151108135205p:plain

vagrant upと同等のことがコマンドプロンプトを開かずに行えます。*6

f:id:satoysan:20151108135453p:plain

vagrantへsshログインする

f:id:satoysan:20151108142010p:plain

ユーザー名:vagrant
パスワード:vagrant
rootもパスワードがvagrantです

■その他の話

windowsでvagrant sshが素直にできないので、TeraTermを使って接続するのですが、ssh接続が127.0.0.1:2222になるのが嫌でVagrantfileconfig.vm.network "private_network"ではなく"public_network", ip: "192.168.1.50"にしています。いくつかネットで検索しても"private_network"のip指定でsshできているような記述があるのですがどうしてもできなかったので・・・。*7
その後web1などに接続してApacheをインストールすればブラウザでhttp://192.168.1.50/と叩けばテストページが表示します。

*1:VagrantManagerはなくてもコマンドたたけば基本はいらない

*2:VirtualBox 5.0.8 Oracle VM VirtualBox Extension Packをダウンロード

*3:各サーバのメモリ設定などは他のサイトでたくさん記載しておりますので、検索してみてください

*4:コマンドプロンプトを管理者モードで起動してvagrant upするとVirtualBoxマネージャーの電源オンが連動しなくてハマります。

*5:ipconfigとかで表示しませんがSSHで接続できます。

*6:コマンドで実行できるのがvagrantのイイところとかそういうのは置いておく。

*7:なんかうまいやり方を探す時間があまりなかったので今回はこれで

Unity4のエディタをVisual Studio Community 2013に変える方法

Unityでゲームを作るときC#などで処理を記述しますが、付属のMonoDevelopが使いにくいために、やる気が結構そがれました。
ということで、エディタをVisual Studio Community 2013に変更し快適に過ごしたいわけです。

前提として、Unityがインストール済みという体でお話を進めたいと思います。
私の環境は・・・・

  • Windows 8.1 64-bit
  • Unity Version 4.6.2f1
  • Visual Studio Community 2013 Update 4

となります。

Visual Studio Community 2013 Update 4のインストール


無料開発ツール - Visual Studio Community 2013

※Visual Studio Community 2013の利用条件についてはしっかり確認してください。
基本的に無料でかなりの機能が利用できますが条件がいろいろあるので、会社などで利用する場合は、しっかり確認したほうがよいです。個人開発者なら有償アプリもつくれます。

まずは上の公式ページよりVisual Studioをダウンロードします。
現状英語版でのダウンロードになるのですが、あとから日本語パッケージもインストールします。

f:id:satoysan:20150218010543p:plain

とにかくインストールは長いですが、辛抱強く待ちます。
無事インストールが完了したら次は日本語化をします。

次に日本語パッケージをインストールするために以下から言語パックを手に入れます。
http://www.visualstudio.com/ja-jp/downloads/download-visual-studio-vs#

f:id:satoysan:20150218011112p:plain

ダウンロード言語が日本語になるようにプルダウンで選択します。
※ちゃんと言語パックが日本語になるようにしてから、「今すぐダウンロード」を選択。

ダウンロード後、インストールを行います。

f:id:satoysan:20150218011245p:plain

これで、Visual Studio Community 2013 Update 4のインストールは終了です。

Visual Studio Community 2013をUnityに連携させる。

まずは、連携させるためにバッチファイルを作ります。
バッチファイル名は「unity_vs.bat」としましたが、好きな名前で構いません。

ファイルの内容は以下の1行です。好きなテキストエディタで作成してください。

Start "" %1

次にこのバッチファイルをどこに置くかですが、、、私の場合は
C:\Program Files (x86)\Unity\Editor\unity_vs.bat
に配置しました。(Unityがインストールされている場所です。)

さて、次はUnityを起動します。
起動後、Editメニューを開きPreferencesを選択します。

f:id:satoysan:20150218011442p:plain

次に、External Toolsタブを開き、External Script Editorのプルダウンを開きます。

f:id:satoysan:20150218012637p:plain

MonoDevelopに選択されているので、Browseをクリックして先ほど作ったunity_vs.batを選択します。
あとは、Unityで自由にC#をゴリゴリ書くのみです。

Assets->Create->C# Scriptを選択してC#ファイルを作った後、そのファイルを選択すると・・・

f:id:satoysan:20150218013557p:plain

といった感じでクールなUIのVisual Studioが起動します。
補完機能も超強力で超高速です。

Android Studio 1.0 がリリースされたので、早速最初からインストール

記念すべき一番最初の記事は、Android Stadio 1.0が遂にリリースされたので、早速インストールしてみた記録を残そうと思います。

最近、ドスパラのゲーミングPC(GALLERIA)を購入したので、開発環境としては抜群なのであります。※ゲームしないのか?!

いろいろ初期状態ということもあって、毎日ちょっとずつ開発環境を整えているわけです。では早速インストールの手順をご紹介したいと思います。

JDKのインストール

ダウンロード

Java SE - Downloads | Oracle Technology Network | Oracle
http://www.oracle.com/technetwork/java/javase/downloads/index.html?ssSourceSiteId=otnjp

ちょうど何も入っていないということもあってまずはJDKの準備です。うちの環境はWindows8.1で64ビットオペレーティングシステムです。

 

JDKダウンロード画面

f:id:satoysan:20141209234358p:plain

 

赤丸のラジオを選択

f:id:satoysan:20141209234619p:plain

 

Windowsが64ビットならx64をダウンロード

f:id:satoysan:20141209234705p:plain

 

インストール

ダウンロードした、「jdk-8u25-windows-x64.exe」を実行します。

次へ次へと進み、環境に合わせてパスを変更したりします。

私の場合は何も変えずそのままインストールすることにしました。

f:id:satoysan:20141209235002p:plain

 

Android Stadio 1.0のインストール

ダウンロード

Android Studio | Android Developers
http://developer.android.com/sdk/index.html

 

ダウンロードボタンを押します

f:id:satoysan:20141209235350p:plain

 

規約的なものをOKに

f:id:satoysan:20141209235443p:plain

ダウンロードが開始されます。832Mバイトもあります。ほんとすごくデカいです。

インストール

f:id:satoysan:20141209235615p:plain

ダウンロードした「android-studio-bundle-135.1629389.exe」を実行しインストールを開始します。次へ次へとどんどん進めます。すべて基本的な設定ですすみます。

 

f:id:satoysan:20141209235805p:plain

そして、気づくとフィニッシュ。eclipseよりもインストールの手間がかかりません。マジ簡単です。JDKの環境変数設定をしていない場合は、StartAndoridStudioをチェック入れても進みませんので、環境変数の設定をします。

 

※ちなみにJDKいれてない状態で先にAndroid Stadioインストールすると以下のような余計な画面が出てきます。(JDKどこにあんのよ?設定して!)

ので、一旦そっと閉じて、JDK先にインストールしましょう。

f:id:satoysan:20141211013105p:plain

環境変数の設定

最初にインストールしたJDKの環境変数を設定します。

まず、エクスプローラをひらき、コントロールパネルの中の、システムとセキュリティ、システムで、システムの詳細設定を選択するとシステムのプロパティを開くことができます。その中にある環境設定をクリックします。

f:id:satoysan:20141210000204p:plain

その中でシステムの環境変数という枠にある「新規」ボタンを押し、変数名に「JAVA_HOME」、変数値に「C:\Program Files\Java\jdk1.8.0_25」といれます。※私の場合のJDKインストール先がココというだけですので自分の環境に合わせて設定してください。

その後、OKボタンですべてを確定し終了させます。

Android Stadio 1.0起動

早速起動します。こんなウィンドウが開くのでそのままOKを押します。

f:id:satoysan:20141210000701p:plain

遂に起動です。

f:id:satoysan:20141210000727p:plain

 

すると何やら必要なコンポーネントが勝手にダウンロードされます。とても簡単です。

f:id:satoysan:20141210000802p:plain

 

起動しました・・が、英語ですので次は日本語化したいと思います。

まずはconfigureを選択

f:id:satoysan:20141210000840p:plain

 

Settingを選択

f:id:satoysan:20141210000926p:plain

 

Appearanceを選択しOverride default font byをチェックします。

私の場合はフォントはそのままのMeiryo UIにしました。

f:id:satoysan:20141210000955p:plain

以上でOKを押していったんAndroid Stadioを終了させます。

Android Stadioの日本語化

次は日本語化のパッチを当てます。下のリンクからダウンロードします。


yuuna/IDEA_resources_jp · GitHub

 

f:id:satoysan:20141210001421p:plain

IDEA_resources_jp-master.zipというzipがダウンロードできますので、それを解凍します。解凍後、フォルダの中に「resources_jp.jar」というファイルがありますのでAndroid Stadioのライブラリにコピーします。私の環境の場合は「C:\Program Files\Android\Android Studio\lib」の直下でした。

コピー完了後、Android Stadioを起動してみると・・・。

f:id:satoysan:20141210001807p:plain

ちゃんと日本語化されて一安心です。

Android SDKの準備

さて、このままではまだSDKがそろっていません。 ささっとダウンロードします。

SDKマネージャを起動します。

f:id:satoysan:20141210001941p:plain

 

eclipse版をご存知の方から見ればなんか懐かしい感じの画面かと思います。

f:id:satoysan:20141210002015p:plain

 

がしがし好みのSDKをダウンロードしましょう。超時間かかります。

f:id:satoysan:20141210002120p:plain

 

AndoridStadio1.0の実行

駆け足できましたが、かなり環境構築が簡単な印象です。早速新規プロジェクトを作成してAndroidの起動までやってみます。

 

Start a new Android Studio projectを選択

f:id:satoysan:20141210003627p:plain

 

適当にざざっと決めちゃいます

Application name: MyApplication

Company Domain: sato001.example.com

Project lcation : 自由にどうぞ。(プロジェクトを作るパスです)

f:id:satoysan:20141210003701p:plain

 

作るアプリの最低動作SDKの定義です。何でも構いません。

f:id:satoysan:20141210003919p:plain

 

どんなアプリを作るのか選択します。今回はBlankActivityを選択しまっす。

f:id:satoysan:20141210004004p:plain

 

ほかいろいろ情報設定。そのままで進めました。

f:id:satoysan:20141210004112p:plain

 

ようやく起動完了。ちょっぴり遅いPCだとココ時間かかるかもしれません。(たぶん)

f:id:satoysan:20141210004135p:plain

 

では、画面の上のほうにある三角ボタンを押して、アプリをビルドしてみましょう。

小さなウィンドウが表示すると思いますので、「Launch emulator」のままOKを押して実行します。すると・・・・ここも時間かかる人はかかるかもしれません。

・・起動しますので、ロックを解除してアプリを確認すると・・・「Hello world」が!

f:id:satoysan:20141210004543p:plain

なんとか環境は整ったようです。

eclipseよりずっと楽になったような気はします。