Android官方培训课程中文版:使用Android Studio与命令行创建第一个Android项目
文档教程移动开发【免费下载链接】android-training-course-in-chineseAndroid官方培训课程中文版项目地址https://gitcode.com/gh_mirrors/an/android-training-course-in-chinese点击查看免费下载导读本文是 Android 官方培训课程Android Training中文版《建立第一个 App》系列的第一课讲解如何在项目 android-training-course-in-chinese 的指导下从零创建一个 Android 项目既可以用 Android Studio 图形化向导完成也可以在不依赖 IDE 的情况下用 SDK Tools 的命令行完成。读完本文你将掌握一个 Android 项目的完整骨架——布局文件、Java 源码、Manifest 清单、Gradle 构建配置与资源目录分别承担什么职责并能在创建项目后无缝衔接到运行程序与构建用户界面的后续课程。前置条件先准备好开发环境一个 Android 项目包含了所有构成 Android 应用的源代码文件。在动手创建之前请先确认以下环境已经就绪已安装 Android SDK如果使用 Android Studio 开发还需安装 Android Studio 本体本课程所属的入门篇也明确建议用 SDK Manager 下载最新的 SDK tools 与 platforms。命令行方式创建项目时需要能访问sdk/tools/与sdk/platform-tools/目录下的可执行文件。提示本系列课程虽然大多假设你使用 Android Studio但 SDK tools 提供的命令行同样可以完成创建、编译与安装等操作两种方式本文都会覆盖。方式一使用 Android Studio 创建项目Android Studio 提供了可视化的新建项目向导按以下步骤操作即可得到一个基础可运行的 Hello World 工程。启动向导如果尚未用 Android Studio 打开任何项目欢迎页会显示Start a new Android Studio project按钮点击进入如果已经打开了其他项目则通过菜单File New Project创建新项目。配置新项目Configure your new project在弹出的窗口填入以下内容后点击Next。按下列值填写可以使后续课程编写 UI、启动 Activity的操作不易出错Application Name展示给用户的应用名称本教程使用My First AppCompany domain包名限定符Android Studio 会将此限定符应用到每个新建项目本教程使用example.comPackage Name应用的包命名空间语义与 Java 包一致它在同一台 Android 系统上所有已安装的应用中必须唯一由包名限定符推导而来Project location操作系统上存放项目文件的路径。选择运行形态在Select the form factors your app will run on窗口勾选Phone and Tablet。选择最低支持版本Minimum SDK选择API 15: Android 4.0.3 (IceCreamSandwich)。Minimum Required SDK 表示应用支持的最低 Android 版本为了覆盖尽可能多的设备应将其设置为「支持你应用核心功能所需的最低 API 级别」。如果某些非核心功能只在更高版本 API 上可用可以只在高版本上开启这些功能具体策略参考兼容不同的系统版本。此处采用默认值即可。不要勾选其他形态TV、Wear、Glass点击Next。添加 Activity在Add an activity to Mobile窗口选择Empty Activity点击Next。Empty Activity 会生成最精简的 Activity 与对应布局适合作为入门起点。自定义 ActivityCustomize the Activity保持默认设置Activity 与布局的默认命名即可满足后续课程需要。点击Finish完成创建。创建完成后Android Studio 会生成一个基础 Hello World 项目。在进入下一步之前花一点时间认识其中最重要的几个文件。默认项目的关键文件app/res/layout/activity_main.xml新建 Activity 对应的 XML 布局文件。按照创建新项目的流程Android Studio 会同时展示该文件的文本视图与图形化预览。文件包含默认设置和一个显示内容为Hello world!的TextView元素。app/java/com.example.myfirstapp/MainActivity.java创建完成后Android Studio 中会打开对应代码文件的选项卡其中是新创建的 Activity 类定义。编译并运行项目后该 Activity 启动并加载布局文件activity_main.xml在屏幕上显示Hello world!文本。需要说明的是在标准的 Gradle 工程目录结构中Java 源码的完整路径实际为app/src/main/java/com/example/myfirstapp/MainActivity.java清单文件完整路径为app/src/main/AndroidManifest.xml原文档采用简化写法。app/manifest/AndroidManifest.xmlManifest 清单文件描述了项目的基本特征并列出了组成应用的各个组件Activity、Service、BroadcastReceiver、ContentProvider 等。后续课程会深入学习该文件并不断向其中添加组件。app/build.gradleAndroid Studio 使用 Gradle 编译运行 Android 工程工程的每个模块以及整个工程都各有一个build.gradle文件。通常只需关注模块级app/下的build.gradle其中存放编译依赖设置核心是defaultConfig块详见下文。关于 Gradle 构建的更多知识以及后续课程会用到的gradlew/gradlew.bat脚本Gradle Wrapper见《执行 Android 程序》中通过./gradlew assembleDebug命令行编译 APK 的部分。深入解析 build.gradle 的四个核心配置项模块级build.gradle的defaultConfig中有四个配置项直接决定了应用「用什么编译、以什么身份发布、支持到哪些设备」配置项含义建议compiledSdkVersion应用将要编译的目标 Android 版本默认为 SDK 已安装的最新 Android 版本把该值设为最新版本可使用 Android 最新特性并在最新设备上优化应用以提升用户体验若尚未安装可用的 Android 版本需先用 SDK Manager 完成安装。较老的版本仍然可以编译项目applicationId创建新项目时指定的包名即向导中填写的 Package Name作为应用在系统与商店中的唯一标识minSdkVersion创建项目时指定的最低 SDK 版本即向导中的 Minimum Required SDK新建应用支持的最低 API 级别targetSdkVersion表示你测试过应用的最高 Android 版本同样以 API level 表示当 Android 发布新版本后应在最新版本上测试自己的应用并把targetSdkVersion更新到最新以充分利用新版本特性说明原文档中的compiledSdkVersion是compileSdkVersion的笔误实际 Gradle 配置属性名为compileSdkVersion。后三者applicationId、minSdkVersion、targetSdkVersion在工程构建配置中与 Manifest 的uses-sdk声明相互配合其中minSdkVersion与targetSdkVersion的语义对应关系可参考适配不同的系统版本中的uses-sdk android:minSdkVersion4 android:targetSdkVersion15 /示例Android 用这两个级别标注应用兼容范围的下限与「经过测试」的上限并借此决定新版本平台行为变更是否生效。除上述四项外实际工程中defaultConfig通常还包含versionCode整型用于内部版本号递增与versionName面向用户显示的版本号它们同样服务于应用的发布与更新。认识 /res 资源目录新建项目的res/目录下按类别存放着各类资源Android 框架会在运行时按资源 ID 引用它们drawabledensity/存放各种屏幕密度mdpi、hdpi 等图像的文件夹应用运行时的默认图标文件ic_launcher.png就在这里。layout/存放用户界面文件如前文提到的activity_my.xml描述了对应 Activity 的用户界面。menu/存放应用内定义菜单项的文件。values/存放其他 XML 资源文件如字符串、颜色定义其中strings.xml定义了运行应用时显示的文本Hello world!后续建立简单的用户界面课程会把edit_message、button_send等字符串统一收敛到该文件以便查找、修改与本地化。方式二使用命令行创建项目如果不使用 Android Studio可以改用 SDK 提供的tools命令行工具创建项目。命令行方式在自动化构建、持续集成或无法使用 IDE 的环境下尤其有用。打开命令行切换到 SDK 根目录下即包含tools/子目录的目录。执行以下命令列出当前 SDK 中已下载的全部可用 Android 平台tools/android list targets该命令会在屏幕上打印所有可用 platform找到想要创建项目的目标 platform并记录其对应的Id。推荐使用最新的 platform——虽然仍可让应用支持较老版本的 platform但设置为最新版本允许我们为最新的 Android 设备优化应用。如果屏幕没有任何可用 platform需要使用 Android SDK Manager 下载安装参见「Adding Platforms and Packages」流程。执行创建命令android create project --target target-id --name MyFirstApp \ --path path-to-workspace/MyFirstApp --activity MyActivity \ --package com.example.myfirstapp将target-id替换为上一步记录的平台 Id将path-to-workspace替换为希望保存项目的路径。各参数含义如下--target指定编译目标平台 Id--name项目名称--path项目在磁盘上的存放位置--activity默认启动 Activity 的类名--package应用的包名保持与 Android Studio 向导中 Package Name 相同的唯一性要求。Tip把platform-tools/和tools/添加到环境变量PATH之后可以直接使用android、adb等命令开发更方便。命令执行完毕后项目即成为一个基本的 Hello World 程序包含与 Android Studio 方式等价的一套默认文件。创建完成之后下一步做什么无论通过哪种方式刚创建的项目都只是起点。紧接着需要在真实设备或模拟器上编译、安装并运行应用——见执行 Android 程序其中会用到gradlew assembleDebug、adb install以及 AVD 模拟器创建流程编写第一个界面——用布局编辑器为应用添加文本框与按钮见建立简单的用户界面让按钮真正响应点击、启动另一个 Activity见启动其他的 Activity。小结本文完整覆盖了 Android 官方培训课程《创建 Android 项目》的全部内容在 Android Studio 中按 8 步向导完成项目配置应用名、公司域名、包名、项目路径、Phone and Tablet 形态、API 15 最低版本、Empty Activity 模板剖析了新建项目的四大默认文件布局、Activity 源码、Manifest、Gradle 配置重点解读了compileSdkVersion、applicationId、minSdkVersion、targetSdkVersion四个配置项的用途与取值策略并给出了res/资源目录drawable、layout、menu、values的职责划分对于无 IDE 场景也完整演示了tools/android list targets与android create project的命令行建项目流程。掌握这些基础后即可沿着本系列课程继续完成「运行程序 → 构建界面 → 启动 Activity」的完整首个 App 之旅。赞分享文档教程移动开发【免费下载链接】android-training-course-in-chineseAndroid官方培训课程中文版项目地址https://gitcode.com/gh_mirrors/an/android-training-course-in-chinese点击查看免费下载相关推荐建立第一个Android AppAndroid官方培训课程中文版入门实战指南建立第一个Android AppAndroid官方培训课程中文版入门实战指南 本指南基于开源仓库 android training course in chi文档教程移动开发Android官方培训课程中文版教程Android官方培训课程中文版教程 1. 项目介绍 Android官方培训课程中文版Android Training Course in Chinese是文档教程移动开发YimMenu终极防护指南5步打造最安全的GTA5游戏体验YimMenu终极防护指南5步打造最安全的GTA5游戏体验 YimMenu是一款专为GTA5在线模式设计的开源辅助工具它不仅提供了丰富的游戏功能增强更重要逆向工程游戏开发上一篇终极Lightbox2版本管理实战多项目高效协作指南下一篇如何用MQTT.js构建可靠的物联网消息系统面向开发者的完整指南创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

ET1100国产替代:不是换芯片,而是复刻工业以太网确定性

ET1100国产替代:不是换芯片,而是复刻工业以太网确定性

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/5 2:00:26 阅读更多 →
v-calendar Attributes 完全指南:用 highlight、dot、bar 与 popover 为日历日期赋予视觉语义

v-calendar Attributes 完全指南:用 highlight、dot、bar 与 popover 为日历日期赋予视觉语义

前端UI组件 【免费下载链接】v-calendar An elegant calendar and datepicker plugin for Vue. 项目地址: https://gitcode.com/gh_mirrors/vc/v-calendar 点击查看 免费下载 v-calendar 是面向 Vue 的日历与日期选择器插件,其 attributes(属…

2026/10/5 1:59:26 阅读更多 →
如何快速用 douyin-downloader 免费批量下载抖音作品:一份完整上手指南

如何快速用 douyin-downloader 免费批量下载抖音作品:一份完整上手指南

如何快速用 douyin-downloader 免费批量下载抖音作品:一份完整上手指南 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browse…

2026/10/5 1:59:26 阅读更多 →

最新新闻

IT6801显示控制器驱动开发:Datasheet、寄存器与移植实战

IT6801显示控制器驱动开发:Datasheet、寄存器与移植实战

简介:面向ITE6801/IT6801显示控制器的全套资料,主要服务嵌入式显示驱动开发工程师与C/C底层编程人员,重点解决屏幕初始化、寄存器配置、时序调试与驱动移植问题。压缩包共15个文件、约10.37MB,主体为9份PDF数据手册和编程指南&…

2026/10/5 5:20:52 阅读更多 →
Java工程师转型AI Agent实战:从LangChain4j到生产级并发与RAG落地

Java工程师转型AI Agent实战:从LangChain4j到生产级并发与RAG落地

1. Java 工程师转型 AI Agent 的底层逻辑与路径选择1.1 为什么 Java 工程师转 AI Agent 有天然优势很多 Java 工程师一提到 AI Agent,第一反应是“这是 Python 的天下,我是不是得从头学一门语言”。我刚开始接触这个方向时也有同样的焦虑,但实…

2026/10/5 5:20:52 阅读更多 →
二维数组子数组筛选全解析:C#与C语言实现及边界避坑

二维数组子数组筛选全解析:C#与C语言实现及边界避坑

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/5 5:20:52 阅读更多 →
一张图加一段音频生成数字人:从原理到实操的完整指南

一张图加一段音频生成数字人:从原理到实操的完整指南

数字人这个方向我前前后后折腾了快两年,从最早用现成SaaS工具套模板,到后来自己搭管线跑模型,踩过的坑能写满一个笔记本。最近半年,圈子里讨论最多的就是“一张图加一段音频直接出片”的方案——不需要3D建模,不需要动…

2026/10/5 5:20:51 阅读更多 →
单文件HTML跨年祝福页制作指南:倒计时、烟花与部署

单文件HTML跨年祝福页制作指南:倒计时、烟花与部署

简介:HTML跨年主题网页源码包,面向网页设计与前端初学者,可用于制作春节、跨年庆祝页面。包内包含完整的前端文件,涵盖烟花特效、新年倒计时、祝福弹窗、背景音乐切换及响应式布局等常见节日页面功能,适合直接运行查看…

2026/10/5 5:20:51 阅读更多 →
航班飞行网图分析实战:基于Spark GraphX的图计算应用

航班飞行网图分析实战:基于Spark GraphX的图计算应用

做航班数据分析这几年,我越来越觉得把航班数据当普通关系表来算,其实有点浪费。航线的本质就是一张巨大的图——机场是顶点,航班是边,旅客中转天然就是在图上做路径遍历。刚接触 Spark 的时候我也习惯性用 DataFrame 做 join 和 g…

2026/10/5 5:19:51 阅读更多 →

日新闻

马斯克杀回智能体战场,Grok 4.5万亿参数撑腰,Cursor接手数字白领项目:用TaoToken统一Key跑通多模型Agent工作流

马斯克杀回智能体战场,Grok 4.5万亿参数撑腰,Cursor接手数字白领项目:用TaoToken统一Key跑通多模型Agent工作流

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/5 0:00:22 阅读更多 →
AI编程工具插件机制详解:plugin.json配置与加载失败排查指南

AI编程工具插件机制详解:plugin.json配置与加载失败排查指南

1. 从“plugins”这个词说起:它到底在解决什么问题如果你最近在折腾 AI 编程工具,尤其是 Cursor、Codex CLI、Claude Code 这类带 CLI 的编辑器或命令行助手,那你大概率绕不开一个词——plugins。这个词本身不新鲜,从浏览器到 IDE…

2026/10/5 0:00:23 阅读更多 →
第26课:OpenClaw|日志审计与问题诊断:把日志链路改到 TaoToken 的排查清单

第26课:OpenClaw|日志审计与问题诊断:把日志链路改到 TaoToken 的排查清单

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/5 0:00:23 阅读更多 →

周新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/5 5:06:42 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/5 1:10:22 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/5 3:06:17 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 11:40:45 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 9:43:54 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 20:14:29 阅读更多 →