読者です 読者をやめる 読者になる 読者になる

Spring Boot をはじめてみるよ(Maven コマンド編)

hiranoon.hatenablog.com

上記では、 STSGUI でプロジェクトを作りました。

GUI が裏でヨロシクやってくれていたのですが、何が行われていたのか分からないと、何かを変えたい時にどこを修正すればよいのかも分かりません。

そこで、 GUI を使わずに作成する方法を確認してみましょう。

下準備

  • jdk のインストール
  • Maven のインストール
  • STS(Spring Tool Suite)のインストール

を行います。ここでは、 Maven のインストールだけ触れておきます。

ちなみに、なんで Gradle じゃなくて Maven なの? と言われてしまうかもですが、 Maven には後述する archetype:generate というのがあるので、最初の敷居が低くなるから(説明が若干省けるから)です。 Gradle を使いたい人は、 Gradle で試してみてください。

Maven の導入

Windows の場合

公式サイトからダウンロードして入れておけばOK!

Maven – Welcome to Apache Maven

PATH を通して cmd.exe から mvn コマンドが使えるようにしておきます。

Mac の場合

homebrew を入れている前提ですが、 brew コマンドでインストールできます。

$ brew update        # 一応 formula を更新しておいてから、
$ brew install maven # Maven をインストールします。

インストールの確認

mvn --version で、バージョン情報が表示されればOK。

$ mvn --version
Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-11T01:41:47+09:00)
Maven home: /usr/local/Cellar/maven/3.3.9/libexec
Java version: 1.8.0_45, vendor: Oracle Corporation
Java home: /Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home/jre
Default locale: ja_JP, platform encoding: UTF-8
OS name: "mac os x", version: "10.11.2", arch: "x86_64", family: "mac"

Spring Boot プロジェクト作成

空の Maven プロジェクトから作る

mvn コマンドで空のプロジェクトを作ることができます。

$ mvn -B archetype:generate -DgroupId=edu.self -DartifactId=my_first_spring_boot -Dversion=1.0.0-SNAPSHOT -DarchetypeArtifactId=maven-archetype-quickstart
$ cd my_first_spring_boot/

-B は 「Run in non-interactive (batch) mode」という意味です。コマンド実行時に「パッケージは edu.self でいい?」といった質問をされずに済みます。それだけです。

archetypeArtifactId はどんなスケルトンを作るかを指定します。 maven-archetype-quickstart を指定すると、世間的にデファクトとなっている、ちょうどいい感じの空の Maven プロジェクトが作成されます。(他にも色々ありますが、まあ、使わんです。)

ここで指定した引数は以下のようになります。

パラメータ 引数 意味
groupId edu.self プロジェクトを一意に識別する名前。 プロジェクトのルートパッケージ名を指定するのが一般的です。
artifactId my_first_spring_boot プロジェクトの成果物の名前。 作成する JAR や WAR, EAR ファイルなどの名前に使用されます。
version 1.0.0-SNAPSHOT プロジェクトのバージョン。
archetypeArtifactId maven-archetype-quickstart 作成するスケルトンの種類。

STS の利用

Maven で作成したプロジェクトを STS にインポート

STS.app を起動します。

次に、Maven で作成したプロジェクトを STS にインポートします。

[File] > [Import] > [Maven] > [Existing Maven Projects]

で、作成したプロジェクトを指定します。

以降、STS を使って作業をします。

これで各種インストールはおしまいです。

プロジェクトの設定変更

自動で作られたプロジェクトは Spring のプロジェクトではないので、「Spring を使うよ!」という設定にしてみましょう。

pom.xml の編集して Spring の利用を宣言

プロジェクトには、pom.xml と App.java (とそのテスト)だけ作成されています。

pom.xmlMaven プロジェクトの設定ファイルです。 pom.xml に Spring Boot を利用するよう変更します。 以下の【追加】、【削除】とコメントのある部分のみ変更を加えています。

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>edu.self</groupId>
  <artifactId>my_first_spring_boot</artifactId>
  <packaging>jar</packaging>
  <version>1.0.0-SNAPSHOT</version>
  <name>my_first_spring_boot</name>
  <url>http://maven.apache.org</url>
  <!-- Spring Boot の利用を宣言し、バージョンを指定【追加】 -->
  <parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.3.1.RELEASE</version>
  </parent>
  <dependencies>
    <!-- Spring Boot の Web アプリケーションライブラリの利用を指定【追加】 -->
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <!-- Spring Boot の ユニットテストライブラリの利用を指定【追加】 -->
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-test</artifactId>
    </dependency>
<!-- JUnitの指定を削除(Spring Boot に同梱されているため)【削除】
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
 -->
  </dependencies>
  <build>
    <plugins>
      <!-- Spring Boot の ビルド用 Maven プラグイン【追加】 -->
      <plugin>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-maven-plugin</artifactId>
      </plugin>
    </plugins>
  </build>
  <properties>
    <!-- Java バージョン指定【追加】 -->
    <java.version>1.8</java.version>
  </properties>
</project>

Spring Boot 関連では以下の3つの依存パッケージを追加しました。 これでこのプロジェクトで利用する各種ライブラリを Web 経由で取得できるようになります。 なお、spring-boot-starter-parent は必須です。

  • Spring Boot の基本パッケージ(spring-boot-starter-parent)これをベースに web や batch などを追加していきます。
  • Spring Boot の Web 基本パッケージ(spring-boot-starter-web
  • Spring Boot の UnitTest の基本パッケージ(spring-boot-starter-test

あとは、Maven で Spring Boot を扱えるようにするためのプラグイン spring-boot-maven-plugin と、 Java8 を使うという指定の2つを入れています。

さて、今、 STS 上ではエラー表示が出ているのではないかと思います。 pom.xml の設定変更を STS が認識していないからです。反映させてあげましょう。

プロジェクトを右クリック > Maven > Update Project...

これでエラー表示が消えたはずです。

利用ライブラリの確認

Spring Boot に「お任せでいい感じのライブラリを入れといて!」という指示をしました。 実際にどのようなライブラリが使われるのか、確認してみましょう。

$ mvn dependency:tree

使われるライブラリの一覧がツリー状に表示されます。

もちろん STS の Package Explorer でも見ることができます。

簡単な Web アプリで 「Hello Spring Boot!」

今回、 spring-boot-starter-web を入れたので、ブラウザで表示できることを確かめましょう。

簡単な Web アプリの作成

すでに App.java がエントリーポイントとして存在しますので、これを編集して使ってみましょう。

@RestController // Webアプリのリクエストを受け付けるクラスであることの指定
@EnableAutoConfiguration // 様々な設定を自動的に有効化
public class App {
    @RequestMapping("/") // URLのパスの指定
    public String index() {
        return "Hello Spring Boot!";
    }

    public static void main(String[] args) {
      // Spring Bootによるアプリケーションを起動するための処理です。
      SpringApplication.run(App.class, args);
    }
}

はい、こんだけです。

コンソールからの起動

Maven で Spring Boot を起動します。裏で Tomcat が起動することになります。

$ mvn spring-boot:run

http://localhost:8080/ にアクセスして「Hello Spring Boot!」と表示されればOKです。

Ctrl + c で、Tomcat を Stop しておきましょう。

STSからの起動

App.java を右クリックして「Spring Boot App」の実行をしてもOK。これでも Tomcat が起動します。

[Run As] > [Spring Boot App]

どちらでも、好きな方法で起動しましょう。

実行可能な jar を作って配布

GUI から実行もできるのですが、コマンドを打って実行することで、 GUI で行われていることが何であったのか確認しておきましょう。

jar の作成と実行

作成は簡単。以下のコマンドで、 ./target フォルダに jar ファイルが作成されます。

$ mvn packege

起動は jar を実行するだけです。 Tomcat が立ち上がります。

$ java -jar target/my_first_spring_boot-1.0.0-SNAPSHOT.jar

http://localhost:8080/ にアクセスして「Hello Spring Boot!」と表示されればOKです。

war ファイルで運用するのは大変?

と、タイトルに書きましたが、簡単にはできません。 Spring Boot は jar で運用することを前提としているようですので、この変更はちょっと面倒です。

ただ、 GUI から war をターゲットにしたプロジェクトを自動生成することができます。 これまでの説明で作成したプロジェクトと比較すれば、どういう仕組にすれば良いのか自ずと見えてくると思います。

Tomcat や他の AP サーバーがすでに存在しているところにアプリケーションを提供することは多々あると思います。 そういう場合はこの対応が必要になってきますので、ちょっと頑張ってやってみましょう。

おわりに

以上です。

そこそこちゃんとした Web アプリを作るお話はまた別の機会に!

Spring Boot をはじめてみるよ(Gradle 編)

hiranoon.hatenablog.com

上記では、 STSGUI でプロジェクトを作りました。

使ったのが Maven でしたので、今度は Gradle で試してみましょう。

結論を言いますと、違いはプラグインをインストールするだけということが言えます。

使い方は若干変わりますが、 Gradle を選択するレベルの人にとってはどうということもないでしょう。 「ああ、それだけね。」と理解した方は、その部分だけ読むか、そのまま離脱でOKです。

・・・ですが、一応それなりに書いてみます。

Gradle プラグインの導入

[Help] > [Eclipse Marketplace...] を選択します。

f:id:hiranoon:20151230032543p:plain

検索窓に「Gradle」と入力して Enter キーを叩きましょう。 「Gradle Integration for Eclipse」というプラグインがでてきたらソレです。 (利用している STS のバージョンによって使えるプラグインのバージョンも変わるかも、です。)

f:id:hiranoon:20151230032554p:plain

あとは、 Next 押したり、規約に同意したり、と、次へ次へでインストールできます。

Spring Boot プロジェクト作成とアプリの実行

スタータープロジェクトという名のスケルトンを作る

STS でプロジェクトを作ります。 メニューから「Spring Starter Project」を選んでプロジェクトを作成しましょう。

[File] > [New] > [Spring Starter Project]

Type に「Gradle (STS)」を選択してください。 Next ボタン押下後の画面では、利用する機能として「Web」だけ選択します。

これで、 Gradle 版のプロジェクトが作成されました。

簡単な Web アプリの作成

ブラウザに簡単た文字表示するアプリを作ります。 任意のパッケージに置きましょう。ただし、ベースのパッケージ配下に置いてください。

@RestController // Webアプリのリクエストを受け付けるクラスであることの指定
public class IndexController {
  @RequestMapping("/") // URLのパスの指定
    public String index() {
        return "Hello Spring Boot by STS with Gradle!";
    }
}

アプリケーションの起動

STS で Spring Boot を起動します。裏で Tomcat が起動することになります。

プロジェクトを右クリックし、「Spring Boot App」の実行を選択します。

[Run As] > [Spring Boot App]

http://localhost:8080/ にアクセスして「Hello Spring Boot by STS with Gradle!」と表示されればOKです。

アプリの作成と起動は Maven を選んだ時と変わりなし、ですね。

実行可能な jar を作って配布

Spring Boot では、実行モジュールが、 Tomcat も含めた jar ファイルとして提供されます。 その jar ファイルの作成方法が、 Maven と若干異なります。

jar の作成と実行

プロジェクトを右クリックし、「Gradle Build」を選択します。

[Run As] > [Gradle Build]

f:id:hiranoon:20151230032609p:plain

初回は「何の Task を実行するのか」が設定されていないのでダイアログが開きます。 ここで build と入力してから「Run」ボタンを押しましょう。(Ctrl + Space でタスクの候補を表示させて選択することもできます。)

f:id:hiranoon:20151230032621p:plain

build/libs フォルダに jar ファイルが作成されます。実行直後は作成されたことが STS に反映されないので、確認できないときは、プロジェクトを右クリックして Refresh を選択しましょう。

起動は jar を実行するだけです。ターミナル.app や cmd.exe から以下のコマンドを打つと、 Tomcat が立ち上がります。

$ java -jar build/libs/my_first_spirng_boot_sts_gradle_war-0.0.1-SNAPSHOT.jar

ということで、 Maven と生成方法、生成される場所、が若干異なります。

おわりに

以上です。

Gradle のプラグインさえ入れれば、あとは Maven のときと大差ありませんね。 STS がよしなにやってくれるよ、というお話でした。

次こそ、 GUI を使わずに利用したお話をします。

GUI を使わずにプロジェクトを作成したお話はこちら。

hiranoon.hatenablog.com

Spring Boot をはじめてみるよ

Spring でアプリケーションを作るには、今だったら Spring Boot を使うのがいいでしょうかね。

それでは、 Java アプリ開発はしたことあるけど Spring Boot は触ったことないよ、といった人向けに、最初にすることとして、以下の内容を説明していきます。

  • Spring Boot を使うための環境作り
  • 簡単な Web アプリを作って稼働確認
  • 実行可能な配布用モジュールを作る

本格的にプログラミングを開始をする前の Step を書いています。 アプリのソースはどういう風に書くか、は、またの機会に、ですね。

Spring Boot について

Spring はサブプロジェクトが多すぎる! 何を組み合わせればいいか分からないよ。。。 という問題にこんな感じで対応したものが Spring Boot です。

  • オススメの組み合わせを用意したよ!
  • 組み込みサーバーも入れておくのですぐ動かせるよ! APサーバーとか建てなくてもいいよ!

下準備

STS の導入

公式サイトからダウンロードします。

spring.io

ダウンロード後に解凍し、任意の場所に格納して、「STS.exe」を起動すればOKです。 それだけ! Mac なら解凍してできたフォルダごとアプリケーションフォルダに入れておけばいいでしょう。

Spring Boot プロジェクト作成

スタータープロジェクトという名のスケルトンを作る

STS にはスケルトンを作成する機能が用意されています。 「Spring Starter Project」という名前で呼ばれています。 メニューから作成しましょう。

[File] > [New] > [Spring Starter Project]

f:id:hiranoon:20151230031320p:plain

次に、設定を入力していきます。基本事項を入力して「Next」をクリック。

f:id:hiranoon:20151230031346p:plain

ここでは「Maven」に「Jar」を選んでいます。好みのものを選択すればOKですが、この文章では「Maven」と「Jar」を前提にお話を進めます。

その他、主要な入力内容は以下のとおりです。

項目 意味
Name プロジェクト名。
Group プロジェクトを一意に識別する名前。
Artifact プロジェクトの成果物の名前。作成する JAR や WAR ファイルなどの名前に使用されます。
Version プロジェクトのバージョン。
Package プロジェクトのルートパッケージ名に使われます。Group と同じにするのが一般的です。

次に、利用する機能を選択します。今回は「Web」だけをチェックして「Finish」をクリック。

f:id:hiranoon:20151230031418p:plain

これでプロジェクトが出来上がります。

利用ライブラリの確認

Spring Boot に「お任せでいい感じのライブラリを入れといて!」という指示をしました。 実際にどのようなライブラリが使われるのか、確認してみましょう。

Package Explorer から、「Maven Dependencies」を開いてみましょう。 Spring に関連するライブラリの他に、 Tomcat も同梱されていることが分かります。

簡単な Web アプリで 「Hello Spring Boot!」

今回、「web」を選択したので、何かしらの「モノ」がブラウザで表示できることを確かめましょう。

簡単な Web アプリの作成

すでに MyFirstSpirngBootStsApplication.java が作成されています。 これは、 Spring のエントリーポイントとなるクラスです。

このクラスとは別に、ブラウザに簡単た文字表示するアプリを作ってみましょう。同一パッケージに置いて大丈夫です。

@RestController // Webアプリのリクエストを受け付けるクラスであることの指定
public class IndexController {
  @RequestMapping("/") // URLのパスの指定
    public String index() {
        return "Hello Spring Boot by STS!";
    }
}

はい、こんだけです。

アプリケーションの起動

STS で Spring Boot を起動します。裏で Tomcat が起動することになります。

プロジェクトを右クリックし、「Spring Boot App」の実行を選択します。

[Run As] > [Spring Boot App]

f:id:hiranoon:20151230031436p:plain

http://localhost:8080/ にアクセスして「Hello Spring Boot by STS!」と表示されればOKです。

ちなみに、エントリーポイントとなる MyFirstSpirngBootStsApplication.java を右クリックし、[Run As] > [Spring Boot App] でも、[Run As] > [Java Application] でも、同じように動きます。

実行可能な jar を作って配布

さて、 Spring Boot では今までのよくある Java の Web アプリケーションと異なる部分があります。 実行モジュールが、 Tomcat も含めた jar ファイルとして提供されるのです。

  • 今までのよくあるパターン : Tomcat をインストールして、アプリケーションを war ファイルに固めてデプロイをする
  • Spring Boot の新しいパターン : Tomcat も含めた jar ファイルを作って、そのまま実行してもらう。

ちょっと独特じゃないですか? このアタリに Spring Boot の姿勢というか、なんというかが感じられますね。

jar の作成と実行

プロジェクトを右クリックし、「Maven Install」を選択します。

[Run As] > [Maven Install]

f:id:hiranoon:20151230031448p:plain

target フォルダに jar ファイルが作成されます。実行直後は作成されたことが STS に反映されないので、確認できないときは、プロジェクトを右クリックして Refresh を選択しましょう。

f:id:hiranoon:20151230031459p:plain

起動は jar を実行するだけです。ターミナル.app や cmd.exe から以下のコマンドを打つと、 Tomcat が立ち上がります。

$ java -jar target/my_first_spirng_boot_sts-0.0.1-SNAPSHOT.jar

おわりに

以上です。

割りと簡単でしたね。 これはこれでいいんですけども、 GUI でプロジェクトを作ってしまうと、何がどう設定されたのか分からないですよね。 今後、変更やトラブルに対応できなくなってしまうと思います。 いや、ホント、勝手に何がどうなっちゃったんだか、気になります!

ということで、引き続いて GUI を使わずに利用したお話をしようと思います。 あ、その前に Gradle のお話を簡単にしてみようと思います。

※Gradle のお話はこちら。

hiranoon.hatenablog.com

GUI を使わずにプロジェクトを作成したお話はこちら。

hiranoon.hatenablog.com

はてなブログで目次を表示するようにしました

はてなブログの設定変更履歴メモ第一弾。

ブログの記事内に目次を入れる方法です。ということで、この下にも目次を入れてみます。

目次の入れ方(公式より)

staff.hatenablog.com

記事中に以下を書けば良いとのこと。

[:contents]

記事中のヘッダータグである <h2>, <h3> などを拾ってきて目次にしてくれます。

目次のデザインは独自CSSでカスタマイズ

[:contents] だと、普通の <ul>, <li> で表示されるだけで、装飾はありません。 そこで、みなさん独自にCSSの追加などをなされているようです。

独自CSSの追記場所は、はてなブログの管理画面から以下のようにしてたどります。うーん、深ケー。

[ダッシュボード] > 左サイドバーの[デザイン] > 左サイドバーのレンチアイコン > 左サイドバーの[デザインCSS]

実際に使ったCSS

bunoshi.hateblo.jp

こちらのサイトさんで紹介されております。 CSSもそのまま乗っかっているので、丸っと使わせていただきました。 ありがたや~。

CSSは追々カスタマイズすると思うんですが、上記サイト様のデザインが気に入っているのでしばらくこのままになりそうです。

他にも、 jQuery の SmoothScroll を使う方法を紹介しているサイトもあったりと、みなさん色々工夫されているようです。 まあ、個人的にはそこまで要らないかなー、と思ってここまでやったところで終了としております。

Mac ユーザーのわたしが Nexus7 (2012) が激重なので、 Android のバージョンを 5.1 から 4.4.4 にダウングレードした話

うきうきで新バージョンにアップロードしたら、激重でゲンナリ (ノ∀`)アチャー したのでダウングレードしたお話です。

ダウングレードしてみたら、急激に快適になりましたよ。 今まで手に取ることすらしなくなった Nexus7 も、これを機にまた使ってみようかと思ってますよ。

いや、にしても、この手の情報、結構ネットで引っかかるのね。 みんなアップグレードして重い重いの大合唱ですね。 手順を丁寧に説明した記事はたくさんあるのですが、Windows向けの情報だったり、一部古かったり、不要な情報が沢山含まれていたり、と、あっちいったりこっちいったりで、大変だったのです。 なので、取り敢えず、2015年11月現在、わたしが Mac でやった方法をまとめておきました。

ダウングレードに必要なソフトウェアのダウンロードと準備

Android Studio のインストール

Android StudioAndroid アプリを開発するためのものです。 今回はその中の一部の機能である「platform-tools」を使います。 platform-tools を使って、端末に OS(Android) を再インストールすることになります。

http://developer.android.com/sdk/index.html

こちらからダウンロードして、同じフォルダに解凍します。

わたしが再インストールを行った時のバージョンは、「Android Studio 1.4.1」でした。 ダウンロードしたファイルを素直にダブルクリックし、ApplicationフォルダにコピーすればOKです。

Applicationフォルダに配置された Android Studio.app は、一度起動しておくと良いでしょう。 この時に各種ダウンロードも行われます。 ただ、わたしは何の考えもなしに起動して、ダウンロードが行われてしまったため、この作業が必須かどうかは分かりませんでした。 すみません。。。取り敢えずやっておきましょう。。。

起動して、「Welcome to Android Studio」と表示されたダイアログが開けば、無事にインストールができたと考えて良いでしょう。

platform-tools の確認

Android Studio のインストールで、 platform-tools もインストールされているはずです。 場所は /User/(your user name)/Library/ の配下にあります。 ターミナルを開いて確認してみましょう。

あ、ターミナルは必須です。 アプリケーション > ユーティリティ > ターミナル.app から起動できます。 起動したら、以下、$ より右側の文字をコピペすればOKです。

$ cd ~/Library/Android/sdk/platform-tools
$ ls -l
total 6424
-rw-r--r--   1 (your user name)  staff   167046 11  1 20:58 NOTICE.txt
-rwxr-xr-x   1 (your user name)  staff  1175964 11  1 20:58 adb
drwxr-xr-x   4 (your user name)  staff      136 11  1 20:58 api
-rwxr-xr-x   1 (your user name)  staff    62572 11  1 20:58 dmtracedump
-rwxr-xr-x   1 (your user name)  staff   216384 11  1 20:58 etc1tool
-rwxr-xr-x   1 (your user name)  staff   554816 11  1 20:58 fastboot
-rwxr-xr-x   1 (your user name)  staff    13348 11  1 20:58 hprof-conv
drwxr-xr-x   3 (your user name)  staff      102 11  1 20:58 lib
-rw-r--r--   1 (your user name)  staff    16509 11  1 20:58 source.properties
-rwxr-xr-x   1 (your user name)  staff  1063508 11  1 20:58 sqlite3
drwxr-xr-x  14 (your user name)  staff      476 11  1 20:58 systrace

一覧に表示されている fastboot が今回使う機能になります。

参考サイト

ブートローダーのアンロック

さて、再インストールにあたっては、ブートローダーのアンロックが必要になります。 これにより、メーカー補償がきかなくなります。 作業にあたっては、ちゃんと調べたうえで、自己責任でお願いします

また、ここでは手順だけ書きますので、詳しくは以下の参考サイトをご参照ください。

参考サイト

USBデバッグを可能にする

USBケーブル接続を行い、パソコン側でインストール操作をします。 そのため、端末側に「USBデバッグを可能にする」という設定が必要になります。

開発者向けオプションは、デフォルトでは非表示になっています。 そこで意図的に表示させてあげる必要があります。

設定アイコン > 端末情報 と進みます。 「ビルド番号」を連続でタップします。すると、「あとN回タップしてね!」とポップアップ表示で教えてくれるので、その回数分タップを続けます。 「これでデベロッパーになりました!」という表示がでればOKです。

f:id:hiranoon:20151102012009p:plain

すると、端末情報の上に「開発者向けオプション」が表示されます。

f:id:hiranoon:20151102012014p:plain

開発者向けオプション に進み、「USBデバッグ」をONにします。

f:id:hiranoon:20151102012019p:plain

参考サイト

端末を fastboot モードにする

電源ボタンとボリューム下ボタンを同時に30秒ほど長押しします。

倒れたドロイド君の画像が表示されればOKです。 これが fastboot モード、と呼ばれるものです。

現在、一番左下に、「LOCK STATE - LOCKED」と表示されていると思います。

ブートローダーのアンロックをする

ここで、インストールされた platform-tools の出番です。 ターミナルを立ち上げ、以下のコマンドを打ちましょう。

$ cd ~/Library/Android/sdk/platform-tools
$ ./fastboot oem unlock
...
(bootloader) erasing userdata...
(bootloader) erasing userdata done
(bootloader) erasing cache...
(bootloader) erasing cache done
(bootloader) unlocking...
(bootloader) Bootloader is unlocked now.
OKAY [ 43.686s]
finished. total time: 43.686s

すると、端末側に実行するか選択をする画面が表示されます。 もちろん「Yes」と選択します。 ここ、ちょっと注意なのですが、ボリュームボタンの大小で選択が変わり、電源ボタンで選択実行となります。

f:id:hiranoon:20151102012025p:plain

左下の表記が「LOCK STATE - UNLOCKED」に変わったらOK!

f:id:hiranoon:20151102012030p:plain

Android OS のダウンロード&インストール

ファクトリーイメージのダウンロード

インストールしたい Android OS を以下のサイトからダウンロードします。

Factory Images for Nexus Devices    Nexus Files for Developers    Google Developers

ファクトリーイメージと呼ばれるものです。 これは、端末を工場(ファクトリー)出荷状態に戻すことができるイメージファイルです。

このサイトには、端末の種類ごとに表があり、その中に各種バージョンのファクトリーイメージのダウンロードリンクがあります。 まずは、自身の端末向けの表を探し、そこから希望するファクトリーイメージをダウンロードします。

わたしの端末は Nexus7(2012) なので、以下の用になりました。

  • 表 → "nakasi" for Nexus 7 (Wi-Fi)
  • ダウンロードしたもの → 4.4.4 (KTU84P)

nakasi-ktu84p-factory-2c6e4d6f.tgz というファイルがダウンロードされました。 ダブルクリックをして解凍しておきます。

インストール

解凍してできたフォルダに移動します。 ここでもターミナルを使います。

わたしはダウンロードフォルダにダウンロードして、そこで解凍して、 nakasi-ktu84p というフォルダができました。 なので、場所は ~/Downloads/nakasi-ktu84p になります。 別の場所で解凍された方は、適宜自身の環境に合わせてください。

$ cd ~/Downloads/nakasi-ktu84p
$ ls -l
total 754464
-rw-r-----@ 1 (your user name)  staff    2150992  4  2  2015 bootloader-grouper-4.23.img
-rw-r-----@ 1 (your user name)  staff        984  6 14  2014 flash-all.bat
-rwxr-x---@ 1 (your user name)  staff        872  6 14  2014 flash-all.sh
-rwxr-x---@ 1 (your user name)  staff        698  6 14  2014 flash-base.sh
-rw-r-----@ 1 (your user name)  staff  384115329  6 14  2014 image-nakasi-ktu84p.zip

端末を fastboot モードにする

電源ボタンとボリューム下ボタンを同時に30秒ほど長押しします。

(一連の作業をされていたなら、すでに fastboot モードになっていると思います。)

ファクトリーイメージをインストール

先ほどダウンロードした中にある flash-all.sh というファイルでインストールができます。

その前に、 flash-all.sh 内で、fastboot コマンドを使っているので、パスを通しておく必要があるので export をしています。 その後に、 ./flash-all.sh とすればOKです。

$ cd ~/Downloads/nakasi-ktu84p
$ export PATH=$PATH:~/Library/Android/sdk/platform-tools
$ ./flash-all.sh
...
(bootloader) Bootloader is already unlocked
OKAY [  0.018s]
finished. total time: 0.018s
erasing 'boot'...
...中略...
OKAY [  1.147s]
writing 'cache'...
OKAY [  0.620s]
rebooting...

finished. total time: 157.476s

ここまで来ると、端末側でAndroidが初期起動します。

f:id:hiranoon:20151102012036p:plain

お疲れ様でした!

参考サイト