SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Android Studioの新バージョン3をCheck It Out!

Android Studioの新バージョン3をCheck It Out!

  • X ポスト
  • このエントリーをはてなブックマークに追加

その他注目すべき機能

 ここまで、Kotlinのサポート、新しいJavaの記述方法を紹介してきました。ここからは、Android Studio 3.0に追加された機能で、他に注目すべきものをカタログ的に紹介していきます。

Layout Inspector

 これは、現在実行中の画面をAndroid Studioに表示してくれる機能です。

 例えば、ListViewを使った画面があるとします。レイアウトエディタでは図7のように仮の表示です。

図7 レイアウトエディタのデザインモードでListViewを表示した状態
図7 レイアウトエディタのデザインモードでListViewを表示した状態

 これが、Layout Inspectorを使えば、図8の通り実行中の画面を表示してくれます。

図8 Layout Inspectorを表示した状態
図8 Layout Inspectorを表示した状態

 これは、アプリ実行中に[Tools]メニューから
[Android] > [Layout Inspector]
を選択し、表示されたダイアログから実行中のパッケージを選択すれば表示されます。

 このLayout Inspectorにおいて、Android Studio 3.0では、右側のプロパティパネルでのプロパティのグループ化表示、および、プロパティパネルと左側のビューツリーでの検索機能が追加されています。

XMLフォントとダウンローダブルフォント

 これは、フォントをXMLで記述し、必要に応じてダウンロードしてくれる機能です。

 これまでは、Android SDKに含まれていないフォント(カスタムフォント)を使う場合は、assetsフォルダにフォントファイルを格納しておく必要がありました。ところが、Android 8(APIレベル26)からはリソースとして利用できるようになりました。これは、res/fontフォルダにフォントファイルを格納します。さらに、xmlファイルとしてフォントファミリーを記述して定義できます。リスト8がフォントファミリーを定義しているXMLのサンプルです。

リスト8 フォントファミリー定義のサンプル(maru.xml)
<?xml version="1.0" encoding="utf-8"?>
<font-family xmlns:android="http://schemas.android.com/apk/res/android">
    <font
        android:fontStyle="normal"
        android:fontWeight="400"
        android:font="@font/maru_regular" />
    <font
        android:fontStyle="italic"
        android:fontWeight="400"
        android:font="@font/maru_italic" />
</font-family>

 このファイルを、例えばmaru.xmlとしてfontフォルダに配置した場合、TextViewではリスト9のように指定すれば、フォントが適用されます。

リスト9 TextViewのfontFamily属性にリスト8のxmlファイルのR値を記述
<TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:fontFamily="@font/maru"/>

 これが、XMLフォントです。

 さらに、フォントファイルのダウンロードすら不要な方法も用意されています。これがダウンローダブルフォントです。これは、フォントプロバイダというアプリを端末内に用意し、そのフォントプロバイダにフォントデータをダウンロードしてもらいます。端末内の各アプリはフォントプロバイダを通じてファイルを共有する仕組みです。この仕組みのおかげで、アプリ内にフォントファイルを組み込む必要がなくなり、アプリのサイズを減らすことができます。現状、Google Play Servicesがフォントプロバイダとして組み込まれており、Google Fontsのフリーフォントが利用可能です。

 利用方法はいたって簡単です。レイアウトエディタの[Attributes]で[fontFamily]のドロップダウンリストを表示させてください(図9)。そのリストを一番下までスクロールすると[More Fonts...]が表示されるので、それを選択してください。

図9 fontFamilyのドロップダウンリストを一番下までスクロール
図9 fontFamilyのドロップダウンリストを一番下までスクロール

 すると図10のリソースウィンドウが表示されます。

図10 フォントを選択するリソースウィンドウ
図10 フォントを選択するリソースウィンドウ

 右上に[Source]のドロップダウンがあり、こちらでフォントの提供先を選択できます。現状Google Fontsしか選べません。[Fonts]一覧をスクロールすると、[Downloadable]という区切り線が表示されます。それ以下がダウンローダブルフォントです。適当なフォントを選んで[OK]をクリックしてください。ここでは「Aclonica」を選択しています。すると、レイアウトエディタ[Attributes]の[fontFamily]に「@font/aclonica」と記述されると同時に、図11のように/res/fontフォルダが作成され、フォントファミリーが記述されたxmlファイルが自動生成されています。

図11 /res/font/フォルダ内にxmlファイルが生成される
図11 /res/fontフォルダ内にxmlファイルが生成される

 とはいえ、フォントの実体はありません。これは、実行時にフォントプロバイダから提供されます。

Android Profiler

 これは、アプリのパフォーマンスをリアルタイムに表示する機能です。

 Android Studioの[View]メニューから
[Tool Windows」>[Android Profiler]
を選択すると、図12のツールウィンドウが表示されます。これは、ツールバーのアイコンをクリックしても表示されます。

図12 Android Profilerツールウィンドウ
図12 Android Profilerツールウィンドウ

 このツールウィンドウでは、画面に起こったイベントのタイミング(図12ではMainActivityと書かれた緑色の横線の上の紫色の●)、CPUの使用状況、メモリの使用状況、ネットワークのトラフィックが一度に、しかもリアルタイムで確認できます。この画面を見ながら、作成したアプリのパフォーマンスについて、どこにボトルネックがあるのかなどを確認し、改善につなげることができます。

 さらに、それぞれの行をクリックすると詳細が表示されます。参考までに、メモリ行をクリックした詳細画面(図13)を掲載しておきます。

図13 Android Profilerのメモリ詳細表示
図13 Android Profilerのメモリ詳細表示

Instant Appsサポート

 Instant Appsは、インストール不要のAndroidネイティブアプリのことです。2017年5月17日、Googleが一般の開発者でも開発できるように公開しました。ただ、そのInstant Appsを開発するにはAndroid Studio 3.0が必要でした。その当時、Android Studio 3.0はまだプレビュー版でしたが、先行で発表した形です。今回、Android Studio 3.0が正式版となったことで、正式に開発が可能となりました。

 従来のAndroidアプリを利用するには、Google Play Storeなどを通してアプリをインストールする必要がありました。一方、Instant appsはインストールの必要はありません。リンクなど、Instant appsを表すURLにアクセスすると、自動的にモジュール化されたアプリの必要な部分だけを端末にダウンロードし、実行されます。ブラウザ上で動作しているように見えるので、Webアプリのように見えますが、ネイティブアプリとしての動作が可能です。Webアプリでは実現できなかった操作感を、アプリのインストールなしに体感してもらえる仕組みです。

 しかも、アプリの開発者は全く別々のアプリを作る必要もありません。既存のアプリの別ビルドとして同一プロジェクト内に作成できます。

 とはいえ、インストールするアプリと全く同等の機能が実現できるかというとそうではなく、例えば、バックグラウンド処理などは使えません。

Android Emulator Quick Boot

 これは、エミュレータの高速起動を実現する機能ですが、現段階では安定板は供給されていません。したがって、この機能使いたい場合はプレビュー版を使う必要があります。

 Android Emulator Quick Bootを利用するには、Android Emulator 26.2.0以降を使う必要があります。こちらは、Android Studioのアップデートを行うチャンネルをCanary Channelにすることで入手できます。26.2.0以降を使ってAVDを作成する際、AVDの設定画面の詳細表示に図14のように[Boot option]という項目があります。これを[Quick boot]にすることで、AVDの2回目以降の起動が早くなります。

図14 Boot optionの設定
図14 Boot optionの設定

参考資料

 ここまで紹介してきた機能を解説した公式サイトへのリンクを掲載しておきます。

まとめ

 いかがでしたでしょうか? 1年半ぶりのメジャーアップデートでよりAndroid Studioはさらに使いやすくなりました。ぜひ新機能を試してください。

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
この記事の著者

WINGSプロジェクト 齊藤 新三(サイトウ シンゾウ)

WINGSプロジェクトについて>有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。2018年11月時点での登録メンバは55名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書記事多数。 RSS X: @WingsPro_info(公式)、@WingsPro_info/wings(メンバーリスト) Facebook <個人紹介>WINGSプロジェクト所属のテクニカルライター。Web系製作会社のシステム部門、SI会社を経てフリーランスとして独立。屋号はSarva(サルヴァ)。HAL大阪の非常勤講師を兼務。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

山田 祥寛(ヤマダ ヨシヒロ)

静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるReact実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/10554 2017/12/11 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング