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等,这些文件操作将会后面的学习慢慢的解释出来。

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

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

相关文章

GITEE本地项目上传到远程

由于需要,我这边将本地的仓库上传至GITEE。之前在网上搜索了相关的文档,但是步骤很繁琐,我这边介绍一个非常简单的。 一、在GITEE新建仓库 跟着指引一步步新建。 二、打开本地仓库,删除.git文件 默认情况下不会有这个.git文件&a…

【保姆级讲解如何安装与配置Xcode】

🌈个人主页: 程序员不想敲代码啊 🏆CSDN优质创作者,CSDN实力新星,CSDN博客专家 👍点赞⭐评论⭐收藏 🤝希望本文对您有所裨益,如有不足之处,欢迎在评论区提出指正,让我们共…

在kuboard中添加k8s集群

1.登录kuboard后,点击添加集群面板 系统会跳转到k8s集群添加页面,按照页面提示输入自身的集群信息即可,此处没有什么难点。 添加成功后,点击集群面板,然后点击集群概要信息,就可以查看集群节点信息。 集群节…

ssm092基于Tomcat技术的车库智能管理平台+jsp

车库智能管理平台设计与实现 摘 要 现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本车库智能管理平台就是在这样的大环境下诞生,其可以帮助管理者在短…

Java字符缓冲区

字符缓冲区是在计算机编程中非常重要的一种数据结构,它主要用于存储和高效地操作字符序列。 在 Java 中,StringBuffer类就是典型的字符缓冲区实现。与String类不同,StringBuffer具有动态可变性,这意味着我们可以在原有的字符序列…

设计不外流,保护创意的同时锁住图纸安全!

在设计行业中,图纸和创意文稿的安全至关重要,因为它们体现了企业的创新能力和核心竞争力。华企盾DSC数据防泄密系统提供了一系列功能,可以有效地保护这些珍贵的设计和文档不被外泄。以下是如何利用华企盾DSC系统保障设计图纸安全的关键措施&a…

MySQL怎么看死锁记录

这个结果分成三部分: (1) TRANSACTION,是第一个事务的信息; (2) TRANSACTION,是第二个事务的信息; (3)WE ROLL BACK TRANSACTION (1),是最终的处理结果,表示回滚了第一个事务。 第一个事务的信…

基于飞腾D2000全国产化高速公路一体化收费站解决方案:站数据服务器、站AI服务器、收费系统、监控系统

高速公路一体化收费站解决方案 行业 交通工程及沿路设施作为公路的一个重要组成部分,对城市互联和城市发展具有重要意义,因此围绕高速公路的专用收费 站设计和建设,将有效促进枢纽集散系统与高速公路连通,显著提升城市高速集散能…

ansible-playbook离线升级centos内核

目录 概述实践ansible目录结构关键代码执行效果 结束 概述 内核离线包官网下载地址如下: 地址 实践 ansible目录结构 如对 ansible 不熟悉,离线包下载有问题,请至此地址下载,按本文操作可直接使用。 相关文章链接如下 文章地…

通过共享网络使树莓派4联网

一、问题 尝试配置/boot/dhcpcd.conf文件无效,wifi依然无法联网,且通过桌面选择wifi输入密码后同样无法联网; 二、环境 1、可以通过网线连接电脑,并且可以连接串口; 2、可以通过静态地址通过网线访问树莓派ssh端口&…

交叉调制少样本图像生成用于结直肠组织分类

文章目录 Cross-Modulated Few-Shot Image Generation for Colorectal Tissue Classification摘要方法实验结果 Cross-Modulated Few-Shot Image Generation for Colorectal Tissue Classification 摘要 提出问题: 针对罕见癌症组织的组织病理训练数据稀缺问题&…

maven-idea新建和导入项目

全局配置 新建项目 需要新建的文件夹 src/testsrc/test/javasrc/main/java 注:1、新建Java-class,输入.com.hello.hellomaven 2、快捷键psvm显示 public static void main(String[] args) {.... } package com.hello;public class hellomaven {publ…

案例分享:使用RabbitMQ消息队列和Redis缓存优化Spring Boot秒杀功能

作者介绍:✌️大厂全栈码农|毕设实战开发,专注于大学生项目实战开发、讲解和毕业答疑辅导。 推荐订阅精彩专栏 👇🏻 避免错过下次更新 Springboot项目精选实战案例 更多项目:CSDN主页YAML墨韵 学如逆水行舟&#xff0c…

抄表自动化的实现与优势

1.界定与简述 抄表自动化是一种当代关键技术,致力于取代传统的手动式抄表方法,通过远程数据数据采集解决,完成电力工程、水、气等公用事业电力仪表的全自动载入。这一系统利用先进的感应器、物联网技术(IoT)设备及数据数据分析工具&#xff…

Centos7安装K8S集群环境

一、系统设置 1、关闭swap 临时关闭swap swapoff -a 永久关闭 注释掉 /etc/fstab 中的下面配置 #/dev/mapper/centos-swap swap swap defaults 0 0 2、 关闭SELinux kubelet不支持SELinux, 这里需要将SELinux设置为permissive模式 setenforce 0 sed -i s/^SELINUXenfo…

如何制作一个后台管理页面的路由以及功能实现

后台 文章目录 后台一、RESFUL API二、各模块路由处理1、分类模块1.1、GET /list 分类列表1.2、POST / 新增|编辑分类1.3、DELETE / 删除分类1.4、GET /option 分类选项列表 2、评论模块2.1、GET /list 评论列表2.2、DELETE / 删除评论2.3、PUT /review 修改评论审核 3、留言模…

Linux基础IO(下)

目录 1. 缓冲区 1.1 定义 1.2 理解缓冲区 1.2.1 为什么要有缓冲区 1.2.2 缓冲区的工作原理 缓冲区什么时候写入,什么时候刷新? 2. 文件系统 2.1 什么是文件系统? 2.2 为什么要有文件系统? 2.3 认识文件的管理结构 2.…

机器学习:深入解析SVM的核心概念(问题与解答篇)【二、对偶问题】

对偶问题 **问题一:什么叫做凸二次优化问题?而且为什么符合凸二次优化问题?**为什么约束条件也是凸的半空间(Half-Space)凸集(Convex Set)半空间是凸集的例子SVM 约束定义的半空间总结 **问题二…

Flutter创建自定义的软键盘

参考代码: Flutter - Create Custom Keyboard Examples 本文贴出的代码实现了一个输入十六进制数据的键盘: (1)支持长按退格键连续删除字符; (2)可通过退格键删除选中的文字; &…

Spark-机器学习(8)分类学习之随机森林

在之前的文章中,我们学习了分类学习之支持向量机决策树支持向量机,并带来简单案例,学习用法。想了解的朋友可以查看这篇文章。同时,希望我的文章能帮助到你,如果觉得我的文章写的不错,请留下你宝贵的点赞&a…