Android入门教程 (二) 第一个App HelloWorld

简介: Android入门教程 (二) 第一个App HelloWorld

一 、前言

作为一名程序员,开始学习一门新的语言的第一步就是让程序输出 “Hello World!”。学习Android也是一样,我的教学也是从第一个 “Hello World!” 开始。
Android Studio 安装完成之后,如果没有创建项目,则会自动进入到欢迎对话框,如下图所示:


二 、欢迎界面

在这个界面中,我们可以新建项目、打开本地项目、或者导入项目等等。在Android Studio中,一个项目相当于一个工作空间,一个工作空间里可以包含多个模块,即Module,没一个模块对应一个Android应用。


三 、 创建第一个Android项目

接着我们来开始尝试创建一个新的项目,点击下方的红色区域

在该对话框中我们需要选择创建的类型,我们选择 Phone and Tabblet,即手机应用,然后选择Empty Activity,即空Activity,最后点击Next

在该对话框中,我们可以填写关于项目的一些信息。

第一个是Name,代表应用程序的名称,如zwz

第二个是包名,建议使用 学校.姓名,如ypc.zwz,或者公司的域名

第三个是保存位置,即项目本地文件存放的物理位置

第四个是编程语言,我们选择Java即可

第五个是最小SDK,我们选择16即可,有特殊功能时,我们可以在代码中上调最小SDK

最后我们点击Finish,Android Studio会自动帮我们创建好项目。


四 、下载安装模拟器

Android模拟器是谷歌提供的一款运行Android程序的虚拟机,可以模拟手机、平板电脑等等设备。作为Android程序员,不管你使用的是不是Android手机,都需要在Android模拟器上测试自己开发的Android程序。
而自动自带的模拟器性能较差,推荐使用第三方的模拟器,如夜神模拟器、雷电模拟器等等。
我这里以雷电模拟器为例,百度搜索雷电模拟器,打开官网,下载正式版,后在电脑上安装雷电模拟器。

安装运行之后,打开右上角的设置按钮,选择手机版最大的分辨率,点击保存设置。


五 、 修改Android代码

回到 Android Studio ,可以看到如下图所示的项目结构,Android Studio为我们提供了多种项目结构类型。一般情况下,我们会经常使用Project和Android结构,因为Android最常用,所以我们这里就使用Android这一种项目结构类型。

采用Android项目结构时,我们发现项目结构下存在很多子节点,我们一一介绍。

在使用Android Studio 创建第一个项目时候,系统会默认创建一个名称为app的模块。


第一个是配置文件,配置应用程序需要用到的信息。

manifests节点用于显示Android应用程序的配置文件。通常情况下,每个Android应用程序必须包含一个AndroidManifest.xml文件,位于manifests节点下。它是整个Android应用的全局描述文件。在该文件内,需要标明应用的名称、使用图标、Activity、和Service信息,否则程序不能正常启动。


第二个是java源代码文件

java节点用于显示包含了Android程序的所有包及源文件


第三个是资源文件,比如图片资源、布局资源、菜单资源、字符串资源、样式资源等等。

res节点用来显示保存在res目录下的资源文件,当res目录中的文件发生变化时,R文件会自动修改。在res目录中还包括一些子包。

drawable子目录:通常用来保存图片资源

layout子目录:主要用来保存Android程序中的布局文件,在创建Android应用程序时,会默认生成一个activity_main.xml布局文件。

mipmap子目录:用于保存应用程序启动的图标。为了保证用户的良好体验,需要为不同的分辨率提供不同的图片,并且存放在不同的目录中。

values子目录:通常用语保存应用中使用的字符串、尺寸、样式资源,以及用来实现Android程序的国际化。


第四个是保存Gradlle构建和属性的文件。

在初学者阶段,我们只会用到两个文件,一个是activity_main.xml,即前段布局文件,还有MainActivity.java,即后端逻辑文件。

我们打开activity_main.xml,可以看到如下代码

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Hello World!"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>

其中android:text="Hello World!"就代表着在屏幕上输出的这句话,我们将其改成Hello ZWZ!,然后保存程序。

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Hello ZWZ!"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>

六 、 运行Android程序

接着我们要在模拟器上运行该模块,下图第一块是选择运行的模块,第二块是选择运行的设备,第三块是运行的按钮。

我们选择新建的app项目,当雷电模拟器开机完毕后,会自动连接Android Studio,会出现上面的模拟器选项,接着单机绿色的运行按钮即可。接着Android Studio会自动编译该项目,后在模拟器上运行。


相关文章
|
2月前
|
Android开发 移动开发 小程序
binder机制原理面试,安卓app开发教程
binder机制原理面试,安卓app开发教程
binder机制原理面试,安卓app开发教程
|
12天前
|
ARouter IDE 开发工具
Android面试题之App的启动流程和启动速度优化
App启动流程概括: 当用户点击App图标,Launcher通过Binder IPC请求system_server启动Activity。system_server指示Zygote fork新进程,接着App进程向system_server申请启动Activity。经过Binder通信,Activity创建并回调生命周期方法。启动状态分为冷启动、温启动和热启动,其中冷启动耗时最长。优化技巧包括异步初始化、避免主线程I/O、类加载优化和简化布局。
28 3
Android面试题之App的启动流程和启动速度优化
|
10天前
|
缓存 JSON 网络协议
Android面试题:App性能优化之电量优化和网络优化
这篇文章讨论了Android应用的电量和网络优化。电量优化涉及Doze和Standby模式,其中应用可能需要通过用户白名单或电池广播来适应限制。Battery Historian和Android Studio的Energy Profile是电量分析工具。建议减少不必要的操作,延迟非关键任务,合并网络请求。网络优化包括HTTPDNS减少DNS解析延迟,Keep-Alive复用连接,HTTP/2实现多路复用,以及使用protobuf和gzip压缩数据。其他策略如使用WebP图像格式,按网络质量提供不同分辨率的图片,以及启用HTTP缓存也是有效手段。
32 9
|
11天前
|
XML 监控 安全
Android App性能优化之卡顿监控和卡顿优化
本文探讨了Android应用的卡顿优化,重点在于布局优化。建议包括将耗时操作移到后台、使用ViewPager2实现懒加载、减少布局嵌套并利用merge标签、使用ViewStub减少资源消耗,以及通过Layout Inspector和GPU过度绘制检测来优化。推荐使用AsyncLayoutInflater异步加载布局,但需注意线程安全和不支持特性。卡顿监控方面,提到了通过Looper、ChoreographerHelper、adb命令及第三方工具如systrace和BlockCanary。总结了Choreographer基于掉帧计算和BlockCanary基于Looper监控的原理。
20 3
|
13天前
|
安全 JavaScript 前端开发
kotlin开发安卓app,JetPack Compose框架,给webview新增一个按钮,点击刷新网页
在Kotlin中开发Android应用,使用Jetpack Compose框架时,可以通过添加一个按钮到TopAppBar来实现WebView页面的刷新功能。按钮位于右上角,点击后调用`webViewState?.reload()`来刷新网页内容。以下是代码摘要:
|
19天前
|
缓存 Android开发 Kotlin
【安卓app开发】kotlin Jetpack Compose框架 | 先用OKhttp下载远程音频文件再使用ExoPlayer播放
使用 Kotlin 的 Jetpack Compose 开发安卓应用时,可以结合 OkHttp 下载远程音频文件和 ExoPlayer 进行播放。在 `build.gradle` 添加相关依赖后,示例代码展示了如何下载音频并用 ExoPlayer 播放。代码包括添加依赖、下载文件、播放文件及简单的 Compose UI。注意,示例未包含完整错误处理和资源释放,实际应用需补充这些内容。
|
19天前
|
存储 Android开发 Kotlin
开发安卓app OKhttp下载后使用MediaPlayer播放
在Android Jetpack Compose应用程序中,要使用OkHttp下载远程音频文件并在本地播放,你需要完成以下几个步骤: 1. **添加依赖**:确保`build.gradle`文件包含OkHttp和Jetpack Compose的相关依赖。 2. **下载逻辑**:创建一个`suspend`函数,使用OkHttp发起网络请求下载音频文件到本地。 3. **播放逻辑**:利用`MediaPlayer`管理音频播放状态。 4. **Compose UI**:构建用户界面,包含下载和播放音频的按钮。
|
19天前
|
存储 Android开发
安卓app,MediaPlayer播放本地音频 | 按钮控制播放和停止
在Jetpack Compose中,不直接操作原生Android组件如`Button`和`MediaPlayer`,而是使用Compose UI构建器定义界面并结合ViewModel管理音频播放逻辑。以下示例展示如何播放本地音频并用按钮控制播放/停止:创建一个`AudioPlayerViewModel`管理`MediaPlayer`实例和播放状态,然后在Compose UI中使用`Button`根据`isPlaying`状态控制播放。记得在`MainActivity`设置Compose UI,并处理相关依赖和权限。
|
22天前
|
安全 Android开发 数据安全/隐私保护
同样的 APP 为何在 Android 8 以后网络感觉变卡?
【6月更文挑战第8天】Android 8 及以后系统中,APP 网络感觉变卡源于更严格的安全机制和后台限制,系统对网络优化的侧重改变,以及APP自身兼容性问题。开发者需优化APP,适应新系统,用户可更新APP或检查权限设置。通过共同努力,有望改善网络卡顿现象,提升用户体验。
|
8天前
|
Java Android开发 Kotlin
Android面试题:App性能优化之Java和Kotlin常见的数据结构
Java数据结构摘要:ArrayList基于数组,适合查找和修改;LinkedList适合插入删除;HashMap1.8后用数组+链表/红黑树,初始化时预估容量可避免扩容。SparseArray优化查找,ArrayMap减少冲突。 Kotlin优化摘要:Kotlin的List用`listOf/mutableListOf`,Map用`mapOf/mutableMapOf`,支持操作符重载和扩展函数。序列提供懒加载,解构用于遍历Map,扩展函数默认参数增强灵活性。
14 0