首页 / 资讯中心 / 文章详情

从零搭建安卓开发环境:Android Studio + Kotlin + 模拟器跑通第一个APP

从零搭建安卓开发环境:Android Studio + Kotlin + 模拟器跑通第一个APP ★ FEATURED ARTICLE
做啥子嘛(1)了解应用开发环境做啥子嘛这四个字是我在成都生活那几年听到频率最高的一句话。朋友聚餐对着菜单纠结半天最后总会有人冒出一句到底做啥子嘛周末早上赖在床上刷手机也会对着天花板嘀咕今天做啥子嘛。说穿了就是选择困难症吃什么、干什么、去哪里日常里大量时间被这些小事消耗掉。我后来萌生了个念头——干脆自己做一个名叫做啥子嘛的APP把选择交给随机数手机上点一下它帮你想今天吃什么、周末干什么。这个系列文章就是把这个APP从零做出来的完整纪录今天这篇先解决最基础的问题把应用开发环境搭起来并且真正跑通第一个空工程。这篇文章适合两类人一是完全零基础、想动手做APP但一直卡在环境装不了、不知道怎么开始的朋友二是以前用过Android Studio但碰到各种依赖下载、模拟器起不来的问题、想重新系统梳理一遍的人。我会从技术选型讲到环境搭建的每一步再把常见的坑挨个说清楚。文章结束时你电脑上会有一个能创建项目、能在模拟器里启动APP的开发环境这就是后续所有实战的地基。1. 先说清楚这个系列要做什么做啥子嘛到底是个啥1.1 一句四川方言和一个应用雏形做啥子嘛如果做成一个APP它解决的是最普遍却最容易被忽视的决策疲劳问题。中午十二点打开外卖软件刷了三十分钟还没下单周末下午想做点有意思的事想来想去最后还是躺回沙发。这些问题看着不严重但日积月累白白消耗大量精力。一个足够简单的随机决策工具反而能帮人快速从纠结里跳出来你只需要预设好选项剩下的交给随机数。最初的版本我打算只做三个核心功能第一个是今日吃啥内置本地常见餐饮类型火锅、串串、冒菜、烧烤、家常菜馆一应俱全点一下按钮就出结果第二个是周末做啥把户外、电影、宅家、约朋友这些选项做成标签让你不用在刷短视频和睡觉之间反复横跳第三个是摇摆骰子适合不能完全服随机、想再纠结一下的场景相当于给选择困难症留一条反悔的退路。这个应用的技术含量不算高涉及的知识点却很典型——界面布局、事件处理、数据存储、状态管理、打包发布覆盖了一个安卓APP从开发到上架的完整路线。把它作为实战项目正好合适。1.2 为什么系列第一篇偏偏选环境很多人做APP的失败原因不是代码写不好而是环境搭不起来。我在各个技术社区看到过大量类似的求助帖Android Studio装到一半报错、Gradle同步卡半天、模拟器打开以后黑屏、SDK组件怎么都下载不齐。这些问题的共同点就是一个——开发环境没有形成闭环项目根本跑不起来后面再好的思路和想法都落不了地。所以这个系列的第一篇我刻意把了解应用开发环境单独拿出来讲。这一篇的目的非常明确让你从现在开始打开电脑就能写代码写完代码能立刻看到运行效果。后面的文章才放心去聊界面怎么设计、随机逻辑怎么写、本地数据怎么存。路线图大概是这样的第1篇本篇搭建安卓开发环境跑通空工程第2篇搭建主界面框架实现页面切换和基础布局第3篇实现今日吃啥周末做啥的随机决策核心逻辑第4篇加入自定义选项和历史记录用本地存储保存用户数据第5篇应用图标、适配与签名打包真正装到自己手机上有了这个计划你就能明白环境不只是一个技术门槛更是整个系列能否继续推进的起点。2. 技术栈选型为什么我的环境清单里只有Android Studio和Kotlin2.1 先说结论再讲理由做做啥子嘛这种安卓APP我的最终选型是Android Studio官方开发工具 Kotlin编程语言 Jetpack Compose界面框架。这个组合是目前安卓官方主推的默认方案也是新项目创建时的标准模板不需要任何额外配置。从宏观层面看现在开发一个手机App摆在面前的路线大概有四条安卓原生开发、iOS原生开发、跨平台开发Flutter、React Native、uni-app等、低代码无代码平台。每条路都有自己的适用场景下面这张表是站在零基础起步、三个月内要做出可用App的角度来对比的。方案学习曲线运行性能开发效率环境配置成本发布渠道适合人群安卓原生Kotlin中等最高中等中等Google Play、国内各大商店想做长期维护、原生体验的AppiOS原生Swift中等最高中等较高需要MacApp Store目标用户主要在苹果设备Flutter中高较高高中等双端想一套代码同时覆盖安卓和iOSReact Native中高较高高中等双端有前端JavaScript基础的团队uni-app较低中等高低多端App小程序H5需要快速输出多平台产品低代码平台极低受限极高极低平台限制多非技术背景做原型验证做啥子嘛是一个功能简单但需要长久打磨的小工具核心交互完全在安卓设备上对原生能力和系统集成的需求很低。这种情况下原生开发反而是最省心的选择不需要引入额外的跨平台运行时不用担心框架升级带来的兼容性问题官方文档和社区资料也最全。以后真做大了再考虑多端扩展现在没必要提前背复杂度。2.2 Kotlin还是Java这不是二选一而是时代选择安卓开发的历史上Java是资历最老的语言十年前几乎所有安卓教程都用Java写。但2017年谷歌正式宣布Kotlin成为安卓官方支持的开发语言2019年Android开发默认使用Kotlin到了今天新建项目时IDE默认选项就是KotlinJetpack、Compose这些新组件更是完全围绕Kotlin设计。对一个新项目来说选Kotlin几乎不需要犹豫。Kotlin更现代、写法更简洁消除了Java里大量样板代码像空指针安全、数据类、协程这些能力在日常开发里能节省大量时间。举个例子Java里要写一个带getter/setter的实体类可能要十几行Kotlin里一行data class搞定。Java当然还在大量存量项目里运行但那是历史包袱不是新项目的理性选择。2.3 JDK版本、SDK版本、最低系统版本怎么定环境搭建里最让人困惑的就是一堆版本号。我这里先给出一份明确清单后面照着装就行JDK17或21。新版Android Studio内置了JetBrains RuntimeJBR本身就是基于JDK 17定制而来所以实际上你不需要单独安装JDK。这个知识点很多人不知道后面第3章细说。compileSdk编译目标34对应Android 14。这是当前主流稳定的API级别模板默认就是它。targetSdk34。决定应用在较新系统上的行为兼容规则发布到应用市场时商店通常会要求最新的targetSdk。minSdk最低支持版本24对应Android 7.0。这一个值覆盖了市面上95%以上的安卓设备老设备用户基本不用管。为什么minSdk选24而不选更低的23或21因为从Android 7.0开始系统在权限管理、省电模式等机制上已经趋于成熟很多现代库早就放弃了对更低版本的支持。minSdk越低意味着你在开发时需要处理的兼容分支越多对新手极不友好。拿95%覆盖率换取更低的维护成本这笔账很划算。3. 从JDK到虚拟设备一次跑通的环境搭建全记录3.1 关于JDK的小知识点新版Android Studio根本不用单独装网上大量教程第一步就是安装JDK并配置JAVA_HOME环境变量。这个流程在十年前是对的但在今天已经过时了。Android Studio从3.0版本开始自带JBRJetBrains Runtime它是一个基于OpenJDK定制的运行时专门为IDE和Gradle构建服务。也就是说你安装完成Android Studio后它已经内置了合适版本的JDK不需要你再装一个、也不需要配置JAVA_HOME。那什么情况下才需要手动装JDK当你打算脱离IDE在命令行里直接用gradle assembleDebug构建项目或者要用java -jar运行某些独立工具时才需要独立安装。对于这个系列和大多数安卓学习者直接用内置JBR就够了。省这一步能少踩一堆JDK版本不匹配环境变量配置错误的坑。3.2 安装Android Studio下载与首次启动配置安装包建议选择稳定版Stable通道不要追求预览版或Beta版。版本号一直在更新不用刻意记下载最新稳定版即可。官网下载如果速度慢也可以用国内高校开源镜像站或者腾讯、华为等提供的软件下载渠道获取安装包注意核对官方签名和校验码。下载完成后按默认设置一路确认安装。有几个选项值得留意安装组件时勾选Android Virtual Device否则后面创建模拟器时会缺东西。安装路径建议放在空间充足的盘。Android Studio本体至少占3到5GBSDK组件和模拟器镜像后续会再占用10到20GBC盘紧张的设计開發机最好提前规划。首次启动时会进入欢迎界面提示导入配置、选择主题然后进入SDK组件下载阶段。这一步往往是最慢的因为需要从网络下载Android SDK平台、构建工具等。网络环境不理想的话可以提前把下载源切到国内镜像。后面第5章我会给出具体的镜像配置方法。3.3 在SDK Manager里把这几个组件打勾进入IDE后打开Settings里的Languages Frameworks Android SDK有一个 SDK Platforms 页签和 SDK Tools 页签。我的建议是勾选以下组件组件作用版本选择建议Android SDK Platform编译时需要的系统API库API 34可以同时保留API 33以备不时之需Android SDK Build-Tools打包APK时使用的构建工具34.0.0或更高Android SDK Platform-Tools提供adb、fastboot等命令行工具最新即可Emulator安卓模拟器本体最新稳定版Android SDK Command-line Tools提供sdkmanager、avdmanager等命令最新稳定版如果你以后要做命令行构建、CI自动化打包Command-line Tools是必需的。即使现在用不到我建议也一起装上因为SDK Manager管理SDK组件本身就是通过这些底层工具干活。装好之后在SDK Location处能看到SDK的实际路径这个路径后面会用到。3.4 创建第一个虚拟设备AVD模拟器是让新手的代码跑起来的最快方式。点击工具栏上的Device Manager选择Create Device挑一台配置适中的参考机型。我的建议是选Pixel 5或类似的中端机型屏幕尺寸和分辨率比较主流不会因为屏幕太大拖慢渲染速度。系统镜像建议选API 34的x86_64版本优先选择带Google APIs标记的镜像。带Google APIs的镜像集成了Google Play服务调试某些依赖登录、推送的能力更方便如果不做这些功能选不带Google APIs的标准镜像也可以体积更小。下载镜像大概1到2GB需要耐心的那一步就是这里。创建AVD时有个设置容易被忽略默认RAM内存大小通常只有2GB跑安卓14会偏卡。如果你的电脑内存有16GB建议把RAM调到2GB以上存储空间设为2GB到4GB。硬件加速方面Windows用户要确认BIOS里虚拟化已经开启Intel VT-x或AMD-VAndroid Studio会用Hypervisor加速模拟器。如果此前开过HAXM注意新版模拟器驱动和Hyper-V之间可能存在冲突遇到问题的处理思路是只保留一种加速方案。4. 验收第一步创建空工程并让它在虚拟设备里开机4.1 新建工程时的参数怎么填环境装好之后最重要的一件事是空跑通一个工程——内容可以什么功能都没有但构建、安装、启动、打开页面这整条链路必须顺畅。这个链路通了后面写任何代码心里都有底。点击New Project模板选择Empty Activity注意不要选成Empty Views Activity前者是Jetpack Compose新模板后者是老式XML布局模板两者差别很大然后按下面的表格填写参数填写内容说明NameZuo Sha Zi MaApp显示名称以后可以在代码里改成做啥子嘛Package namecom.zuoshazima.app应用的唯一标识创建后不建议修改Save location自己设定的项目目录建议放在好找的路径比如D:\AndroidProjectsLanguageKotlin当前唯一推荐的安卓开发语言Minimum SDKAPI 24前文说过Android 7.0覆盖95%设备Build configuration languageKotlin DSL新版默认方案构建脚本用Kotlin写包名有个规范要注意必须至少包含两段域名逆序结构比如com.xxx.yyy。第一段一般是公司或个人域名第二段是项目名。包名发布后不能改因为市场把它当作App的唯一身份标识所以取名时稍微想远一点。我用的是com.zuoshazima.app如果你有自己的域名换成com.你的域名.项目名格式更好。4.2 Gradle是什么以及同步卡住怎么办创建完项目之后Android Studio会自动开始一次Gradle同步。Gradle是安卓项目的构建工具它的工作方式是根据build.gradle.kts脚本里的声明自动关联依赖库、安排编译打包流程。你可以把它理解成一个包工头你告诉它这个项目要用哪些材料依赖库、用什么方式盖楼构建配置它负责调度一切。新手最容易卡死在这一步症状就是底部状态栏一直转圈日志里反复出现下载超时或SSL报错。根本原因很简单Gradle启动时要下载它本身的发行包项目同步时要下载Google和Maven中央仓库里的依赖库而这些下载地址在特定网络状况下速度不稳定。解决办法是使用国内镜像仓库地址改两个地方。第一个地方是项目根目录下的gradle/wrapper/gradle-wrapper.properties负责指定Gradle发行版的下载地址改成腾讯云镜像可以明显提速distributionUrlhttps\://mirrors.cloud.tencent.com/gradle/gradle-8.6-bin.zip注意实际Gradle版本号以你项目文件里写的内容为准不同时期创建的模板版本号不同只替换域名前缀部分即可版本号别乱动。第二个地方是项目根目录下的settings.gradle.kts负责配置依赖仓库。把官方仓库地址替换或补充为阿里云镜像pluginManagement { repositories { maven { url uri(https://maven.aliyun.com/repository/gradle-plugin) } maven { url uri(https://maven.aliyun.com/repository/google) } maven { url uri(https://maven.aliyun.com/repository/public) } google() mavenCentral() gradlePluginPortal() } } dependencyResolutionManagement { repositories { maven { url uri(https://maven.aliyun.com/repository/google) } maven { url uri(https://maven.aliyun.com/repository/public) } google() mavenCentral() } }配置完保存点击Sync Now重新同步。正常情况下几分钟到十几分钟就能完成进度条走完、没有红色报错就说明构建环境完全打通了。4.3 第一次点下Run之后会发生什么在模拟器已经启动的前提下选中运行目标为你的AVD点击工具栏的绿色Run按钮。你会看到以下过程依次发生Gradle执行编译任务生成APK文件adb把APK传输到模拟器并静默安装系统拉起MainActivity屏幕上出现一个带有Hello Android文字的空白页面。整个过程第一次会比较慢因为要初始化构建缓存后面再点Run会明显加快。如果Run的时候提示No target device found查一下模拟器是否真的启动完成如果提示安装失败多半是模拟器存储空间不足去AVD设置里把存储加大。想用真机调试的话需要在手机上开启开发者选项和USB调试用数据线连上电脑。首次连接时手机会弹一个允许USB调试吗的确认框记得勾选始终允许。真机的优势是性能更接近实际使用而模拟器胜在随手可用、随时可以重置系统状态。开发阶段我建议两个都用日常逻辑验证用模拟器测试手感、拍展示视频时用真机。5. 搭完环境后值得注意的细节以及这个系列接下来的路5.1 盘空间与目录规划别让你的系统盘被开发工具塞满安卓开发环境占用的磁盘空间比想象中大得多。Android Studio本体约3GBSDK各版本组件加起来轻松超过10GBAVD系统镜像每个1到2GBGradle缓存又是好几个GB。如果全部默认装在C盘开发半年后系统盘可能就飘红了。我的做法是这样的Android Studio和SDK可以安装在D盘或E盘安装时自定义路径即可Gradle缓存目录默认在用户目录下的.gradle文件夹可以通过环境变量GRADLE_USER_HOME改到其他盘AVD镜像默认在用户目录下的.android/avd也可以通过Android Studio的路径设置迁移。项目代码目录单独建立一个AndroidProjects文件夹与开发工具分开。注意修改环境变量前先确认Android Studio已经关闭否则下次启动时会看到路径读取异常。这些规划看起来很琐碎但越早做好越省心。等开发到第4篇、第5篇的时候你会有十几个项目快照和多个AVD镜像磁盘空间会变得非常敏感。5.2 首次构建慢不是你的电脑坏了如果你按照上文正常流程操作第一次打开项目、第一次运行的时候依然可能会经历一段漫长等待。这很正常不是电脑坏了。第一次构建要下载依赖库、初始化缓存、编译所有源代码是一条很重的流水线。以后每次构建都会用增量编译秒级完成是常态。判断卡顿是正常还是异常有几个信号看Gradle面板里的任务进度是否在推进看日志里出现过什么报错如果长时间卡在某个下载任务上不动八成是网络问题按4.2节的镜像配置再检查一遍如果卡死在某个编译任务上重点看编译错误日志。另外还有一个隐藏问题杀毒软件或系统安全策略可能拦截Gradle和adb的通信导致构建失败或模拟器无法连接。排查时可以把项目目录、SDK目录加入安全软件的信任列表。这一点在企业和境内软件环境下尤其常见值得留意。5.3 环境自检清单怎么确定真的搭好了环境搭好不等于万事大吉我建议你做一个快速自检确认五件事全部通过才算真正完成检查项判定标准操作方式Android Studio能正常启动进入主界面无致命报错提示双击图标SDK组件完整SDK Manager里API 34、Build-Tools 34、Platform-Tools、Emulator都是已安装状态打开SDK Manager查看模拟器能正常运行开机进入锁屏界面操作不频繁卡死在Device Manager里点启动图标adb能识别设备输出设备编号而不是空列表或unauthorized命令行执行adb devices空工程能跑通点击Run后应用在模拟器上显示主页面创建空项目运行五件事都通过你的应用开发环境才算是真正了解了。如果哪一步没过回去看对应章节大多数问题都能在这篇文章里找到答案。5.4 后续文章路线环境只是起点。下一篇我会带你搭建做啥子嘛的界面框架底部导航栏、三个主页面今日吃啥、周末做啥、摇摆骰子以及首页的视觉骨架。做完那一步你手机屏幕上会出现一个真正能点来点去的应用雏形。第三篇会进入核心逻辑实现随机决策算法处理重复选项问题并设计一个简单好用的吃完不满意再来一次交互。第四篇加数据持久化把你的自定义选项保存在本地。第五篇解决打包发布让App以正式图标出现在手机桌面上真正被家人朋友用起来。这条路每一步都不难但需要你动手跟着做。我在第一篇把地基打好了后面的房子才有得盖。最后说一点个人体会。我最早学安卓开发的时候在一台内存只有8GB的老笔记本上折腾了一个星期才把模拟器跑起来。当时不懂镜像、不懂缓存、不懂虚拟化加速整个环境装到一半就报错卸载重装了好几次。后来有个前辈跟我说了一句话环境本身也是项目的一部分花三天把它搞明白比花三天去背语法有用得多。这句话我一直记着。所以这一篇写得比较细也是希望你能在起点上少走一点我当年走过的弯路。环境跑通的那一瞬间别急着写代码先享受一下我这条路通了的感觉——接下来你会发现写APP这件事的难度比想象中小很多。
阅读完成 · 觉得有帮助?
咨询建站