Android 应用开发全流程指南:从代码编辑到 APK 发布

📅 2026/7/11 10:40:46
Android 应用开发全流程指南:从代码编辑到 APK 发布
Android 应用开发全流程指南从代码编辑到 APK 发布一、环境搭建1. 安装必备工具工具说明Android Studio官方 IDE内置 Gradle、模拟器、调试器JDK 17Java 开发环境Android Studio 自带Android SDK编译和运行所需的平台工具Gradle构建系统Android Studio 自带安装步骤1. 下载 Android Studio官网developer.android.com 2. 运行安装程序首次启动会自动下载 SDK 3. 通过 SDK Manager 安装所需 API Level推荐 API 34/35 4. 通过 AVD Manager 创建模拟器或连接真机开启 USB 调试2. 项目结构概览MyApp/ ├── app/ │ ├── src/ │ │ ├── main/ │ │ │ ├── java/com/example/myapp/ ← Kotlin/Java 源码 │ │ │ ├── res/ ← 资源文件布局、图片、字符串 │ │ │ ├── AndroidManifest.xml ← 应用清单权限、组件声明 │ │ │ └── assets/ ← 原始资源文件 │ │ ├── test/ ← 单元测试 │ │ └── androidTest/ ← UI 测试 │ └── build.gradle.kts ← 模块级构建脚本 ├── build.gradle.kts ← 项目级构建脚本 ├── settings.gradle.kts ← 项目设置 ├── gradle/ ← Gradle Wrapper └── gradlew / gradlew.bat ← Gradle 执行脚本二、编写代码1. 创建新项目在 Android Studio 中File → New → New Project → 选择模板如 Empty Activity关键配置Name: 应用名称如MyAppPackage name: 包名如com.example.myapp这是应用的唯一标识Language: 选择Kotlin官方推荐或 JavaMinimum SDK: 最低支持版本如 API 24 覆盖 95% 设备2. 编写核心代码MainActivity.kt— 主界面逻辑packagecom.example.myappimportandroid.os.Bundleimportandroid.widget.Buttonimportandroid.widget.TextViewimportandroidx.appcompat.app.AppCompatActivityclassMainActivity:AppCompatActivity(){overridefunonCreate(savedInstanceState:Bundle?){super.onCreate(savedInstanceState)setContentView(R.layout.activity_main)valtextView:TextViewfindViewById(R.id.textView)valbutton:ButtonfindViewById(R.id.button)button.setOnClickListener{textView.textHello, Android! }}}res/layout/activity_main.xml— 界面布局?xml version1.0 encodingutf-8?LinearLayoutxmlns:androidhttp://schemas.android.com/apk/res/androidandroid:layout_widthmatch_parentandroid:layout_heightmatch_parentandroid:gravitycenterandroid:orientationverticalandroid:padding16dpTextViewandroid:idid/textViewandroid:layout_widthwrap_contentandroid:layout_heightwrap_contentandroid:textWelcome!android:textSize24sp/Buttonandroid:idid/buttonandroid:layout_widthwrap_contentandroid:layout_heightwrap_contentandroid:layout_marginTop16dpandroid:textClick Me//LinearLayoutAndroidManifest.xml— 应用清单?xml version1.0 encodingutf-8?manifestxmlns:androidhttp://schemas.android.com/apk/res/android!-- 声明需要的权限 --uses-permissionandroid:nameandroid.permission.INTERNET/applicationandroid:allowBackuptrueandroid:iconmipmap/ic_launcherandroid:labelstring/app_nameandroid:themestyle/Theme.MyAppactivityandroid:name.MainActivityandroid:exportedtrueintent-filteractionandroid:nameandroid.intent.action.MAIN/categoryandroid:nameandroid.intent.category.LAUNCHER//intent-filter/activity/application/manifest3.build.gradle.kts模块级关键配置plugins{id(com.android.application)id(org.jetbrains.kotlin.android)}android{namespacecom.example.myappcompileSdk35defaultConfig{applicationIdcom.example.myappminSdk24targetSdk35versionCode1versionName1.0.0}buildTypes{release{isMinifyEnabledtrue// 开启代码混淆isShrinkResourcestrue// 压缩无用资源proguardFiles(getDefaultProguardFile(proguard-android-optimize.txt),proguard-rules.pro)}}compileOptions{sourceCompatibilityJavaVersion.VERSION_17 targetCompatibilityJavaVersion.VERSION_17}kotlinOptions{jvmTarget17}}dependencies{implementation(androidx.core:core-ktx:1.13.1)implementation(androidx.appcompat:appcompat:1.7.0)implementation(com.google.android.material:material:1.12.0)implementation(androidx.constraintlayout:constraintlayout:2.1.4)}三、调试与测试1. 运行应用# 命令行方式./gradlew assembleDebug# 编译 Debug APK./gradlew installDebug# 安装到已连接设备# 或通过 Android Studio# 点击 ▶ Run 按钮选择设备模拟器或真机Debug 模式常用技巧断点调试在代码行号旁点击设置断点 → 以 Debug 模式运行LogcatLog.d(TAG, message)查看日志Layout Inspector实时查看 UI 层级结构⚡Apply Changes代码修改后热更新无需重新安装2. 编写测试// app/src/test/java/com/example/myapp/ExampleUnitTest.ktimportorg.junit.Assert.assertEqualsimportorg.junit.TestclassExampleUnitTest{Testfunaddition_isCorrect(){assertEquals(4,22)}}./gradlewtest# 运行单元测试./gradlew connectedAndroidTest# 运行 UI 测试需要设备四、签名与构建 Release APK1. 生成签名密钥keytool-genkeypair\-v\-keystorerelease-key.jks\-keyalgRSA\-keysize2048\-validity10000\-aliasmykey⚠️务必妥善保管.jks文件和密码丢失后无法更新应用2. 配置签名信息在build.gradle.kts中android{signingConfigs{create(release){storeFilefile(release-key.jks)storePasswordSystem.getenv(KEYSTORE_PASSWORD)// 推荐用环境变量keyAliasmykeykeyPasswordSystem.getenv(KEY_PASSWORD)}}buildTypes{release{signingConfigsigningConfigs.getByName(release)isMinifyEnabledtrueisShrinkResourcestrueproguardFiles(getDefaultProguardFile(proguard-android-optimize.txt),proguard-rules.pro)}}}3. 构建 Release APK./gradlew clean assembleRelease生成的 APK 位于app/build/outputs/apk/release/app-release.apk4. 构建 App BundleGoogle Play 推荐./gradlew clean bundleRelease生成 AAB 文件app/build/outputs/bundle/release/app-release.aabAAB vs APKAAB 由 Google Play 根据用户设备动态生成优化 APK体积更小。五、发布分发方案 AGoogle Play 商店1. 注册 Google Play 开发者账号一次性费用 $25 2. 进入 Google Play Console → 创建应用 3. 填写应用信息名称、描述、截图、图标、隐私政策 4. 上传 AAB 文件 5. 设置定价和分发国家 6. 提交审核通常 1-3 天方案 B直接分发 APK1. 将 APK 上传至网站、网盘或第三方应用市场 2. 用户下载后需允许安装未知来源应用 3. 注意国内可上架各大应用商店华为、小米、OPPO、vivo 等方案 C国内应用商店中国大陆常用商店开发者平台华为应用市场developer.huawei.com小米应用商店dev.mi.comOPPO 软件商店open.oppomobile.comvivo 应用商店dev.vivo.com.cn应用宝app.open.qq.com360 手机助手dev.360.cn各商店需注册开发者账号提交企业资质、软著证书等审核材料。六、完整流程图┌─────────────────────────────────────────────────────────────┐ │ 1. 环境搭建 │ │ Android Studio JDK SDK 模拟器/真机 │ ├─────────────────────────────────────────────────────────────┤ │ 2. 创建项目 │ │ New Project → 选模板 → 配置包名、SDK、语言 │ ├─────────────────────────────────────────────────────────────┤ │ 3. 编写代码 │ │ Kotlin/Java 逻辑 XML/Compose 布局 Manifest 配置 │ ├─────────────────────────────────────────────────────────────┤ │ 4. 调试测试 │ │ Debug 运行 Logcat 单元测试 UI 测试 │ ├─────────────────────────────────────────────────────────────┤ │ 5. 签名构建 │ │ 生成密钥 → 配置签名 → assembleRelease / bundleRelease │ ├─────────────────────────────────────────────────────────────┤ │ 6. 发布分发 │ │ Google Play / 国内商店 / 直接分发 APK │ └─────────────────────────────────────────────────────────────┘七、常用命令速查表命令说明./gradlew assembleDebug构建 Debug APK./gradlew assembleRelease构建 Release APK./gradlew bundleRelease构建 App Bundle./gradlew installDebug安装 Debug 版到设备./gradlew test运行单元测试./gradlew clean清理构建产物./gradlew signingReport查看签名信息./gradlew dependencies查看依赖树八、进阶建议️架构模式学习 MVVM Repository 架构现代 UI学习 Jetpack Compose声明式 UI替代 XML 布局依赖注入使用 Hilt / Koin️本地存储RoomSQLite 封装、DataStore替代 SharedPreferences网络请求Retrofit OkHttp Kotlin Coroutines导航Jetpack Navigation Component性能优化使用 Android Profiler 分析内存、CPU、网络安全使用 EncryptedSharedPreferences、ProGuard/R8 混淆