【Android】アプリの仕組みについて 分かりやすい解説


前段


今回はAndroidアプリ開発の基礎について説明していきます!
アプリ開発前の前提知識といった部分になります。

  • Androidアプリがどのように動くのか
  • Androidアプリがどのような構成になっているのか

上記2点が分かるような記事になっています。
ぜひ最後までお読みいただければ幸いです。


1.Androidアプリが動くまで

これから開発するにあたって最重要という内容ではありませんが、前提としてぼんやり、どういう仕組みでアプリが動くのかということを理解しているとGoodです。


~開発の大まかな流れ~
ソースコードの作成 ★エンジニア(人間)はここを担当
ビルド
ビルドによってできた.apkファイルをAndroid端末にインストール


コンパイルとは : 人間が書いたソースコードをコンピュータが理解して実行できる形に変身させること

実は人間が書いたソースコードは、そのままではコンピュータが理解してくれません。。。
世間がイメージする、あの英語やら数字やら記号やらが並んだカッコよさげな文章は、実はコンピュータからしたらちんぷんかんぷんです。
コンピュータの世界では0か1しか存在していません。

人間が理解できる形のソースコードを、コンピュータが理解・実行できる形に変身(コンパイル)させるために、先日の記事に記載したAndroid SDK Toolsというものが必要になってきます。

人間によって作成されたソースコードをコンパイルして、アプリは動きます。
開発では、コンパイルを含めてソースコードを動かせる状態にすることを、ビルドと言います。
ビルドはとても負荷のかかる作業なので、大規模な開発になるとビルド専用のマシンが必要になってきたりもします。

とんでもなくPCが熱くなったりします。。笑

ビルドが完了するとapkファイルというものが出来上がります。
apkとは Android application PacKageの頭文字から来ています。
このapkファイルをAndroid端末にインストールすることによって、
Androidアプリを動かすことができるようになります。


2.Androidアプリの構成

Androidは大きく分けると以下の3つの要素で構成されています。

  • src (ソース)
  • res (リソース)
  • AndroidManifest (アンドロイドマニフェスト)


3. src アプリのロジックを担う部分

JavaもしくはKotlinというプログラミング言語で書かれ、アプリのロジック部分を担う役割を持ちます。
画面の表示ロジックだったり、計算ロジックだったり….

srcの主な構成要素として以下の4つがあります。

  • Activity
  • Service
  • BroadcastReceiver
  • ContentProvider

この4つの構成要素についてわかりやすいように非常にザックリ説明します。


Activity (アクティビティ)
UIの制御を担当します。
画面を表示したり、画面を非表示にしたり、ユーザーからのタッチを検知したり….


Service (サービス)
ユーザーからは見えないところで、重たい処理を担当します。
他のアプリと連携したり、計算したり….


BroadcastReceiver (ブロードキャストレシーバー)
Androidのシステムから通知を受ける役割を担当します。
電話の着信情を受信したり、SDカードの抜き差しを情報を受信したり….


ContentProvider (コンテントプロバイダー)
アプリで保存するデータ管理を担当します。
ユーザー情報などを保存したり、引き出したり….

src部であるMainActivity.javaの例

package com.example.myapplication;

import androidx.appcompat.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);
    }
}


4. res アプリのUIを担う部分

アプリのUI部分を担う役割を持ちます。
画面に使用する画像が保存されていたり、画面のレイアウトが保存されていたり….
リソース部はxmlというマークアップ言語で記載されています。
下記に代表的なリソースタイプとザックリとした説明を記載します。


drawable/
アプリ内で使用する画像などを保存しています。(.png.9.png.jpg.gif


mipmap/
アイコンに使用する画像を保存しています。


layout/
アプリ画面のレイアウトについて記載されたファイルが保存されます。
Androidアプリのレイアウトはxml(Webアプリで言うところのhtml)で記載されています。


values/
アプリ内で表示される文字、文字色、寸法などが一括管理されたファイルが保存されます。
colors.xml : アプリ内で使用するを一括管理する
dimens.xml : アプリ内で使用する寸法を一括管理する
strings.xml : アプリ内で使用する文字列を一括管理する

これらは直接layout.xmlに埋め込むことももちろん可能ですが、
一括でまとめていた方が管理しやすくなるため、上記のような適切な場所で管理するのが望まれます。

res部であるstrings.xmlの例

<resources>
    <string name="app_name">My Application</string>
    <string name="greeting">Hello!</string>
    <string name="form_title">お名前を入力してください</string>
    <string name="send_button">送信</string>
</resources>


5. AndroidManifest アプリの設定を担う部分

アプリ全体の設定を担う役割を持ちます。
省略してマニフェストとよく呼ばれています。
システムへのアクセス設定だったり、初回起動時の画面設定だったり….

「写真フォルダにアクセスして、写真を編集するアプリを作ろう!」

これはただres部分で編集用の画面を作成し、src部分で写真を編集するロジック組んだだけでは実現出来ません。
アプリがAndroid端末の写真にアクセスする権限(パーミッション)がないからです。

iOSのアプリでもいいですが、アプリをインストールしてから初回起動時に、
「このアプリで写真へアクセスすることを許可しますか?」
などと聞かれた経験はありませんか?

Android】スマホ画面に「許可しますか?」と表示されたらどうすれば ...

このようなAndroidのシステムにアクセスする設定などが書かれているのがManifestファイルです。

AndroidManifest.xmlの例

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.myapplication" >
    
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

    <application
        android:allowBackup="true"
        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" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

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

</manifest>


まとめ

Androidアプリ開発の流れ
1.ソースコードを作成する
2.コンピュータが理解、実行できるようにビルドする
3.Android端末にビルドしてできたapkファイルをインストールして動かしてみる

Androidアプリの構成要素
・src
・res
・AndroidManifest
大きく分けるとこの3つでできている。

以上Androidアプリ開発の基礎である、仕組みと構成要素についてでした。

この記事が少しでも理解の助けに役立つことができれば幸いです。
ご精読いただきありがとうございました!!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です