关于使用命令行模式进行安卓应用开发,开发使用的工具安装、各工具功能及作用、各工具版本确定方法,以简单 Hello App 为例的开发流程,简述如下:
1. 工具安装过程
在命令行模式下开发安卓应用,需要安装以下核心工具:
1.1 安装 Java Development Kit (JDK)
• 下载并安装 JDK(推荐 OpenJDK 或 Oracle JDK)。
• Linux 上可通过包管理器安装:sudo apt install openjdk-17-jdk(Ubuntu)。
• Windows/Mac 可从 Adoptium 或 Oracle 官网下载。
• 配置环境变量 JAVA_HOME:
• Linux/Mac:在 ~/.bashrc 或 ~/.zshrc 中添加:
bash环境下
export JAVA_HOME=/path/to/jdk
export PATH=$JAVA_HOME/bin:$PATH
• Windows:在系统环境变量中设置 JAVA_HOME 和 Path。
• 验证安装:java -version(应显示 JDK 版本,如 17)。
1.2 安装 Android SDK 命令行工具
• 从 Android 开发者官网 下载命令行工具(commandlinetools)。
• 解压到指定目录,例如 ~/android-sdk。
• 配置环境变量:
• Linux/Mac:在 ~/.bashrc 或 ~/.zshrc 中添加:
bash环境下
export ANDROID_HOME=~/android-sdk
export PATH=$ANDROID_HOME/cmdline-tools/latest/bin:$PATH
• Windows:在系统环境变量中设置 ANDROID_HOME 和 Path。
• 运行 sdkmanager 安装其他工具:
sdkmanager "platform-tools" "build-tools;34.0.0" "platforms;android-34"
• 接受许可协议:sdkmanager --licenses
1.3 安装 Gradle(可选,推荐)
• 下载 Gradle 二进制包(Gradle 官网)。
• 解压并配置环境变量:
bash环境下
export GRADLE_HOME=/path/to/gradle
export PATH=$GRADLE_HOME/bin:$PATH
• 验证:gradle -v
2. 工具功能及作用
2.1 Android SDK 命令行工具(sdkmanager, avdmanager 等)
• sdkmanager: 管理 SDK 组件(安装、更新、卸载平台工具、构建工具等)。
• avdmanager: 创建和管理安卓虚拟设备(AVD)。
• 功能作用: 提供命令行方式配置和管理 Android SDK 环境。
2.2 Android SDK 构建工具(build-tools)
• 功能: 包含编译和打包工具,如 aapt(资源打包)、dex(字节码转换)、apksigner(APK 签名)。
• 作用: 将源代码、资源文件编译为 APK 或 AAB 文件。
2.3 Android SDK 平台工具(platform-tools)
• 功能:包含设备交互工具,如 adb(安卓调试桥)、fastboot(刷机工具)。
• 作用:用于调试、安装应用、与设备通信。
3. 工具版本确定
3.1 Android SDK 工具版本
• 查看最新版本:运行 sdkmanager --list 列出可用组件和版本。
• 根据目标安卓版本选择:
推荐使用最新稳定版本(如 build-tools;34.0.0, platforms;android-34)。
确保 build-tools 版本与 platforms 兼容。
• 参考项目需求:检查 build.gradle 中的 compileSdkVersion 和 buildToolsVersion。
3.2 Java 版本确定
安卓版本与 Java 版本兼容性
• Android 7.0+(API 24+):推荐 JDK 8 或 11。
• Android 13+(API 33+):推荐 JDK 11 或 17。
• 最新 Android 15(API 35):建议 JDK 17。
• Gradle 版本要求:
Gradle 7.0+ 需要 JDK 11。
Gradle 8.0+ 需要 JDK 17。
• 项目配置文件:检查 build.gradle 中的 sourceCompatibility 和 targetCompatibility。
• 推荐:为 Hello App,使用 JDK 17 和 Gradle 8.1(稳定且支持最新安卓版本)。
4. 以简单 Hello App 为例
以下是创建并运行一个简单 Hello App 的完整流程。
4.1 前提条件
• 已安装 JDK 17、Android SDK、Gradle。
• 配置好环境变量(JAVA_HOME, ANDROID_HOME, GRADLE_HOME)。
4.2 创建项目
•创建项目目录:
bash环境下
mkdir HelloApp
cd HelloApp
•初始化 Gradle 项目:
bash环境下
gradle init
•选择 application 项目类型。
•选择 Groovy 或 Kotlin 作为构建脚本语言。
•配置 build.gradle(app/build.gradle):
groovy
plugins {
id 'com.android.application'
id 'org.jetbrains.kotlin.android'
}
android {
compileSdk 34
defaultConfig {
applicationId "com.example.helloapp"
minSdk 24
targetSdk 34
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_17
targetCompatibility JavaVersion.VERSION_17
}
}
dependencies {
implementation 'androidx.core:core-ktx:1.12.0'
implementation 'androidx.appcompat:appcompat:1.6.1'
implementation 'com.google.android.material:material:1.11.0'
}
• 配置 settings.gradle:
groovy
pluginManagement {
repositories {
google()
mavenCentral()
gradlePluginPortal()
}
}
dependencyResolutionManagement {
repositories {
google()
mavenCentral()
}
}
rootProject.name = "HelloApp"
include ':app'
4.3 编写代码
•创建主布局(app/src/main/res/layout/activity_main.xml):
xml
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello, Android!"
android:textSize="24sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
• 创建主 Activity(app/src/main/java/com/example/helloapp/MainActivity.kt):
kotlin
package com.example.helloapp
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
}
}
• 配置 AndroidManifest.xml(app/src/main/AndroidManifest.xml):
xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.helloapp">
<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/Theme.HelloApp">
<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>
4.4 构建和运行
•构建项目:
bash
./gradlew build
•启动模拟器(可选,先用 avdmanager 创建 AVD):
bash
emulator -avd <avd_name>
•安装并运行 APK:
bash
./gradlew installDebug
adb shell am start -n com.example.helloapp/.MainActivity
4.5 输出
•应用在模拟器或设备上运行,显示“Hello, Android!”文本。
5. 补充说明
• 版本选择:示例中使用 Android API 34、JDK 17、Gradle 8.1,确保兼容性和稳定性。
• 调试:使用 adb logcat 查看日志,排查问题。
• 扩展:可通过 sdkmanager 安装更多工具(如 emulator)或支持其他 API 级别。
• 文档参考: Android 开发者官网, Gradle 用户指南
285

被折叠的 条评论
为什么被折叠?



