Androidのビルドファイルの詳細を理解する.



導入
  • このシリーズは、Androidの開発の基本に捧げられる予定です.私に参加し、いくつかのクールなものを構築し、理解しようとしましょう.このポストはビルドファイルのプロパティが何であるかを理解しています.あなたがビルドファイルの構文に慣れていないなら、私の前のポスト

  • 始める
  • 私が最初にしようとすることはコードをペーストしてから、コードラインを通して、我々が完了するまで歩いていくことです.
  • plugins {
        id 'com.android.application'
    
    }
    
    android {
        compileSdkVersion 30
    
        defaultConfig {
            applicationId "com.example.criminalintent"
            minSdkVersion 23
            targetSdkVersion 30
            versionCode 1
            versionName "1.0"
            testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
        }
    
        buildTypes {
    
            release {
                println(getDelegate())
                minifyEnabled false
                proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
    
            }
        }
        compileOptions {
            sourceCompatibility JavaVersion.VERSION_1_8
            targetCompatibility JavaVersion.VERSION_1_8
    
        }
    }
    
    dependencies {
    
        implementation 'androidx.appcompat:appcompat:1.3.0'
        implementation 'com.google.android.material:material:1.3.0'
        implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
        implementation 'androidx.recyclerview:recyclerview:1.2.1'
        testImplementation 'junit:junit:4.+'
        androidTestImplementation 'androidx.test.ext:junit:1.1.2'
        androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'
    }
    
    

    プラグイン
  • コードのプラグインブロック(プラグインDSL)は、我々のプラグインが我々のアプリ使用を定義するところです.あなたがプラグインに慣れていない場合は、彼らはホイールGradleのラウンド行くことを覚えています.
  • id 'com.android.application'は、Androidアプリを構築するためにユニークな特定の機能を持つgradleを提供するプラグインです.このプラグインがなければ我々のアプリは構築されません.あなたがプラグインに興味があるならば、HEREは公式Gradleプラグインリポジトリへのリンクです.

  • アンドロイド
  • この特定のAndroidのビルド構成を入力する場所の出発点を示します.

  • バージョン1.3
  • これはAPIレベルが我々のアプリがコンパイルされることを示します.言い換えると、ここで指定された値より高いAPIから機能を使用することはできません.そのAPIレベルは30です.

  • デフォルトの設定
    このブロック内の
  • では、Androidプラグインがすべてのビルドバリアント(Release,Debug ...)に適用されるバリアントプロパティの既定値を指定します.

  • ApplicationID "COM . example . criminalintent "
  • すべてのアプリは、このIDを持っており、それは一意にデバイス上のアプリを識別し、Googleのプレイストアで.アプリケーションIDは従来のJavaパッケージ名のように見えますが、命名規則は実際に規則を持っています.
  • 1)少なくとも2つのセグメント(1つ以上のドット)
  • 2):各々のセグメントは、
  • 3 )すべての文字は英数字かアンダースコア[ A - ZA - Z 0 - 9 ]

    MINSDKVersion 23
  • は、アプリが実行されるAndroidプラットフォームの最小バージョンをマークします.

  • TargetSDKVersion 30
  • は、アプリケーションが実行するように設計されているAPIレベルを指定します.

  • VersionCode 1
  • 内部のバージョン番号として使用される正の整数.これは、ユーザーに示されていない、それは格下げに対して保護するためにAndroidシステムによって使用されます.

  • バージョン名"1.0 "
  • はユーザに表示される文字列であり、内部のversionCodeを反映すべきです.

  • テストインストゥルメントランナー「アンドロイドX .テストランナー.アンドロイドジャンランナー」
  • 私たちがテストランナーを設定したところです.テストランナーはAndroidがテストを実行するためのツールです.この場合、テストランナーをデフォルトテストランナーであるAndroidJunitrunnerクラスに設定します.AndroidデバイスでJUNIT 3とJUNIT 4テストを実行することができます.我々が混乱しないように、AndroidJunitrunnerはテストを走らせます、そして、JUnitはテストを書く方法です.

  • ビルドタイプ{}
    このコードブロックの中の
  • は、アプリケーションをビルドしてパッケージングするときにGradleが使用するプロパティを定義する場所です.モジュールレベルビルドでビルドタイプを構成することができます.Gradleファイル.

  • リリース{ ..}
  • これはAndroidのビルドタイプの例であり、それは自動的に私たちのために作成されます.私たちがrelease{...}の中で定義する何でも、この造りタイプに特有です.

  • 有効なfalse
  • は我々がコード縮小を可能にしたかどうかを決定します.どのようなコード縮小ですか?よく使われていないコードとリソースを削除したビルドから削除する機能です.我々は生産に我々のアプリをプッシュするときに我々はtrueに設定する必要があります.

  • ProGuardfile getDefaultProGuardfile (' proactive - android - optimize . txt ')、' Proguard規則プロ
  • コンパイルのルールを指定します.デフォルトでは規則は指定されません.あなたがデフォルトから規則を変えることができたファイルを見たいならば、あなたは最初にAndroid Studioの中でプロジェクト見解に切り替える必要があります.その後、アプリ/プロガードルールに移動します.プロファイル.ルールが指定されていないことに注意してください.

  • オプション
  • コードのこのブロックでは、コンパイルオプションを定義します.

  • sourceCompatibility JavaVersion.バージョン1.0.0
  • 我々が使用しているJavaの言語レベルを決定します.この場合、Java 8を指定しました.

  • targetcompatible javaversion.バージョン1.0.0
  • 生成されたバイトコードのバージョン.バイトコード用に選択したバージョンもバージョン8です.

  • 依存関係
  • このコードブロックは、Gradleに、外部ライブラリや内部のjarファイルをプロジェクトで使用するように指示するところです.

  • 実装
  • 実装を使用すると、どのように依存関係がどのように使われるかを示します.いくつかの異なった実装があります、しかし、我々が使用しようとするものはRemote Binaryと呼ばれています.リモートバイナリを宣言するための構文はこのようになります.これに比べると、類似点に注意してください.

  • 集計
  • ローカルのテストのリモートバイナリ依存性を追加します.

  • アンドロイド
  • は、計測済みのテストに対してのみリモートバイナリ依存性を追加します.計装テストは、エミュレータや物理デバイス上で動作するテストです.

  • 参考文献
  • 私のすべての参照は、HEREを見つけることができます
  • 私はすべての参照を<package-name>:<class-name>:<version-number>と呼ばれるクールな小さなサイトに追加しました.HEREをチェックしてください

  • 結論
  • 私のこのブログの記事を読むためにあなたの時間を取ってくれてありがとう.あなたが質問または懸念があるならば、下でコメントしてください、さもなければ、私に連絡してください.