サーチ…


備考

Android Gradle Pluginの設定について詳しく知りたい場合は、 android-gradleドキュメントをご覧ください。

あなたが代替エミュレータに興味があるなら、あなたはGenymotionを見ることができます。無料のプランを提供し、必要なRAMの量は少なくて済みます。

バージョン

バージョン APIレベルバージョンコード発売日
1.0 1 BASE 2008-09-23
1.1 2 BASE_1_1 2009-02-09
1.5 3 CUPCAKE 2009-04-27
1.6 4 DONUT 2009-09-15
2.0 5 ECLAIR 2009-10-26
2.0.1 6 ECLAIR_0_1 2009-12-03
2.1.x 7 ECLAIR_MR1 2010-01-12
2.2.x 8 FROYO 2010-05-20
2.3 9 GINGERBREAD 2010-12-06
2.3.3 10 GINGERBREAD_MR1 2011-02-09
3.0.x 11 HONEYCOMB 2011-02-22
3.1.x 12 HONEYCOMB_MR1 2011-05-10
3.2.x 13 HONEYCOMB_MR2 2011-07-15
4.0 14 ICE_CREAM_SANDWICH 2011年10月18日
4.0.3 15 ICE_CREAM_SANDWICH_MR1 2011-12-16
4.1 16 JELLY_BEAN 2012-07-09
4.2 17 JELLY_BEAN_MR1 2012-11-13
4.3 18 JELLY_BEAN_MR2 2013年7月24日
4.4 19 KITKAT 2013年10月31日
4.4W 20 KITKAT_WATCH 2014-06-25
5.0 21 LOLLIPOP 2014-11-12
5.1 22 LOLLIPOP_MR1 2015-03-09
6.0 23 M (マシュマロ) 2015-10-05
7.0 24 N (Nougat) 2016-08-22
7.1 25 N_MR1N_MR1 MR1) 2016年10月4日
8.0 26 O (開発者向けプレビュー4) 2017-07-24

Android Studioを設定する

Android Studioは、Googleが公式にサポートし、推奨するAndroid開発用IDEです。 Android Studioには、 Android SDK Managerが付属しています 。これは、アプリの開発を開始するために必要なAndroid SDKコンポーネントをダウンロードするツールです。

Android StudioとAndroid SDKツールのインストール:

  1. Android Studioをダウンロードしてインストールします
  2. Android Studioを開き、 Android SDKツールのアップデート手順に従って、最新のSDKツールとSDKプラットフォームツールをダウンロードしてください。最新の安定したパッケージをインストールする必要があります。

古いSDKバージョンを使用してビルドされた古いプロジェクトで作業する必要がある場合は、これらのバージョンもダウンロードする必要があります

Android Studio 2.2以降、最新のOpenJDKのコピーがインストールにバンドルされており、すべてのAndroid Studioプロジェクトで推奨されるJDK (Java Development Kit)です。これにより、OracleのJDKパッケージをインストールする必要がなくなります。バンドルされたSDKを使用するには、次の手順を実行します。

  1. Android Studioでプロジェクトを開き、メニューバーの[ ファイル]> [プロジェクトの構造 ]を選択します。
  2. [ SDKの場所]ページと[ JDKの場所]で 、[ 埋め込みJDKを使用する]チェックボックスをオンにします。
  3. [ OK]をクリックします。

Android Studioを設定する

Android Studioでは、[ ヘルプ ]メニューから2つの設定ファイルにアクセスできます。

  • studio.vmoptions :ヒープサイズやキャッシュサイズなど、StudioのJava Virtual Machine(JVM)のオプションをカスタマイズします。 Linuxマシンでは、Android Studioのバージョンに応じて、このファイルの名前はstudio64.vmoptionsになることに注意してください。
  • idea.properties:Android Studioのプロパティ(プラグインのフォルダパスやサポートされている最大ファイルサイズなど)をカスタマイズします。

テーマの変更/追加

あなたの好みとして変更することができます。 File->Settings->Editor->Colors & Fonts->とあなたから新しいテーマをダウンロードすることができtheme.Alsoを選択http://color-themes.com/あなたがダウンロードしたら.jar.zipファイルを、に行くFile -> Import Settings...を選択し、ダウンロードしたファイルを選択します。

アプリのコンパイル

新しいプロジェクトを作成するか、Android Studioで既存のプロジェクトを開き、緑色の再生ボタンを押しますここに画像の説明を入力ツールバーの上部にあるツールバーを使用して実行します。グレーの場合、Android Studioがいくつかのファイルのインデックスを正しく作成できるようにするには、1秒待つ必要があります。その進行状況は下部のステータスバーに表示されます。

シェルからプロジェクトを作成する場合は、Android Studioによって自動的に作成されるlocal.propertiesファイルがあることを確認してください。 Android Studioを使用せずにプロジェクトを作成する必要がある場合は、 sdk.dir=始まり、SDKのインストール先のパスが必要です。

シェルを開き、プロジェクトのディレクトリに移動します。 ./gradlew aRと入力してEnterキーを押します。 aRassembleReleaseショートカットで、あなたのためのすべての依存関係をダウンロードし、アプリケーションをビルドします。最終的なAPKファイルはProjectName/ModuleName/build/outputs/apkあり、 ModuleName-release.apkと呼ばれます。

新しいプロジェクトを作成する

Android Studioを設定する

Android Studio設定してから開きます。今、あなたは最初のAndroidアプリを作る準備が整いました!

注:このガイドはAndroid Studio 2.2に基づいていますが、他のバージョンのプロセスは主に同じです。

プロジェクトを構成する

基本設定

新しいプロジェクトを開始するには、次の2つの方法があります。

  • ようこそ画面から[ Start a New Android Studio Projectクリックします。
  • 既にプロジェクトが開いている場合は、 FileNew ProjectナビゲートしFile

次に、いくつかのフィールドを入力してアプリケーションを記述する必要があります。

  1. アプリケーション名 - この名前はユーザーに表示されます。

    例: Hello World 。後でAndroidManifest.xmlファイルでいつでも変更できます。

  2. 会社ドメイン - これはプロジェクトのパッケージ名の修飾子です。

    例: stackoverflow.com

  3. パッケージ名 (別名applicationId ) - これは完全修飾プロジェクトパッケージ名です。

    これは逆ドメインネーム記法 (別名リバースDNS ): トップレベルドメインに従うべきです。 企業ドメイン [ 当社セグメント ] アプリケーション名

    例: com.stackoverflow.android.helloworldまたはcom.stackoverflow.helloworld 。あなたのアプリケーション IDは、いつでもあなたのgradleファイルで上書きすることで変更できます

アプリケーションをGoogle Playストアに送信しない場合を除き、デフォルトの接頭辞「com.example」は使用しないでください。パッケージ名はGoogle Playの固有のアプリIDになります。

  1. プロジェクトの場所 - プロジェクトが保存されるディレクトリです。

新規プロジェクトダイアログ

フォームファクタとAPIレベルを選択

次のウィンドウでは、アプリでサポートされている電話、タブレット、テレビ、ウェア、Google Glassなどのフォームファクタを選択できます。選択したフォームファクタは、プロジェクト内のアプリモジュールになります。フォームファクタごとに、そのアプリのAPIレベルを選択することもできます。詳細情報を表示するには、[ ヘルプを選択 ]をクリックします。

ここに画像の説明を入力 選択したヘルプをクリックすると表示される現在のAndroidバージョンの分布図

Android Platform Distributionウィンドウには、図2に示すように、Androidの各バージョンを実行するモバイルデバイスの分布が表示されます。対応するAndroidバージョンで導入された機能のリストを参照するには、APIレベルをクリックしてください。これにより、アプリに必要なすべての機能を備えた最小限のAPIレベルを選択できるので、できるだけ多くの端末にアクセスできます。次に[ OK ]をクリックします。

次に、アプリケーションがサポートするAndroid SDKのプラットフォームとバージョンを選択します。

SDKバージョンダイアログ

今のところ、 電話とタブレットのみを選択してください。

最小SDKは、アプリの下限です。これは、 Google Play Storeがアプリをインストールできるデバイスを判断するために使用する信号の1つです。たとえば、 Stack ExchangeのアプリはAndroid 4.1以上をサポートしています。

Stack Exchangeのアプリ
Android Studioは、指定された最小SDKがあれば、サポートされるデバイスの割合を(おおよそ)教えてくれます。

APIレベルが低いほど、より多くのデバイスをターゲットにできますが、利用できる機能は少なくなります。

最小SDKを決定する際には、 Dashboardsの統計情報を考慮する必要があります。この統計情報は 、先週Google Playストアを世界中に訪問したデバイスに関するバージョン情報を提供します。

現在のアンドロイド配信のスクリーンショット

投稿者:Androidデベロッパーのウェブサイトのダッシュボード

アクティビティを追加する

次に、アプリケーションのデフォルトのアクティビティを選択します。 Androidでは、 Activityはユーザーに提示される単一の画面です。アプリケーションは複数のアクティビティを格納し、それらの間をナビゲートできます。この例では、「 Empty Activityを選択し、「次へ」をクリックします。

ここでは、必要に応じて、アクティビティとレイアウトの名前を変更できます。良い習慣は維持することですActivityアクティビティ名の接尾辞として、及びactivity_レイアウト名の接頭辞として。これらをデフォルトのままにすると、Android StudioはMainActivityというactivity_mainactivity_mainというレイアウトファイルを生成します。 Finishクリックします。

Android Studioはプロジェクトを作成して設定しますが、システムによっては時間がかかることがあります。

プロジェクトの検査

Androidの仕組みを理解するために、私たちのために作成されたファイルのいくつかを見てみましょう。

Android Studioの左ペインには、Androidアプリケーションの構造が表示されます

基本的なアプリケーション構造

まず、 AndroidManifest.xmlをダブルクリックして開きましょう。 Androidマニフェストファイルには、Androidアプリケーションに関する基本情報の一部が記載されています。これには、活動の宣言だけでなく、いくつかの高度なコンポーネントが含まれています。

アプリケーションが権限で保護されている機能にアクセスする必要がある場合は、マニフェストの<uses-permission>要素でその権限が必要であることを宣言する必要があります。次に、アプリケーションがデバイスにインストールされると、インストーラーは、アプリケーションの証明書に署名した機関をチェックし、場合によってはユーザーに問い合わせることによって、要求された許可を与えるかどうかを決定します。また、アプリケーションは、独自のコンポーネント(アクティビティ、サービス、ブロードキャストレシーバ、およびコンテンツプロバイダ)をアクセス許可で保護することもできます。 Androidで定義された権限(android.Manifest.permissionにリストされている権限)を使用することも、他のアプリケーションによって宣言された権限を使用することもできます。それは独自のものを定義することもできます。

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.stackoverflow.helloworld">

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        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>

次に、 app/src/main/res/layout/あるactivity_main.xmlを開きapp/src/main/res/layout/ 。このファイルには、MainActivityのビジュアルコンポーネントの宣言が含まれています。ビジュアルデザイナーが表示されます。これにより、要素をドラッグして選択したレイアウトにドロップできます。

Android Studioの下部にある[テキスト]をクリックすると、XMLレイアウトデザイナーに切り替えることもできます。

レイアウトデザイン/テキストタブ

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.stackexchange.docs.helloworld.MainActivity">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Hello World!" />
</RelativeLayout>

このレイアウト内にTextViewというウィジェットが表示され、 android:textプロパティが「Hello World!」に設定されていandroid:text 。これは、ユーザーがアプリケーションを実行するときにユーザーに表示されるテキストブロックです。

レイアウトと属性について詳しく読むことができます

次に、 MainActivity見てみましょう。これはMainActivity用に生成されたJavaコードです。

public class MainActivity extends AppCompatActivity {

    // The onCreate method is called when an Activity starts
    // This is where we will set up our layout
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        // setContentView sets the Activity's layout to a specified XML layout
        // In our case we are using the activity_main layout
        setContentView(R.layout.activity_main);
    }
}

Androidマニフェストで定義されているように、 MainActivityは、ユーザーがHelloWorldアプリケーションを起動するとデフォルトで起動します。

最後に、 app/あるbuild.gradleという名前のファイルを開きます。
Android Studioは、ビルドシステムGradleを使用して、Androidアプリケーションとライブラリをコンパイルしてビルドします。

apply plugin: 'com.android.application'

android {
signingConfigs {
         applicationName {
             keyAlias 'applicationName'
             keyPassword 'password'
             storeFile file('../key/applicationName.jks')
             storePassword 'anotherPassword'
         }
     }
    compileSdkVersion 26
    buildToolsVersion "26.0.0"

    defaultConfig {
        applicationId "com.stackexchange.docs.helloworld"
        minSdkVersion 16
        targetSdkVersion 26
        versionCode 1
        versionName "1.0"
        signingConfig signingConfigs.applicationName
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:26.0.0'
}

このファイルには、ビルドとアプリケーションのバージョンに関する情報が含まれています。また、このファイルを使用して外部ライブラリに依存関係を追加することもできます。今のところ、何も変更しないでください。

常に依存関係に使用できる最新のバージョンを選択することをお勧めします。

compileSdkVersion

compileSdkVersionは、あなたのアプリをコンパイルするためのAndroid SDKのバージョンをGradleに伝える方法です。新しいAndroid SDKを使用するには、そのレベルで追加された新しいAPIを使用する必要があります。

compileSdkVersionを変更しても実行時の動作は変更されないことに注意してください。 compileSdkVersion変更すると、新しいコンパイラ警告/エラーが表示されることがありますが、 compileSdkVersionはAPKには含まれていません。コンパイル時に純粋に使用されます。

したがって、常に最新のSDKでコンパイルすることを強くお勧めします。既存のコードに対する新しいコンパイルチェックの利点をすべて得て、新たに廃止予定のAPIを避け、新しいAPIを使用できるようにします。

minSdkVersion

compileSdkVersionが利用できる最新のAPIを設定している場合、 minSdkVersionはアプリの下限です。 minSdkVersionは、Google Playストアがユーザーの端末のうちどれにアプリをインストールできるかを判断するために使用する信号の1つです。

また、開発中に重要な役割を果たします。デフォルトでは、lintはプロジェクトに対して実行され、 minSdkVersion上のAPIを使用すると警告し、存在しないAPIを呼び出そうとする際の実行時の問題を回避します。新しいバージョンのプラットフォームでのみAPIを使用する場合は、実行時にシステムのバージョンを確認するのが一般的な方法です。

targetSdkVersion

targetSdkVersionは、 targetSdkVersionが更新されない限り、動作の変更を適用しないことによってAndroidが前方互換性を提供する主な方法です。これにより、動作の変更を処理する前に新しいAPIを使用することができます。最新のSDKをターゲットにするための更新は、すべてのアプリにとって最優先事項です。導入されたすべての新機能を使用する必要はなく、テストせずにtargetSdkVersionを盲目的に更新する必要はありません。

targetSDKVersionは利用可能なツールの上限であるAndroidのバージョンです。 targetSDKVersionが23未満の場合、アプリがAPI 23以上で実行されている場合でも、アプリはインスタンスの実行時にアクセス権をリクエストする必要はありません。 TargetSDKVersionは、選択したAndroidバージョンを超えるAndroidバージョンがアプリを実行することを妨げませ

Gradleプラグインの詳細は次のとおりです。

アプリケーションの実行

では、HelloWorldアプリケーションを実行しましょう。 Android仮想デバイス(以下の例で説明するAndroidスタジオのAVDマネージャを使用して設定できます)を実行するか、USBケーブルを使用してAndroidデバイスを接続します。

Android搭載端末の設定

AndroidデバイスのAndroidスタジオからアプリケーションを実行するには、デバイスの設定でDeveloper OptionsUSB Debuggingを有効にする必要があります。

Settings > Developer options > USB debugging

Developer Optionsが設定に表示されていない場合は、 About Phone )に移動し、 Build Number 7回タップします。これにより、 Developer Optionsに表示されます。

Settings > About phone > Build number

また、デバイスにあるバージョンをビルドするためにbuild.gradle設定を変更する必要があるかもしれません。

Android Studioから実行する

Android Studioの上部にあるツールバーの緑色の「 Runボタンをクリックします。表示されるウィンドウで、アプリケーションを実行するデバイスを選択します(必要に応じてAndroid仮想デバイスを起動するか、 設定する必要がある場合はAVD(Android仮想デバイス)設定するを参照)。[ OK ]をクリックします。

実行ボタン

Android 4.4(KitKat)以上のデバイスでは、USBデバッグを許可するポップアップが表示されます。 OKをクリックして受け入れます。

アプリケーションがAndroidデバイスまたはエミュレータにインストールされ、実行されます。

APKファイルの場所

リリース用にアプリケーションを準備するときは、アプリケーションのリリースバージョンを構成、構築、およびテストします。設定作業は簡単で、基本的なコードクリーンアップとアプリケーションの最適化に役立つコード変更作業が含まれています。ビルドプロセスは、デバッグビルドプロセスと似ており、JDKおよびAndroid SDKツールを使用して実行できます。テストタスクは最終的なチェックとして機能し、アプリケーションが実際の状況下で期待どおりに機能することを保証します。リリースのためのアプリケーションの準備が完了すると、署名済みのAPKファイルが作成されます。このファイルは、ユーザーに直接配布したり、Google Playなどのアプリケーションマーケットプレイスで配布することができます。

Androidスタジオ

上記の例では、Gradleが使用されているため、生成されたAPKファイルの<Your Project Location>/app/build/outputs/apk/app-debug.apkは次のとおりです。 <Your Project Location>/app/build/outputs/apk/app-debug.apk

IntelliJ

Studioに切り替える前にIntelliJを使用していて、IntelliJプロジェクトを直接インポートしている場合は、何も変更されません。アウトプットの場所は以下の通りです:

out/production/...

注:これは時々1.0のまわりで非難される

Eclipse

Android Eclipseプロジェクトを直接インポートする場合は、これを行わないでください!プロジェクト(jarsまたはLibrary Projects)に依存するとすぐに、これは機能せず、プロジェクトは適切にセットアップされません。依存関係がない場合、apkはEclipseで見つけられるのと同じ場所にあります:

bin/...

IDEを使用しないAndroidプログラミング

これは、最も基本的なAndroidツールのみを使用する、最小限のHello Worldの例です。

要件と前提条件

この例では、Linuxを想定しています。独自のプラットフォームの構文を調整する必要があるかもしれません。

Android SDKの設定

SDKリリースの開梱後:

  1. SDKマネージャを使用して追加パッケージをインストールします。バンドルされたReadme.txtの指示に従って、 android update sdk --no-uiを使用しないでください。不要なファイルを約30 GBダウンロードします。代わりに、インタラクティブなSDKマネージャーandroid sdkを使用して、パッケージの推奨最小値を取得してください。

  2. 次のJDKおよびSDKディレクトリを実行PATHに追加します。これはオプションですが、以下の手順で想定しています。

    • JDK / bin
    • SDK /プラットフォームツール
    • SDK /ツール
    • SDK / build-tools / LATEST (手順1でインストールしたもの)
  3. Android仮想デバイスを作成します。インタラクティブなAVDマネージャ( android avd )を使用してください。ちょっと手間をかけてアドバイスを探す必要があるかもしれません。 オンサイトの指示は必ずしも有用ではありません。

    (自分のデバイスを使用することもできます)

  4. デバイスを実行します。

    emulator -avd DEVICE
    
  5. デバイスの画面がロックされているように見える場合は、スワイプしてロックを解除します。

    アプリをコーディングしている間は実行しておいてください。

アプリをコーディングする

  1. 空の作業ディレクトリに変更します。

  2. ソースファイルを作成する:

    mkdir --parents src/dom/domain
    touch src/dom/domain/SayingHello.java
    

    コンテンツ:

    package dom.domain;
    import android.widget.TextView;
    
    public final class SayingHello extends android.app.Activity
    {
        protected @Override void onCreate( final android.os.Bundle activityState )
        {
            super.onCreate( activityState );
            final TextView textV = new TextView( SayingHello.this );
            textV.setText( "Hello world" );
            setContentView( textV );
        }
    }
    
  3. マニフェストを追加する:

    touch AndroidManifest.xml
    

    コンテンツ:

    <?xml version='1.0'?>
    <manifest xmlns:a='http://schemas.android.com/apk/res/android'
     package='dom.domain' a:versionCode='0' a:versionName='0'>
        <application a:label='Saying hello'>
            <activity a:name='dom.domain.SayingHello'>
                 <intent-filter>
                    <category a:name='android.intent.category.LAUNCHER'/>
                    <action a:name='android.intent.action.MAIN'/>
                    </intent-filter>
                </activity>
            </application>
        </manifest>
    
  4. 宣言されたリソースのサブディレクトリを作成します。

    mkdir res
    

    今は空にしておいてください。

コードの作成

  1. リソース宣言のソースを生成します。ここでは、 SDKへの正しいパスと、ビルドするためにインストールされたAPI (「android-23」など)を置き換えます。

    aapt package -f \
      -I SDK/platforms/android-API/android.jar \
      -J src -m \
      -M AndroidManifest.xml -S res -v
    

    リソース宣言(以下でさらに説明する)は、実際はオプションです。 res /がまだ空の場合、上記の呼び出しは何もしません。

  2. ソースコードをJavaバイトコード(.java→.class)にコンパイルする:

    javac \
      -bootclasspath SDK/platforms/android-API/android.jar \
      -classpath src -source 1.7 -target 1.7 \
      src/dom/domain/*.java
    
  3. バイトコードをJavaからAndroidに変換する(.class→.dex):

    まずJill(.class→.jayce)を使って:

    java -jar SDK/build-tools/LATEST/jill.jar \
      --output classes.jayce src
    

    その後、ジャック(.jayce→.dex):

    java -jar SDK/build-tools/LATEST/jack.jar \
      --import classes.jayce --output-dex .
    

    Androidバイトコードは「Dalvik実行可能コード」と呼ばれていたので、「dex」です。

    あなたが好きなら、ステップ11と12をジャックへの1回の呼び出しで置き換えることができます。 Javaソース(.java→.dex)から直接コンパイルできます。しかし、 javacコンパイルすることには利点があります。よりよく知られており、よりよく文書化され、より広く適用可能なツールです。

  4. マニフェストを含むリソースファイルをパッケージ化します。

    aapt package -f \
      -F app.apkPart \
      -I SDK/platforms/android-API/android.jar \
      -M AndroidManifest.xml -S res -v
    

    その結果、部分的なAPKファイル(Androidアプリケーションパッケージ)が生成されます。

  5. ApkBuilderツールを使用して完全なAPKをApkBuilderます。

    java -classpath SDK/tools/lib/sdklib.jar \
      com.android.sdklib.build.ApkBuilderMain \
      app.apkUnalign \
      -d -f classes.dex -v -z app.apkPart
    

    これは警告されています。 "このツールは推奨されていません。詳細は--helpを参照してください。" --helpArrayIndexOutOfBoundsExceptionで失敗したArrayIndexOutOfBoundsException 、代わりに引数を渡しません:

    java -classpath SDK/tools/lib/sdklib.jar \
      com.android.sdklib.build.ApkBuilderMain
    

    これは、CLI( ApkBuilderMain )がJava API( ApkBuilder )を直接呼び出すために非難されることを説明しています。 (コマンドラインからそれを行う方法がわかっている場合は、この例を更新してください)。

  6. APKのデータアライメントを最適化する( 推奨される方法 ):

    zipalign -f -v 4 app.apkUnalign app.apk
    

インストールと実行

  1. Android搭載端末にアプリをインストールする:

    adb install -r app.apk
    
  2. アプリを起動する:

    adb shell am start -n dom.domain/.SayingHello
    

    それは実行し、こんにちは言う必要があります。

それで全部です。それは基本的なAndroidツールを使ってこんにちはと言うのです。

リソースの宣言

このセクションはオプションです。単純な "hello world"アプリケーションでは、リソース宣言は必要ありません。あなたのアプリケーションにも必要でない場合は、ステップ10を省略し、ステップ13からのres /ディレクトリへの参照を削除することで、いくらかのビルドを合理化することができます。

それ以外の場合は、リソースを宣言する方法とその参照方法の簡単な例を示します。

  1. リソースファイルを追加する:

    mkdir res/values
    touch res/values/values.xml
    

    コンテンツ:

    <?xml version='1.0'?>
    <resources>
        <string name='appLabel'>Saying hello</string>
    </resources>
    
  2. XMLマニフェストからリソースを参照します。これは宣言的な参照スタイルです。

    <!-- <application a:label='Saying hello'> -->
         <application a:label='@string/appLabel'>
    
  3. Javaソースから同じリソースを参照してください。これは必須の参照です:

    // v.setText( "Hello world" );
       v.setText( "This app is called "
         + getResources().getString( R.string.appLabel ));
    
  4. アプリを再構築、再インストール、再実行して、上記の変更をテストします(手順10〜17)。

    それは再起動し、 "このアプリは、こんにちはと言われています"と言う必要があります。

アプリのアンインストール

adb uninstall dom.domain

も参照してください

  • 元の質問 - この例を促した元の質問
  • 作業例 - 上記のコマンドを使用する作業用ビルドスクリプト

アプリケーションの基礎

AndroidアプリはJavaで書かれています。 Android SDKツールは、コード、データ、およびリソースファイルをAPK(Androidパッケージ)にコンパイルします。一般に、1つのAPKファイルにはアプリのすべてのコンテンツが含まれています。

それぞれのアプリは独自の仮想マシン(VM)上で動作し、アプリを他のアプリから隔離して実行できます。 Androidシステムは最小特権の原則で動作します。各アプリケーションは、作業を行うために必要なコンポーネントだけにアクセスできます。しかし、アプリ間でLinuxユーザーIDを共有するなど、アプリが他のアプリとデータを共有する方法や、アプリがSDカード、連絡先などのデバイスデータにアクセスする許可をリクエストすることができます。

アプリコンポーネント

アプリコンポーネントは、Androidアプリのビルディングブロックです。それぞれのコンポーネントは、明確な目的を果たし、明確なライフサイクル(コンポーネントが作成され、破壊された方法とタイミング)を持つAndroidアプリで特定の役割を果たします。 4種類のアプリコンポーネントがあります:

  1. アクティビティ:アクティビティは、ユーザーインターフェイス(UI)を持つ単一の画面を表します。 Androidアプリに複数のアクティビティがある可能性があります。 (例えば、電子メールアプリは、すべての電子メールをリストする1つのアクティビティ、各電子メールの内容を表示するアクティビティ、新しい電子メールを作成するアクティビティを1つずつ持つことができます)。
  2. サービス:サービスはバックグラウンドで実行され、長時間実行される操作を実行したり、リモートプロセスの作業を実行したりします。サービスはUIを提供せず、バックグラウンドでのみユーザーの入力で実行されます。 (例えば、ユーザーが別のAppにいる間にサービスがバックグラウンドで再生されたり、Androidデバイスとのユーザーのやりとりを妨げることなくインターネットからデータをダウンロードするなど)。
  3. コンテンツプロバイダ:コンテンツプロバイダは共有アプリケーションデータを管理します。アプリケーションにデータを保存するには4つの方法があります:ファイルに書き込んでファイルシステムに保存したり、SQLiteデータベースに挿入または更新したり、ウェブに投稿したり、アプリケーションがアクセスできる他の永続的な保存場所に保存することができます。コンテンツプロバイダーを通じて、他のAppsはデータの照会や変更を行うことができます。 (例えば、Androidシステムは、ユーザの連絡先情報を管理するコンテンツプロバイダを提供し、権限を持つ任意のアプリケーションが連絡先に問い合わせることができます。)コンテンツプロバイダは、データの整合性を高めるために、アプリケーション専用のデータを保存するためにも使用できます。
  4. 放送受信機:放送受信機は、システム全体の放送に応答する(例えば、画面が消えたこと、電池が残っていることなどを知らせる放送)、またはAppsから応答する(例えば、他のアプリケーションに、デバイスにダウンロードされ、使用できるようになります)。ブロードキャスト受信者にはUIはありませんが、ステータスバーに通知を表示してユーザーに警告することができます。通常、放送受信機は、アプリの他のコンポーネントへのゲートウェイとして使用され、主にアクティビティやサービスから構成されます。

Androidシステムのユニークな側面の1つは、どのアプリも別のアプリのコンポーネントを起動できることです(たとえば、電話をかけたり、SMSを送信したり、ウェブページを開いたり、写真を表示したい場合は、同じタスクのための新しいアクティビティを開発する代わりに、それを利用する)。

システムがコンポーネントを起動すると、そのアプリケーションのプロセスが開始されます(まだ実行されていない場合、つまり、Androidシステム上ではいつでもアプリケーションごとに1つのフォアグラウンドプロセスしか実行できません)。したがって、コンポーネントはそれが属するAppのプロセス上で実行されます。したがって、他のシステムのアプリとは異なり、Androidアプリには1つのエントリポイントがありませんmain()メソッドはありません)。

システムは各アプリケーションを別々のプロセスで実行するため、1つのアプリで別のアプリのコンポーネントを直接アクティブ化することはできませんが、Androidシステムでは可能です。したがって、別のアプリケーションのコンポーネントを起動するには、1つのアプリケーションが、そのコンポーネントを起動する意図を指定するメッセージをシステムに送信しなければなりません。システムは、そのコンポーネントを起動します。

コンテキスト

クラスandroid.content.Contextインスタンスは、アプリケーションを実行するAndroidシステムへの接続を提供します。コンテキストのインスタンスは、プロジェクトのリソースとアプリケーションの環境に関するグローバルな情報にアクセスするために必要です。

簡単な例を挙げましょう:あなたはホテルにいると考えて、何か食べたいと思っています。あなたはルームサービスに電話をして、物事を持って来るか、物事をきれいにするよう依頼します。今ではこのホテルをAndroidアプリとして考えています。自分自身をアクティビティと呼んでいます。ルームサービスの人は、ルームサービス、食料品などのホテルリソースへのアクセスを提供するコンテキストです。

さらに別の例として、あなたはテーブルに座っているレストランにいて、各テーブルにはアテンダントがいます。アテンダントがあなたの注文を出し、あなたの食べ物があなたのテーブルに仕込まれます。この例でも、レストランはAndroid App、テーブルまたは顧客はAppコンポーネント、食品アイテムはAppリソース、アテンダントはコンテキストなので、食品アイテムなどのリソースにアクセスする方法を提供します。

上記のコンポーネントのいずれかを有効にするには、コンテキストのインスタンスが必要です。上記だけでなく、ほぼすべてのシステムリソース:ビュー(後述)を使用したUIの作成、システムサービスのインスタンスの作成、新しいアクティビティやサービスの開始 - はすべてコンテキストを必要とします。

より詳細な説明はここに書かれています

AVD(Android仮想デバイス)の設定

TL; DR実際には、実際のデバイスをシミュレートし、実際のデバイスなしでアプリをテストすることができます。

Androidデベロッパー向けドキュメントによると、

Android仮想デバイス(AVD)定義では、AndroidエミュレータでシミュレートするAndroid Phone、Tablet、Android Wear、またはAndroid TVデバイスの特性を定義できます。 AVDマネージャを使用すると、AVDを簡単に作成および管理できます。

AVDを設定するには、次の手順を実行します。

1.このボタンをクリックすると、AVD Managerが起動します。

AVDマネージャアイコン

2.次のようなダイアログが表示されます。

AVDマネージャダイアログ

3. [ + Create Virtual Device... ]ボタンをクリックします。これにより、Virtual Device Configuration Dialogが表示されます。

仮想デバイス設定ダイアログ

4.必要なデバイスを選択し、[ Next ]をクリックします。

システムイメージを選択

5.エミュレータのAndroidバージョンを選択する必要があります。また、クリックして最初にそれをダウンロードする必要があるかもしれませんDownload 。バージョンを選択したら、[ Next ]をクリックします。

高度な設定

6.ここでは、エミュレータの名前、初期の方向、およびフレームの周りにフレームを表示するかどうかを入力します。これらをすべて選択したら、[ Finish ]をクリックします。

7.これであなたのアプリを起動するための新しいAVDが用意されました。

AVD



Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow