7天入门Android开发之第1天——初识Android

一、Android系统

        1.Linux内核层

        这是安卓系统的底层,它提供了基本的系统功能,如内存管理、进程管理、驱动程序模型等。安卓系统构建在Linux内核之上,借助于Linux的稳定性和安全性。

        2.系统运行库层

        这一层包括了安卓系统的各种运行库,如Surface Manager、Media Framework、SQLite等。这些库提供了访问系统功能的接口,例如图形绘制、多媒体处理、数据库访问等。

        3.应用框架层

        这一层提供了开发应用程序所需的各种API(应用程序接口),如Activity Manager、Content Providers、View System等。开发人员可以利用这些API来创建各种类型的安卓应用,从简单的工具应用到复杂的游戏和社交媒体应用。

4.应用层

        这是用户直接与之交互的层,包括各种安卓应用程序,如电话、短信、浏览器、游戏,还要我们自己开发的应用程序等。用户通过这些应用程序来完成各种任务和活动。

二、Android应用开发特点

        1.多语言支持

         安卓开发不限于一种编程语言。最常用的是Java和Kotlin,但也支持C/C++,通过NDK(Native Development Kit)可以在应用中集成本地代码。这种多语言支持使得开发者可以根据自己的偏好和需求选择最适合的语言进行开发。

        2.四大组件

        这些组件可以独立开发、测试和调试,然后通过清单文件(Manifest)进行集成。这种组件化开发方式使得应用的结构更清晰,易于维护和扩展。

        3.丰富的控件资源

        安卓应用通常使用XML文件定义用户界面的布局。开发者可以使用Android Studio提供的可视化布局编辑器中各种控件直观地设计应用界面,并且还支持自定义控件。

        4.多媒体服务:

        Android系统提供了各种多媒体服务,如视频,音乐,相机,闹钟等,通过这些可以开发出相当精彩的应用。

        5.事件驱动编程   

      (1)安卓应用的开发通常是基于事件驱动的编程模型。开发者可以通过注册监听器(Listener)来响应用户的交互事件,如点击按钮、滑动屏幕等。

      (2)这种事件驱动的编程模型使得应用可以实现丰富的交互功能,与用户进行更加直接和有效的沟通。

三、搭建Android开发环境

        Android Studio 安装配置教程 - Windows(详细版)-CSDN博客

        若官网未找到当前版本安装包,可以从下面链接下载:https://pan.baidu.com/s/1dte5ewoUix5mBJiYNqmhIQ?pwd=43ad 
提取码:43ad :
 

四、第一个Android项目 Hello world

        1.在Android studio中创建Hello world

        1)在android studio欢迎界面点击New project,如图1-1所示

图 1-1 创建新项目

        2)点击Empty Activity,再点击Next.

         Phone and Table : 手机和平板应用

        Wear OS :穿戴设备

        Television: TV电视

        Autumotive:汽车操作设备     

图1-2 选择项目模板

        3)进入下面这个界面设置应用最低兼容版本,其中Name表示项目名称,Package name表示包名,Android系统就是根据包名来区分不同应用程序的,一般会自动生成,也可以自己修改,但是必须要具备唯一性;Save location表示项目保存路径;Language表示当前编程使用的语言默认Java;Minimum SDK表示最低兼容Android版本;build configuration language表示配置文件使用语言,包括Kotlin和Groovy等,默认即可。

图 1-3 设置项目基本信息

        4)接下来点击finish完成项目创建,第一次加载项目需要等待稍微长一点的时间。等待加载配置完,即可编辑项目。现在Hello world项目已经创建好了,点击运行之前需要一台Android手机,或者是一个Android模拟器。

2.创建Android模拟器

        1)项目加载完可以看到下面这个界面,如图1-4

图 1-4 创建模拟器

        2)点击右上角手机图标,再点击Create Device出现下面窗口,选择模拟器类型,我们选择Phone中Pixel Xl设备即可,点击Next完成创建。 如图 1-5

图 1-5 选择模拟器类型

        3)接下来我们选择Android系统版本,我这里是API30,Android 11,我这是已经下载好的界面,那一行就不再显示下载箭头了,如图1-6

图 1-6选择虚拟器的版本

        4)选择好之后若没有下载对应的系统版本即需要点击对应行的下载箭头出现下面界面,选择Accept,再点击Next,如图1-7,否则直接点击图1-6的Next界面

图1-7 下载API

        5) 下载完成后点击fiish

        6)回到图1-6,点击Next进入下面界面,如图1-8

     图1-8

          7) 点击Finish,在右上角即可看到设备。

     图1-9

          8)点击设备三角符号即可运行设备。

        图1-10

五、运行项目,查看效果

        1)点即项目右上角绿色三角形即可,如图1-11

        2)效果

六、项目结构

        现在可能会有人问在MainActivity.java文件中并没有设置Hello World!的语句,那么是在哪设置的呢。其实在Android studio开发中,所有的界面文件都在res目录下中layout文件夹下面,可以从图1-13中看到设置了一个textView。

图 1-13

        上面图1-13的项目结构并不是真是的目录结构,这样的目录结构只是为了方便管理,以及清楚明了,可以点击左上方的Android绿色图标,选择Project,这个项目结构才是真的目录结构。

图 1-14 项目结构选择项

图 1-15 真正的项目结构

1)项目基本组成

      我们可以从Android项目结构下,看到一个项目主要由四个部分组成,第一部分为manifests下的Androidmanifest.xml文件;第二部分是java目录下的存放的Java类文件;第三部分是res目录下的资源文件;第四部分是Gradle Scripts下的配置文件。这些文件的作用

  1. Androidmanifest.xml 文件

    • 这是整个 Android 项目的配置文件,位于 app/src/main 目录下。
    • 在这个文件中,您需要注册应用程序的四大组件(Activity、Service、BroadcastReceiver、ContentProvider)。
    • 此外,您还可以在 AndroidManifest.xml 中声明应用程序所需的权限。
    • 这个文件非常重要,因为它定义了应用程序的整体行为和特性。
  2. java 目录

    • 位于 app/src/main 目录下,用于存放所有的 Java 代码文件。
    • 您的应用程序的主要业务逻辑和功能将在这里实现。
    • 例如,您刚刚创建的 HelloWorldActivity 文件就应该放在这个目录中。
  3. res 目录

    • 位于 app/src/main 目录下,用于存放各种资源文件。
    • 这些资源包括图片、布局文件、字符串等。
    • 具体的子目录包括:
      • drawable:存放图形文件(例如图标、背景图等)。
      • anim:存放动画文件。
      • layout:存放布局文件,定义了应用程序的界面结构。
      • values:存放字符串、颜色、尺寸等常量值。
  4. Gradle Scripts 目录

    • 位于项目根目录下,包含了与 Gradle 构建相关的配置文件。
    • build.gradle.kts(project: HelloWorld):全局的 Gradle 构建脚本,通常不需要修改。
    • build.gradle.kts(Module: app):app 模块的 Gradle 构建脚本,指定了项目构建相关的配置。
    • proguard-rules.pro:用于指定代码混淆规则,以增加应用程序的安全性。
    • gradle.properties:全局的 Gradle 配置文件,影响整个项目的编译过程。
    • gradle-wrapper.properties:Gradle Wrapper 的配置文件,用于自动下载 Gradle。
    • local.properties:指定本机中的 Android SDK 路径。
    • settings.gradle:指定项目中所有引入的模块。

7、小结

        这些项目结构中的文件看起来很复杂,但是其实大部分操作都会由android studio自动帮我们添加,我们自己需要的动手的操作其实就那么几个文件,如Androidmanifest.xml,layout文件夹下面文件,build.gradle.kts等,这些文件操作将会后面的学习慢慢的解释出来。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

最新windows版本erlang26.0和rabbitmq3.13下载

Erlang下载 官网下载:https://www.erlang.org/patches/otp-26.0 百度网盘:https://pan.baidu.com/s/1xU4syn14Bh7QR-skjm_hOg 提取码:az1t RabbtitMQ下载 官网下载:https://www.rabbitmq.com/docs/install-windows 百度网盘…

一文解读:阿里云 AI 基础设施的演进与挑战

云布道师 2024 年 4 月 18-19 日,2024 中国生成式 AI 大会在北京 JW 万豪酒店举行,阿里云高级技术专家、阿里云异构计算 AI 推理团队负责人李鹏受邀在【AI Infra】专场发表题为《AI 基础设施的演进与挑战》的主题演讲。李鹏从 AIGC 对云基础设施的挑战、…

echarts利用graphic属性给饼图添加内圈图片及外圈图片(可自适应宽度位于饼图中心)

最终效果图: 目录 前言资源主要部分graphic介绍style介绍代码 加载饼图方法(option所有的配置) 前言 思路是看到这个博客启发的:点击跳转查看博客,然后在graphic属性里改了我的实际需求,譬如图片的宽高、…

【笔试强训】除2!

登录—专业IT笔试面试备考平台_牛客网牛客网是互联网求职神器,C、Java、前端、产品、运营技能学习/备考/求职题库,在线进行百度阿里腾讯网易等互联网名企笔试面试模拟考试练习,和牛人一起讨论经典试题,全面提升你的技术能力https://ac.nowcoder.com/acm/…

如何安装sbt(sbt在ubuntu上的安装与配置)(有详细安装网站和图解)

sbt下载官网 选择对应的版本和安装程序 Download | sbt (scala-sbt.org) 安装 解压 将sbt-1.9.0.tgz上传到xshell,并解压 解压: tar -zxvf sbt-1.9.0.tgz 配置 1、在/home/hadoop/sbt中创建sbt脚本 /home/hadoop/sbt 注意要改成自己的地址 cd …

16 JavaScript学习: 类型转换

JavaScript 类型转换 Number() 转换为数字, String() 转换为字符串, Boolean() 转换为布尔值。 JavaScript 数据类型 在 JavaScript 中有 6 种不同的数据类型: stringnumberbooleanobjectfunctionsymbol 3 种对象类型: Obje…

Springboot多数据源及事务实现方案

Springboot多数据源及事务实现方案 文章目录 Springboot多数据源及事务实现方案背景问题分析实现原理1. 数据源抽象与动态路由2. 线程本地存储(ThreadLocal)3. 面向切面编程(AOP)4. 自定义注解 实现流程1. 设置数据源标识2. 开始数…

Godot3D学习笔记1——界面布局简介

创建完成项目之后可以看到如下界面: Godot引擎也是场景式编程,这里的一个场景相当于一个关卡。 这里我们点击左侧“3D场景”按钮创建一个3D场景,现在在中间的画面中会出现一个球。在左侧节点视图中选中“Node3D”,右键创建子节点…

医院手术室麻醉信息管理系统源码 自动生成麻醉的各种医疗文书(手术风险评估表、手术安全核查表)

目录 手术风险评估表 一、患者基本信息 二、既往病史 三、手术相关信息 四、风险评估因素 五、风险评估结果 手术安全核查表 一、患者身份与手术信息核对 二、术前准备核查 三、手术团队与职责确认 四、手术物品与设备核查 五、术中关键步骤核查 六、术后核查 七…

STM32中断实现旋转编码器计数

系列文章目录 STM32单片机系列专栏 C语言理论和实践总结专栏 文章目录 1. 旋转编码器 2. 中断代码编写 2.1 Interrupt.c 2.2 Interrupt.h 2.3 完整工程文件 1. 旋转编码器 旋转编码器主要用于测量轴的旋转位置、速度或者是角度的变化,它能够将转动的角度或者…

新兴游戏引擎Godot vs. 主流游戏引擎Unity和虚幻引擎,以及版本控制工具Perforce Helix Core如何与其高效集成

游戏行业出现一个新生事物——Godot,一个免费且开源的2D和3D游戏引擎。曾经由Unity和虚幻引擎(Unreal Engine)等巨头主导的领域如今迎来了竞争对手。随着最近“独特”定价模式的变化,越来越多的独立开发者和小型开发团队倾向于选择…

【数据结构】反转链表

给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。 Definition for singly-linked list.struct ListNode {int val;struct ListNode *next;};typedef struct ListNode ListNode; struct ListNode* reverseList(struct ListNode* head) {i…

JavaEE初阶——文件操作和IO

T04BF 👋专栏: 算法|JAVA|MySQL|C语言 🫵 小比特 大梦想 此篇文章与大家分享文件操作及IO的内容 如果有不足的或者错误的请您指出! 目录 *1.解释IO**2.关于文件的基本知识*2.1路径2.1.1绝对路径2.1.2相对路径 2.2文件分类 *3.通过Java代码操作文件*3.1针…

Arcpy入门笔记(三):数据属性的读取

Arcpy入门笔记(三):数据属性的获取 文章目录 Arcpy入门笔记(三):数据属性的获取常用的属性Describe对象属性(部分)数据集属性(部分)表属性(部分&a…

python 脚本头(PyCharm+python头部信息、py头部信息、python头信息、py头信息、py文件头部)

文章目录 参考PyCharm设置脚本头头部信息 参考 https://developer.aliyun.com/article/1166544 https://blog.csdn.net/Dontla/article/details/131743495 https://blog.csdn.net/dongyouyuan/article/details/54408413 PyCharm设置脚本头 打开pycharm,点击file–…

5G赋能 扬帆未来|AGV无人仓成黑科技“顶流”

AGV 近年来,无人化这个概念逐渐被运用到了社会中的各个行业,而跟物流有关的就有无人分拣机器人、无人驾驶卡车、和无人叉车,越来越多的新装备也开始投入到实际运用中。 仓储管理在物流管理中占据着核心地位。传统的仓储管理中存在诸多的弊端…

怎样选购内衣洗衣机?2024年5款最新推荐机型种草

随着科技的不断发展,内衣洗衣机成为了家家户户必备的小家电之一,为我们的生活带来了极大的便利。但面对市场上众多的内衣洗衣机品牌,如何选择一款质量好的内衣洗衣机呢?本文将为您推荐5款最新的内衣洗衣机品牌,从而帮助…

一文解析golang中的协程与GMP模型

文章目录 前言1、线程实现模型1.1、用户级线程与内核级线程1.2、内核级线程模型1.3、用户级线程模型1.3、两级线程模型 2、GMP模型2.1、GMP模型概述2.1、GMP v1版本 - GM模型2.2、GMP v2版本 - GMP模型2.3、GMP相关源码2.4 调度流程2.5 设计思想 3.总结 前言 并发(并行&#x…

Babylon.js 程序化建模简明教程

Babylon.js 中的每个形状都是由三角形或小面的网格构建而成,如题图所示。 NSDT工具推荐: Three.js AI纹理开发包 - YOLO合成数据生成器 - GLTF/GLB在线编辑 - 3D模型格式在线转换 - 可编程3D场景编辑器 - REVIT导出3D模型插件 - 3D模型语义搜索引擎 - Th…

(二十九)加油站:面向对象重难点深入讲解【重点是元类】

目录: 每篇前言:0. Python中的元类:1. 本文引子:2. Python中的mro机制:3. Python中类的魔法属性dict:注意事项: 拓展——内建函数dir() 4. 正式谈一谈元类(metaclass):&a…