AndroidStudio如何进行手机应用开发?

news2025/2/27 14:27:35

文章目录

  • 0、引言
  • 1、AndroidStudio开发环境配置
  • 2、创建第一个手机应用

0、引言

  Android手机应用因其搭载于手机,使用便捷,应用被大量开发使用。笔者使用手机多年,用过许多手机软件,在使用的过程中,虽然手机软件能解决大部分问题,但在实际发展过程中,难免会有更多的特定需求的产生,手机商业软件更多的是面向大众,而且开发成本也不低,这就导致若要实现自己的需求,就必须自己进行手机应用开发。笔者之前有过开发手机应用的经历,当时学得比较浅,技术并未进行总结,导致安卓开发技术并未成为我的技能,为了总结安卓开发技术,本文重走安卓编程之路,从最基础的编译环境安装和创建第一个手机应用进行阐述。

1、AndroidStudio开发环境配置

  (1)配置Java环境;
  ①从oracle官网下载:https://www.oracle.com/java/technologies/downloads/#jdk20-windows;
  在这里插入图片描述

  ②检查jdk是否安装成功。
  在这里插入图片描述

  (2)配置Android Studio环境;
  ①从Android官网下载最新版的Android Studio安装文件: https://developer.android.com/studio?utm_source=android-studio。
  在这里插入图片描述

  ②双击.exe文件进行安装;
  在这里插入图片描述

  ③完成安装向导。
  在这里插入图片描述

  在这里插入图片描述

  在这里插入图片描述

2、创建第一个手机应用

  (1)创建项目
  在这里插入图片描述

  初次创建程序,Android Studio会检查配置,经验证,jdk-20与gradle-8.1兼容。
  在这里插入图片描述

  若配置成功,软件会自动下载一些依赖包。
  在这里插入图片描述

  依赖下载并安装完成后重启Android Studio。

  (2)工程目录文件说明
  在这里插入图片描述
  manifests目录:用于存放AndroidManifest.XML文件,该文件是整个Android项目的清单文件;
  java目录:用于存放java源文件,业务功能都从这里实现;
  res资源目录:分别包含了drawable资源目录、layout资源目录、mipmap资源目录和values资源目录。
    drawable资源目录:存放各种位图文件(如.png、.jpg、.9png、.gif等),除此之外可能是一些其他drawable类型的XML文件;
    layout资源目录:目录下存放的是布局文件;
    mipmap资源目录:存放图标资源文件,其根据不同分辨率又进行了划分;
    values资源目录:该目录用于存放一些资源文件,其中又包括以下几个文件。
      demens.xml:定义尺寸资源;
      string.xml:定义字符串资源;
      styles.xml:定义样式资源;
      colors.xml:定义颜色资源;
      arrays.xml:定义数组资源;
      attrs.xml:自定义控件的属性,自定义控件时用的较多。
  (3)布局文件编写
  在这里插入图片描述

<TextView
    android:layout_width="wrap_content"  
    android:layout_height="wrap_content"  
    android:text="Hello Android!"  
    app:layout_constraintBottom_toBottomOf="parent"  
    app:layout_constraintEnd_toEndOf="parent"  
    app:layout_constraintStart_toStartOf="parent"  
    android:onClick="DoSomething"  
    app:layout_constraintTop_toTopOf="parent" />

  (4)业务功能编写
  在这里插入图片描述

public void DoSomething(View view) {
    new  AlertDialog.Builder(MainActivity.this)  
            .setTitle("消息提示框" )  
            .setMessage("你好,这是你的第一个手机应用。" )  
            .setPositiveButton("是" ,  null )  
            .setNegativeButton("否" , null)  
            .show();  
}

  (5)模拟器运行结果
  在这里插入图片描述

参考资料:
[1] 智商三岁半i. 【android】超级详细Android Studio下载安装教程(附:JDK1.8安装教程); 2023-02-14 [accessed 2023-04-15].
[2] phial03. Oracle JDK和 OpenJDK 之间的区别; 2022-04-30 [accessed 2023-04-15].
[3] 龟的小号. android开发环境搭建——android studio; 2019-04-05 [accessed 2023-04-15].
[4] 果果小师弟. [干货]手把手教你写一个安卓app; 2021-04-29 [accessed 2023-04-15].
[5] vistaup. 彻底清除Android Studio 安装记录; 2022-04-07 [accessed 2023-04-15].
[6] LeeCoding. Android Studio工作中如何改变(设置)选择的最小SDK版本; 2016-06-05 [accessed 2023-04-15].
[7] AbaloneVH. 【Android Bug】Failed to find Build Tools revision 30.0.3; 2022-06-20 [accessed 2023-04-15].
[8] 独苏揽月. Cannot resolve symbol 'AppCompatActivity’解决方法; 2018-07-17 [accessed 2023-04-15].
[9] ChampionDragon. 安卓OnClick的四种方法; 2021-01-25 [accessed 2023-04-15].

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/412781.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C++开发必知的内存问题及常用的解决方法-经典文章

1. 内存管理功能问题 由于C语言对内存有主动控制权&#xff0c;内存使用灵活和效率高&#xff0c;但代价是不小心使用就会导致以下内存错误&#xff1a; • memory overrun&#xff1a;写内存越界 • double free&#xff1a;同一块内存释放两次 • use after free&#xff1…

【数据结构】二叉树顺序结构及实现

&#x1f680;write in front&#x1f680; &#x1f4dc;所属专栏&#xff1a;初阶数据结构 &#x1f6f0;️博客主页&#xff1a;睿睿的博客主页 &#x1f6f0;️代码仓库&#xff1a;&#x1f389;VS2022_C语言仓库 &#x1f3a1;您的点赞、关注、收藏、评论&#xff0c;是对…

Surfshark下载到使用完整教程|2023最新

2023年3月16日更新 在正式介绍surfshark的教程( 教程直达学习地址: qptool.net/shark.html )之前&#xff0c;我们可以来看看最近surfshark的服务与产品退化到什么程度了。我曾经是Surshark两年的忠实用户&#xff0c;但是&#xff0c;现在&#xff0c;作为一个负责人的测评&a…

PostMan动态参数及循环调用

最近需要在测试环境批量创建es索引&#xff0c;也就是某个接口需要循环调用且参数还是变化的&#xff0c;但是我又不想写代码和脚本&#xff0c;于是研究了一下postman一些好玩的功能&#xff0c;希望能节约大家的开发时间 一.设置请求参数 1.获取创建索引的请求以及参数&…

ELK+Filebeat日志分析系统

目录 一.ELK基本介绍 1.ELK是什么&#xff1f; 2.组件简介 2.1 ELK组件介绍 2.2 ELFK组件介绍 2.3 其它组件 4.使用ELK的原因 5.完整日志系统的基本特征 二.Elasticsearch的介绍 三.Logstash的介绍 四.Kibana的介绍 五.ELK的工作原理 六.部署ELK日志分析系统 1.环…

0基础学习软件测试有哪些建议

其实现在基础的资料和视频到处都是&#xff0c;就是看你有没有认真的去找学习资源了&#xff0c;去哪里学习都是要看你个人靠谱不靠谱&#xff0c;再好的教程和老师&#xff0c;你自己学习不进去也是白搭在正式选择之前&#xff0c;大可以在各种学习网站里面找找学习资源先自己…

springboot+vue动物园管理系统java

本系统使用的角色主要有系统管理员、注册用户&#xff0c;本系统分为系统前台和系统后台&#xff0c;首先在系统前台&#xff0c;游客用户可以经过账号注册&#xff0c;管理员审核通过后&#xff0c;用账号密码登录系统前台&#xff0c;查看论坛交流、动物展览、原生动物展览、…

HTML5 <head> 标签、HTML5 <i> 标签

HTML5 <head> 标签 实例 HTML5 <head> 标签表示文档的头部&#xff0c;其中包含了与该文档有关的信息&#xff01; 一份在头部带有 <title> 标签的 HTML 文档&#xff1a; <!DOCTYPE html> <html> <head> <meta charset"utf-8&…

Linux信号sigaction / signal

Linux信号sigaction / signal 文章目录Linux信号sigaction / signal目的函数原型struct sigaction信号枚举值ISO C99 signals.Historical signals specified by POSIX.New(er) POSIX signals (1003.1-2008, 1003.1-2013).Nonstandard signals found in all modern POSIX system…

虹科教您 | 基于Linux系统的RELY-TSN-KIT套件操作指南(1)——硬件设备与操作环境搭建

RELY-TSN-KIT是一款针对TSN的开箱即用的解决方案&#xff0c;它可以无缝实施确定性以太网网络&#xff0c;并从这些技术复杂性中抽象出用户设备和应用。该套件可评估基于IEEE 802.1AS同步的时间常识的重要性&#xff0c;并借助时间感知整形器来确定性地交付实时流量&#xff0c…

判断完全二叉树(层序遍历)| C

层序遍历 基本思路&#xff1a;利用队列&#xff0c;出上一层&#xff0c;带下一层&#xff08;NULL不入队列&#xff09; &#xff08;C语言需要自己构建队列→【队列】&#xff1c;用链表实现队列&#xff1e; | [数据结构] | C语言&#xff09; 代码 #include "Queu…

代码自动发布系统

之前是jenkins发现gitlab代码更新了就自动获取直接部署到服务器 现在是jenkins自动获取Code之后打包成镜像上传到仓库然后通知docker去拉取更新的镜像 分析 旧∶ 代码发布环境提前准备&#xff0c;以主机为颗粒度静态 新: 代码发布环境多套&#xff0c;以容器为颗粒度编译 …

Typora设置修改字体颜色快捷键

目录 1.typora如何设置修改字体颜色快捷键 2. AutoHotKey软件安装 3.typora关于AutoHotKey的具体操作 1.typora如何设置修改字体颜色快捷键 typora本身是不能直接修改字体颜色的&#xff0c;不过若是想修改还是可以用一些代码去改变的&#xff0c;但是每次都修改一次实在麻烦…

mysql常用的基础命令

通过学习mysql命令提高数据处理和工作效率 基础命令 1.登录MySQL mysql -u root -p 2.查看当前系统所有数据库 show databases; 3.切换数据库 use 数据库名称 4.查看数据库下的所有表 show tables; 5.查看表结构&#xff1b; desc 表名&#xff1b; 6.创建数据库 crea…

MAC OS(M1)安装配置miniconda

一、下载安装miniconda miniconde官网&#xff1a;Miniconda — Conda documentation M1最低只能适配到python3.8 打开终端,进入安装包所在文件夹&#xff0c;使用命令进行安装 bash Miniconda3-latest-MacOSX-arm64.sh一路回车 二、配置环境 安装完成后重启终端&#xf…

Unity ads广告插件的使用

介绍 Unity Ads SDK 由领先的移动游戏引擎创建,无论您在 Unity、Xcode 还是 Android Studio 中进行开发,都能为您的游戏提供全面的货币化框架。 使用 Unity Ads 将各种广告格式合并到游戏中的自然呈现点中。例如,您可以实施激励视频广告来构建更强大的游戏经济,同时为您的…

[C++笔记]vector

vector vector的说明文档 vector是表示可变大小数组的序列容器(动态顺序表)。就像数组一样&#xff0c;vector也采用连续的存储空间来储存元素。这就意味着可以用下标对vector的元素进行访问&#xff0c;和数组一样高效。与数组不同的是&#xff0c;它的大小可以动态改变——…

1700页,卷S人的 Java《八股文》PDF手册,涨薪跳槽拿高薪就靠它了

大家好&#xff0c;最近有不少小伙伴在后台留言&#xff0c;又得准备面试了&#xff0c;不知道从何下手&#xff01; 不论是跳槽涨薪&#xff0c;还是学习提升&#xff01;先给自己定一个小目标&#xff0c;然后再朝着目标去努力就完事儿了&#xff01; 为了帮大家节约时间&a…

Mybatis一级缓存和二级缓存(带测试方法)

目录 一、什么是缓存 二、Mabtis一级缓存 &#xff08;1&#xff09;测试一级缓存 &#xff08;2&#xff09;清空一级缓存 三、Mybatis二级缓存 &#xff08;1&#xff09;开启二级缓存 &#xff08;2&#xff09;测试二级缓存 一、什么是缓存 缓存是内存当中一块存储数…

蓝桥杯嵌入式第十一届省赛题目解析

写完第十一届蓝桥杯嵌入式省赛题目&#xff0c;拿出来给大家参考参考&#xff0c;也是让大家一起测试看看有什么问题还需要改进&#xff0c;代码在最后喔。 目录 客观题&#xff1a; 程序设计题 &#xff1a; 题目解析&#xff1a; CubeMX配置 代码演示 &#xff1a; 客观…