目次


Android 開発入門

オープンソースのアプリケーション・プラットフォーム

Comments

Android は Linux オペレーティング・システムをベースとした、よく使われているコンピューティング・プラットフォームです。最初の商用版 Android は、携帯電話向けプラットフォームという形で 2008 年に市場に登場しました。その当時、ビジネス・ユーザー用の携帯電話として最もよく使われていたのは BlackBerry ですが、その一方で、あらゆるセクターにわたって iPhone が大きな話題になり始めていました。また、当時はまだ、携帯電話のユーザーのほとんどが折り畳み式携帯電話を使用してテキストを入力していました。

スマートフォン市場において、Android はこの 10 年間にわたり、いわば「苦労して地位を獲得」したと言えます。Android デバイスと iPhone デバイスの成功により、一度はビジネス向けモバイル・フォン市場で首位の座にまでのぼりつめた BlackBerryは、ブルース・スプリングスティーンの曲「グローリィー・デイズ」で歌われているように過去の栄光となってしまいました。興味深いことに、Android の空前の成功は、BlackBerry が多様なオファリングに展開する後押しとなりました。これらのオファリングの中には、Android プラットフォームで動作する機器も含まれます (市場で首位の座を追われたにも関わらず、BlackBerry チームが方向転換し、利害関係者に対して、またこれまでよりも幅広い市場に対して付加価値を与えたことは称賛に値します)。

Android は 10 年の歳月をかけ、さまざまな手段によって事実上世界で最もよく使われているオペレーティング・システムになりました。華々しく有能な Apple iPhone プラットフォームは確固たる人気を誇っているとは言え、Android の出荷数は Apple オファリングの出荷数を上回っています。この事実が何を意味するのかと言うと、Apple のデバイスの価格が上昇し続ける中、Android デバイスはグローバル市場に拡大しているということです。もちろん、最新の iPhone に並ぶ超高額な Android モデルもありますが、ウォールマートや Amazon では比較的低コストの Android フォンやタブレットが販売されています。

Android は成熟の過程で、さまざまな機器にその活躍の場を見つけてきています。例えば、テレビ、プロジェクター、自動車、そして RV 車です。RV 車では、車内の電灯を暗くしたり、日よけを下げたりするために使われています。さらに、Android ベースのタッチスクリーン・インターフェースを使用して操作したり、スマートフォンに搭載された Bluetooth を介して RV 車の Android ベースのコントロール・システムと通信したりすることもできます。このようなタイプのインターフェースが次々と市場に進出しているのです。ユーザー・エクスペリエンスによっては、素晴らしいとしか言いようのないものも (ドローン・コントローラーなど)、それほど素晴らしいとは言えないものもあります (例えば、私の叔父の RV 車に搭載されている制御装置)。この記事では、Android プラットフォームの概要、そしてモバイルとモバイル以外の両方のアプリケーション用に Android を使用する方法を説明します。野望とも言えるこの記事の目的は、貢献したいと思うどのプラットフォーム向けにでも、目を見張るようなアプリを作成できるよう皆さんを導くことです。

Android の略歴

Android プラットフォームは、Open Handset Alliance (OHA) の取り組みによって生まれました。OHA は「より優れたモバイル・フォンを作成する」ことを目指して連携するために結成された組織です。現在 OHA の Web サイトにアクセスすると、最新ニュースが 2011 年の日付になっているため、この組織の取り組みは無駄に終わったと思うかもしれません。けれども、通信事業者、ハードウェア・メーカー、ソフトウェア・ベンダーからなるグループが開始した取り組みは、世界で最もよく使われているプラットフォームにまで発展しています。OHA の「陰の立役者」は Google かもしれませんが、それは重要なことではありません。Android が登場してから10 年の間に、さまざまな業界に属する世界中の多数の大企業が Android を市場に提供しています。同じく OHA のメンバーである Samsung は、Android のおかげで世界最大のスマートフォン・メーカーになっています。

Android デバイスの出発点はたった 1 つ (HTC によって製造され、T-Mobile ネットワーク上でプロビジョニングされた G1 デバイス) でした。それが今では、携帯電話だけでなく、地球上のあらゆる市場に存在すると言ってもよいくらいの存在になっています。

この記事の範囲外ですが、(ほぼ間違いなく) 世界で最も成功しているインターネット/検索を専門とする企業が、世界で最もよく使われているモバイル・プラットフォームの推進力でもあることには、何の関係もないかどうか自問自答してください。世界中で毎日人々が目にするデバイスの数では、他のどのコンピューター・プラットフォームと比べても、Androidが上回っています。

文字どおり、世界のどこでも実行できるコードを作成したいとしたら、この先を読み進めて、Android プラットフォームについて学んでください!

Android プラットフォーム

その広範な機能から、Android はデスクトップ・オペレーティング・システムと混同されがちかもしれませんが、Android は Linux カーネルをベースに豊富な機能を組み込んだ階層型環境です。ユーザー・インターフェース・サブシステムには、ウィンドウ、ビュー、ウィジェット (編集ボックス、リスト、ドロップダウン・リストなどの共通要素を表示) をはじめ、成熟したオペレレーティング・システム環境に期待するあらゆるものが含まれます。Android ブラウザーは通常の Web ブラウジングに対応するだけでなく、開発するアプリケーション内に直接組み込むこともできます。

この 10 年の間に消費者向けアプリケーションとビジネス向けアプリケーションの両方でスマートフォンが採用されるようになったことから、モバイル Web は様変わりしました。それは、Android にしても同じことで、「レスポンシブ」Web テクノロジーにより、モバイル・デバイスの実用性が大幅に強化されています。

図 1 に、Android ソフトウェア・レイヤーの略図を示します。

  • アプリケーション:
    • 電話、連絡帳、ブラウザーなどの組み込みアプリケーション。具体的なアプリケーションは Android のバージョンとメーカーによって異なります。
    • Google Play や Amazon などのマーケットプレイスから入手する商用アプリケーション。
    • サイドロードされるアプリケーション (皆さんが作成するアプリケーションも含まれます)。つまり、USB ケーブルを使用してインストールするアプリケーションのことです。
  • アプリケーション・フレームワーク。例えば、テレフォニー・マネージャー、ロケーション・マネージャー、通知マネージャー、コンテンツ・プロバイダー、ウィンドウイング、リソース・マネージャーなどです。
  • ライブラリー。例えば、グラフィックス・ライブラリー、メディア・ライブラリー、データベース・ライブラリー、センサーなどです。
  • Android ランタイム。アプリケーションを実行し、実行中のアプリケーションを管理します。
  • Linux カーネル。電源、ファイル・システム、ドライバー、プロセスなどを管理します。
図 1. Android のソフトウェア・レイヤー
Android のソフトウェア・レイヤー
Android のソフトウェア・レイヤー

Android の自慢は、Wi-Fi、Bluetooth、NFC、そしてもちろん、想像し得る限りのあらゆるネットワーク上での携帯電話接続など、一連の接続方法が揃っていることです。地図アプリやナビゲーション・アプリは、ロケーション・ベースのサービスによって駆動されます。最新のスマートフォンに搭載されているデジタル・カメラは、実質的にデジタル・カメラ専用機を高級市場から撤退させるまでの品質を誇っています。Android について言えば、フルモーション・ビデオをキャプチャーする機能を備えた複数のカメラをサポートしています。私が気に入っているアプリケーション区分のうちの 1 つは、マシン・ビジョンです。マシン・ビジョンでは、例えばアプリケーションがカメラを入力機器として使用して製造検査を行います。最新の Android 機器は、音声ベースのサービスによって仮想の個人秘書にも変身します。

想像できるアプリケーションならば、どのアプリケーションでも Android プラットフォーム上でプログラムできます!

Android が有能なコンピューティング・プラットフォームであるのは明らかなので、ここからは、Android ではどのような種類のアプリケーションを実行できるか見ていきましょう。

アプリケーション・アーキテクチャー

Android アプリケーション環境の重要な側面の 1 つとして、Android アプリケーションは歴史的に、Java プログラミング言語で作成されてきた点があります。ただし、Google が開発した Kotlin という比較的新しいプログラミング言語で Android アプリケーションを作成することもできます。この記事では Java だけに焦点を絞りますが、最近では Kotlin もよく使われるようになってきているので、詳しく調べることをお勧めします。プログラミング言語における「新しいほうが優れている」という傾向 (例えば、iOS/Apple の開発では、新しい Swift が Objective-C の座を奪いつつあります) と、Java を使用できる場合と使用できない場合をめぐる、終わることのない訴訟合戦を考えると、今後 2、3 年のうちに Kotlin が Android の主要な言語になることが見込まれます。

今のところ、Java は現役のテクノロジーです。駆け出しの開発者は、Java で作業するのが無難でしょう。その理由としては、第一に、Web 上にある 10 年分の Android に関するリソースは Java を重点としていることが挙げられます。第二に、他のプラットフォームでは今でも Java が盛んに使われています。特に、サーバー・サイドの Web テクノロジーに関してこれが言えます。典型的なオブジェクト指向プログラミング言語である Java のスキルは、やはり重要性があります。

現時点では問題にならないかもしれませんが、基礎となるソース・コードから Android アプリケーションに命を吹き込む方法については、興味深い詳細がいくつかあります。この点についても、この記事では Java プログラミングに焦点を絞って説明します。

Java ソース・コードはコンパイルされてバイトコードにフォーマット化されます。バイトコードは、特定のハードウェア機器に対する具体的な命令ではなく、アプリケーションのロジックを表します。従来の Java 環境と同様に、Android の初期のバージョンは、いわゆるバイトコードをハードウェアに固有の実行可能コードに変換することで動作していました。Just-In-Time (JIT) コンパイラーを使用したこの変換は、アプリケーションを実行するたびに毎回行われます。そして、JIT コンパイラーによって変換されたコードが、Dalvik VM という名前の仮想マシン内で実行されるという仕組みです。

Android バージョン 4.4 (KitKat) 以降、Dalvik VM は使用されなくなり、JIT コンパイラーがアプリケーションの実行時に機器上で直接、バイトコードを実行可能コードに変換するようになりました。この新しい手法は、Ahead-of-Time (AOT) コンパイルと呼ばれています。AOT コンパイルを使用する場合、バイトコードはアプリケーションのインストール時に一度だけ変換されます。そのため、アプリケーションをインストールするという 1 回限りのアクティビティーに時間がかかるようになりますが、処理速度が実に重要となる場合、実行時の処理時間を短縮できるというメリットがあります。

AOT では、必要となる RAMの容量を抑えつつ、実行時の処理速度を上げることができます。その代償としてストレージ要件が増えますが、ストレージのコストは低下する一方であることを考えると、モバイル・アプリケーションの AOT 手法への移行は好ましい方向です。図 2 に、新旧の実行環境を比較します。

図 2. Dalvik VM と Android ランタイムの比較
Dalvik VM
Dalvik VM

Android 開発の基礎

アプリケーションのソース・コードから実行中のコードへの変換方法の違いに関わらず、プログラミングの観点から見ると、Android 開発に着手する際には、開発の基礎について理解しておかなければならないことがいくつかあります。

Android アプリケーションは、以下に分類するコンポーネントの 1 つまたは複数で構成されます。

  • アクティビティー: 可視のユーザー・インターフェースを持つアプリケーションは、アクティビティーを使用して実装されます。ホーム画面またはアプリケーション・ランチャーからアプリケーションを選択すると、アクティビティーが開始されます。
  • サービス: ネットワーク監視や更新チェックのアプリケーションなど、長期間続行する必要のあるアプリケーションにはサービスを利用できます。
  • コンテンツ・プロバイダー: コンテンツ・プロバイダーを最も簡単に理解する方法は、これをデータベース・サーバーとして考えることです。コンテンツ・プロバイダーの役割は永続データ (スマートフォン上の連絡先情報など) へのアクセスを管理することです。極めて単純なアプリケーションには必ずしもコンテンツ・プロバイダーを作成する必要はありませんが、大規模なアプリケーション、あるいは複数のアクティビティーやアプリケーションにデータを使用できるようにするアプリケーションを作成している場合には、コンテンツ・プロバイダーがデータへのアクセス手段となります。
  • ブロードキャスト・レシーバー: Android アプリケーションは、データの特定の要素を処理する目的、またはイベント (例えばテキスト・メッセージの受信など) に応答する目的で起動することができます。

Android アプリケーションは AndroidManifest.xml というファイルと併せてデバイスにデプロイされます。このファイルは、すべての Android アプリケーションに必要です。このファイルが基本的に、オペレーティング・システムにアプリケーションとやり取りする正確な方法を指示するチート・シートとなるためです。例えば、アプリケーションがファイルをダウンロードするためにネットワークにアクセスしなければならない場合、このマニフェスト・ファイルにネットワークへのアクセス許可を明示的に記述する必要があります。また、アプリケーションがカメラにアクセスしなければならないとしたら、ユーザーからの許可も必要になります。アプリケーションが何を使おうとしているのかをユーザーに対して明示するというこの宣言型の手法は、プライバシーとセキュリティーに関する懸念事項が増えつつある中、必要不可欠と言えます。ソフトウェアの使用条件にはそのまますぐに同意することはできても、そのアプリがアクセスを要求する対象については、細心の注意を払うことが重要です。

背景情報はこれで十分でしょう。次は、Android アプリケーションを構築する場合に必要となる開発環境についてみていきましょう。

Android Studio の詳細

Android アプリケーションの開発を始める最も簡単な方法は、Android Studio アプリケーション・スイートをダウンロードすることです。Android 開発者向けサイトから、目的のプラットフォーム (Windows、Mac OS X、または Linux) に応じた Android Studio のコピーをダウンロードできます。Android Studio には、sdkmanager を使用してさまざまなプラットフォーム固有の機能を管理するためのツールや、実際の機器またはエミュレーター上でアプリケーションをテストする機能が備わっています。

古い世代の開発ツールもあります。例えば、Android Studio の先行モデルである Android Developer Tools (ADT) や、ADT の先行モデルである Android Developer Tools プラグインを備えた Eclipse などです。本質的に、Android Studio は第 3 世代の Android 統合開発環境 (IDE) となっています。さらに、コマンドライン・ツールと各種の継続的インテグレーション・ツールチェーンを使用して Android アプリケーションを構築することもできます。

この記事では、Android Studio を使用することを前提とします。Android Studio はコンテキスト依存のヘルプやコード補完候補のヒントなどを備えたリッチな Java 環境であるため、直感的に Java コードを作成できます。Java コードをコンパイルした後は、Android Studio のコンポーネントによって、AndroidManifest.xml ファイルを含むアプリケーションすべてが正常にパッケージ化されたことが確認されます。

SDK のコンポーネントについて簡単に見ていきましょう。

Android SDK の数々の要素のダウンロードは、Android Studio の統合エクスペリエンスとして同梱されている sdkmanager によって管理されます。図 3 に、Mac にインストールされた SDK を構成する要素のサブセットを示します。

図 3. Android SDK
Android Emulator
Android Emulator

Android 開発の一般的なエクスペリエンスとして、最終的に複数のバージョンの SDK をインストールすることが考えられます。なぜなら、アプリケーションでは複数のバージョンの Android 機器をターゲットにする可能性が高いからです。どの SDK を選択するかを決定する際は、sdkmanager が支援してくれます。利用可能な Android ツールを調べると、選択肢の多さに圧倒されてしまうはずですが、初心者があらゆる詳細を気にする必要はありません。そうする必要が出てくるのは、必要な特定のバージョンが明らかになった時点です。プロセスを何回か繰り返すと、どのバージョンが必要であるかがわかってきます。

Android アプリケーションは実際の機器上で実行することも、Android SDK に付属の Android Emulator 上で実行することもできます。図 4 は、Android Emulator のホーム画面です。

図 4. Android Emulator
adb シェル・コマンドの使用
adb シェル・コマンドの使用

次は、adb (Android Debug Bridge) ユーティリティーを少々詳しく見ていきます。adb ユーティリティーがサポートするさまざまなコマンドライン引数を使用することで、ファイルを Android デバイスとの間でコピーするといった強力な機能を実行することができます。シェル・コマンドライン引数を使用して、携帯電話そのものに接続し、基本的なシェル・コマンドを実行することができます。図5 に、USB ケーブルで Windows ラップトップに接続した実際の Android デバイスに対する adb シェル・コマンドを示します。

図 5. Samsung デバイスに対して実行した abd シェル
Samsung デバイスに対して実行した abd シェル
Samsung デバイスに対して実行した abd シェル

図 5 では、adb シェル環境で以下の操作を実行しています。

  • ネットワーク構成を表示。上の図には複数のネットワーク接続が示されています。ネットワーク接続は複数あることに注意してください。
    • lo は、ローカル接続またはループバック接続です。
    • wlan0 は、ローカル DHCP サーバーによって提供されるアドレスを使用した WiFi 接続です
  • SD カードの内容を表示。
  • PATH 環境変数の内容を表示。
  • ping コマンドを実行して Google.com にアクセスできるかどうかを確認。

この同じコマンド・プロンプト環境から、SQLite データベースを操作したり、プログラムを起動したりするなど、他にも多くのシステム・レベルのタスクを実行することができます。携帯電話に接続していることを考えれば、かなり卓越した機能だと言えます!一部の機能には、root 化された携帯電話または開発者向け携帯電話へのアクセスが必要になることに注意してください。開発者向け携帯電話は、アプリケーションの開発を支援するために機器にアクセスしやすくすることを明確な目的として販売されている機器です。

開発に利用できるツールと環境について多少理解できたところで、次は、単純な Android アプリケーションを作成する手順を説明します。

基本的なアプリケーションのコーディング

これから、Android アプリケーションの作成方法を簡単に説明します。ここで作成するアプリケーションは、想像し得る最も単純な「Hello Android」アプリケーションに過ぎません。

アプリケーションを作成するために、新しいアプリケーション・ウィザードが案内する簡単なプロセスに従います。

10 年前に私が初めて Android を対象に作成したアプリケーションに敬意を表し、このサンプル・アプリケーションには「Flashlight」という名前を付けます。

図 6. アプリケーションの新規作成
新しいアプリケーションを作成する画面のスクリーンショット
新しいアプリケーションを作成する画面のスクリーンショット

差し当たり、Java だけを使用するので、C++ と Kotlin のチェック・ボックスはオフにします。

図 7. 対象とする Android デバイスの指定
対象とする Android デバイスを指定する画面のスクリーンショット
対象とする Android デバイスを指定する画面のスクリーンショット

サポートするプラットフォームと SDK レベルを決定する必要があります。選択可能な項目に注目してください。電話とタブレットからウェアラブル、TV、自動車、Android Things (!) まであります。

図 8. 対象とする機器の選択
対象とする機器を選択する画面のスクリーンショット
対象とする機器を選択する画面のスクリーンショット

「Phone and Tablet (電話とタブレット)」を選択した後、対象とする SDK リビジョン・レベルを選択する必要があります。ここでは、SDK レベルを Android の「P」から先行バージョンに遡ることにします。この記事を書いている時点で、出荷されているデバイスのうち、「P」をサポートしているのは 1 パーセントに満たないためです。ここでは、Android デバイスのほぼ 100 パーセントでサポートされているバージョン 4.1 (Jelly Bean) を選択します。

ひと言: Android デバイスは一般に、前のバージョンとの互換性という点では極めて融通が利きます。かつてと比べて少々厳しくはなっているものの、Android は互換性に関しては Apple iOS よりも遥かに柔軟です。Apple がユーザーにアップグレードを迫るのは、セキュリティー上の懸念をはじめ、もっともな理由があるからだという反論もあるでしょう。けれども、今のところは大きな問題にはならないと思いますが、アプリケーション開発者にとって、アプリを常に最新のバージョンに更新するという要件はすぐにストレスに感じられてくるはずです。Android であれば、一息つける時間を持てます。

図 9. アクティビティーの追加によるアプリケーションの活性化
アクティビティーを追加してアプリケーションを活性化させる画面のスクリーンショット
アクティビティーを追加してアプリケーションを活性化させる画面のスクリーンショット

このステップで、アクティビティーもユーザー・インターフェースも 1 つしかない単純なアプリケーションを作成します。レイアウトには 1 つのテキスト要素だけが含まれています。この要素に変更を加え、「Android FlashLight」となるようにします。リスト 1 に、この単純さを極めたレイアウトを記載します。

リスト 1. Activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">
    <include layout="@layout/content_main" />
</android.support.design.widget.CoordinatorLayout>

上記の activity_main.xml ファイルで、このアクティビティーが 1 つだけのアプリケーションのユーザー・インターフェースを定義しています。「include」タグが使用されていることに注目してください。このタグによって、リスト 2 に記載する content_main layout ファイルが取り込まれます。

リスト 2. Content_main.xml
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/colorOrange"
    app:layout_behavior="@string/appbar_scrolling_view_behavior"
    tools:context=".MainActivity"
    tools:showIn="@layout/activity_main">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Android Flashlight"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

</android.support.constraint.ConstraintLayout>

android:Background という名前の属性は colorOrange に設定されています。この背景色は、リスト 3 に記載する colors.xml ファイル内で定義されています。

リスト 3. Colors.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <color name="colorPrimary">#3F51B5</color>

    <color name="colorPrimaryDark">#303F9F</color>

    <color name="colorAccent">#FF4081</color>

    <color name="colorWhite">#FFFFFF</color>

    <color name="colorBlack">#000000</color>

    <color name="colorOrange">#FFA500</color>

</resources>

レイアウトには TextView が 1 つ含まれていますが、実際には単なる静的テキストなので編集することができません。このテキストは一連の constraint 属性によってセンタリングされます。

このアプリケーションには、MainActivity.java という名前の Java ソース・ファイルがあります (リスト 4 を参照)。

リスト 4. MainActivity.java
package com.navitend.flashlight;

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

public class MainActivity extends AppCompatActivity {

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

上記は「新規 Android プロジェクト」ウィザードによるボイラープレート・コードをそのまま使ったものです。 このコードについては、以下の点に注意してください。

  • com.navitend.flashlight という名前の Java パッケージに含まれます。
  • 2 つのインポートがあります。1 つはアクティビティー・クラスのインポート、もう 1 つはバンドル・クラスのインポートです。
  • このアクティビティーが起動されると、onCreate メソッドが呼び出されて savedInstanceState が渡されます。このバンドルは、アクティビティーが中断されてから再開されるときに使用されるものなので、このアプリケーションで考慮する必要はありません。
  • onCreate メソッドは、これと同じ名前を持つアクティビティー・クラス・メソッドをオーバーライドします。
    • スーパー・クラスの onCreate メソッドを呼び出します。
  • setContentView() の呼び出しによって、main.xml ファイルに定義されたユーザー・インターフェースを関連付けます。
    • activity_main.xml と colors.xml に含まれるすべてのものは、R.java ソース・ファイルに定義された定数に自動的にマッピングされます。このファイルはビルドされるたびに変更されるので、直接編集しないでください。

アプリケーションを実行すると、図 10 に示すように、オレンジ色の画面に黒いテキストが表示されます。

図 10. 実行中の Android Flashlight アプリケーション
実行中の Android Flashlight アプリケーションのスクリーンショット
実行中の Android Flashlight アプリケーションのスクリーンショット

AndroidManifest.xml ファイルについての説明を締めくくるにあたり、FlashLight アプリケーション用にセットアップした AndroidManifest.xml ファイルについて説明します (リスト 5 を参照)。

リスト 5. AndroidMainfest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.navitend.flashlight">

    <application
        android:allowBackup="true"
        android:installLocation="preferExternal"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity
            android:name=".MainActivity"
            android:label="@string/app_name"
            android:theme="@style/AppTheme.NoActionBar">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

このファイルは Android Studio によって自動的に作成されたものです。つまり、何もしなくてもこのファイルが作成されるというわけです!

このアプリケーションは確かに目を見張るようなものではなく、初めて作成するアプリケーションとして、無難で単純なものです。このアプリケーションを作成して実行することができれば、この先は順調に Android 開発を進めていけることになります!

まとめ

この記事では Android 入門として、実際にコーディングを開始するのに十分な概要を説明しました。読者の皆さんがこのサンプル・アプリケーションに刺激されて、Android プラットフォームをもっと詳しく調べてみる気になったことを願います。Android は市場に参入してから比較的短時間の間に市場を支配するまでの存在になりました。この驚くべきプラットフォームの機能については、今後の記事で詳しく探ります。


ダウンロード可能なリソース


関連トピック


コメント

コメントを登録するにはサインインあるいは登録してください。

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=60
Zone=Open source
ArticleID=395561
ArticleTitle=Android 開発入門
publish-date=12062018