アプリエンジニアリングはプロジェクトとモジュールの 2 つのレベルに分かれています
-
モジュールはプロジェクトにアタッチされ、各プロジェクトには少なくとも 1 つのモジュールがあり、複数のモジュールを持つこともできます。
-
一般的に、「APP をコンパイルして実行する」とは、特定のプロジェクトを実行するのではなく、特定のモジュールを実行することを指します。モジュールは対応する実際のAPPであるため
APPプロジェクトのディレクトリの説明
- アプリ
- mainfests (XML のみ - AndroidManifest.xml、アプリ実行構成ファイルです。システムはアプリ コードを実行し、内部のコンテンツに従ってインターフェイスを表示する必要があります。)
- java (サブディレクトリに 3 つのパッケージ、1 つのソース コード、2 つのテスト コード)
- res (現在のモジュールのリソース ファイル)
- drawable (グラフィックス記述ファイルと画像ファイルを保存)
- レイアウト (ストアアプリページレイアウトファイル)
- mipmap (アプリの起動ファイルを保存)
- 値(記憶定数定義ファイル)
- Gradle スクリプト (主にプロジェクト構成ファイル) - Gradle はプロジェクト自動化作成ツール (依存関係、パッケージ化、デプロイメント、リリース、さまざまなチャネルの差別化管理)
- build.gradle (アプリプロジェクトのコンパイルルールを記述するために使用されます)
- proguard-rules.pro (Java コードを記述するための難読化ルール)
- gradle.properties (コンパイル ツールの構成に使用されるコマンド ライン パラメーター。通常は変更する必要はありません)
- settings.gradle (コンパイルが必要な構成済みモジュール)
- local.properties (プロジェクトのローカル構成ファイル)
build.gradle インスタンス:
plugins {
id 'com.android.application'
}
android {
compileSdk 32 //指定编译的sdk版本号,32-->Android 13.0
defaultConfig {
applicationId "com.example.myapplication"//指定该模块的应用编号,也就是app的包名,要和清单一样
minSdk 28 //指定app是适合运行的最小sdk版本号
targetSdk 32 //指定当前设备的sdk版本号
versionCode 1 //app的应用版本号
versionName "1.0" //指定app的应用版本名称
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" //测试
}
buildTypes {
release {
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.4.0'
implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
testImplementation 'junit:junit:4.13.2'
androidTestImplementation 'androidx.test.ext:junit:1.1.3'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
}
AndroidManifest.xml インスタンス:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="com.example.myapplication"> //包名
<application
android:allowBackup="true" //是否允许应用备份。允许用户备份系统应用和第三方应用的apk安装包和应用数据,以便在刷机或者数据丢失后回复应用。用户可以通过adb backup和adb restore来进行对应用数据的备份和回复。true 为真
android:dataExtractionRules="@xml/data_extraction_rules"
android:fullBackupContent="@xml/backup_rules"
android:icon="@mipmap/ic_launcher" //app在手机桌面的图标
android:label="@string/app_name" //app图标下的名称
android:roundIcon="@mipmap/ic_launcher_round"//app的圆角图标
android:supportsRtl="true" //是否支持阿拉伯语、波斯语这种从左往右的顺序
android:theme="@style/Theme.MyApplication" //app的显示风格
tools:targetApi="31">
<activity
android:name=".MainActivity"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
アクティビティ (画面コンポーネント、ページ):
アクティビティは、ユーザーが操作するための画面を提供するアプリ コンポーネントです。
XML (HTML に類似) タグを使用してアプリケーション インターフェイスを記述し、Java (JS に類似) コードを使用してプログラム ロジックを記述します
新しいアプリインターフェイスを作成します。
- レイアウトディレクトリにXMLファイルを作成します。
- XMLファイルに対応するJavaコードを作成します。
- AndroidManifest.xmlにページ構成を登録する