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.rhkb.cn/news/313869.html

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

相关文章

一次违法网站的渗透经历

0x01 前言 在一次攻防演练中,我发现了一个有趣的渗透路径。在信息收集阶段,我注意到目标网站和用户资产网站共享相同的IP网段。这意味着它们可能在同一台服务器上托管,或者至少由同一家互联网服务提供商管理。这种情况为我们的渗透测试提供了…

Linux命令继续学习

which命令,找到各种命令程序所处在的位置 语法:which查找的命令 那么对于我们想查找其他类型文件所在的位置,我们可以用到find命令 find命令 选项为-name,表示按照文件名进行查找 find命令中通配符 find命令和前面rm命令一样&…

学习Rust第14天:HashMaps

今天我们来看看Rust中的hashmaps,在 std::collections crate中可用,是存储键值对的有效数据结构。本文介绍了创建、插入、访问、更新和迭代散列表等基本操作。通过一个计算单词出现次数的实际例子,我们展示了它们在现实世界中的实用性。Hashm…

xgp加速器免费 微软商店xgp用什么加速器

2001年11月14日深夜,比尔盖茨亲自来到时代广场,在午夜时分将第一台Xbox交给了来自新泽西的20岁年轻人爱德华格拉克曼,后者在回忆中说:“比尔盖茨就是上帝。”性能超越顶级PC的Xbox让他们趋之若鹜。2000年3月10日,微软宣…

ScriptableObject数据容器讲解

概述 是Unity提供的一个用于创建可重用的数据容器或逻辑的基类。 ScriptableObject 是继承自 UnityEngine.Object 的一个类,但与普通的 MonoBehaviour 不同,它不能附加到GameObject上作为组件。 相反,ScriptableObject 通常用于存储和管理…

意法半导体STM32F407VET6TR单片机优缺点、参数、应用和引脚封装

ST(意法半导体)的型号STM32F407VET6TR属于32位MCU微控制器,基于高性能的ArmCortex-M4 32位RISC核心,工作频率高达168MHz。单精度浮点单元(FPU)用于Cortex-M4核心,支持所有Arm单精度数据处理指令和数据类型。它还实现了一套完整的DSP指令和一个…

就业班 第三阶段(负载均衡) 2401--4.18 day2 LVS-DR模式

3、LVS/DR 模式 实验说明: 1.网络使用NAT模式 2.DR模式要求Director DIP 和 所有RealServer RIP必须在同一个网段及广播域 3.所有节点网关均指定真实网关 主机名ip系统用途client172.16.147.1mac客户端lvs-server172.16.147.154centos7.5分发器real-server1172.16.…

k8s日常动手实践 ~~ pod访问 pod请求 k8s api ~ 含新版带curl的busybox镜像

前言: 可以使用 Kubernetes API 获取集群信息。使用 Service Account(SA)进行身份验证,可以以安全的方式访问 Kubernetes API,而无需在 Pod 中使用明文凭据。 以下是一个使用 Service Account 访问 Kubernetes API 获…

Selenium IDE 常见错误笔记

错误1:Failed:Exceeded waiting time for new window to appear 2000ms 这个错误通常出现在第一次运行时,有两个原因: Firefox阻止了弹出式窗口,在浏览器设置里允许这个操作即可。 有些网站设置了反扒机制,脚本运行…

数据库并发控制思维导图+大纲笔记

思维导图 大纲笔记 多用户数据库系统 定义 允许多个用户同时使用的数据库系统特点 在同一时刻并发运行的事务数可达数百上千个多事务执行方式 事务串行执行交叉并发方式 单处理机系统同时并发方式 多处理机系统事务并发执行带来的问题 产生多个事务同时存取同一数据的情况可能…

Group Query Attention (GQA) 机制详解以及手动实现计算

Group Query Attention (GQA) 机制详解 1. GQA的定义 Grouped-Query Attention (GQA) 是对 Multi-Head Attention (MHA) 和 Multi-Query Attention (MQA) 的扩展。通过提供计算效率和模型表达能力之间的灵活权衡,实现了查询头的分组。GQA将查询头分成了G个组&#…

Jammy@Jetson Orin - Tensorflow Keras Get Started: 000 setup for tutorial

JammyJetson Orin - Tensorflow & Keras Get Started: 000 setup for tutorial 1. 源由2. 搭建环境2.1 安装IDE环境2.2 安装numpy2.3 安装keras2.4 安装JAX2.5 安装tensorflow2.6 安装PyTorch2.7 安装nbdiff 3. 测试DEMO3.1 numpy版本兼容问题3.2 karas API - model.compil…

Docker命令总结

目录 一.Docker常用命令总结 1.镜像命令管理 2.容器命令管理 二.Docker镜像命令 1.docker search:搜索镜像 2.docker pull:下载镜像 3.docker push:上传镜像 4.docker images:查看本地镜像 5.docker inspect:…

李彦宏:程序员将不复存在! 周鸿祎回怼!网友:先把百度程序员都开除了!

近日,百度创始人、董事长兼首席执行官李彦宏在央视《对话》•开年说的访谈中指出:“基本上说以后其实不会存在“程序员”这种职业了,因为只要会说话,人人都会具备程序员的能力”。 “未来的编程语言只会剩下两种,一种…

Python 网络与并发编程(四)

文章目录 协程Coroutines协程的核心(控制流的让出和恢复)协程和多线程比较协程的优点协程的缺点 asyncio实现协程(重点) 协程Coroutines 协程,全称是“协同程序”,用来实现任务协作。是一种在线程中,比线程更加轻量级的存在,由程…

wstunnel (websocket模式ssh)

接上一篇 修改客户端运行参数 ssh -o ProxyCommand"./wstunnel client -L stdio://%h:%p ws://192.168.254.131:8080" 127.0.0.1 其中127.0.0.1为服务端的本地ssh访问,可以修改为通过服务端访问其他设备的ssh服务。例如: ssh -o ProxyComma…

C# 生成图形验证码

目录 应用场景 开发运行环境 设计 生成内容 生成图片 实现 核心代码 调用示例 小结 应用场景 我们当用户登录系统时经常会用到图形验证码技术,要求用户识别图片中的内容,并正确输入,方可尝试登录。类似的场景还有用户注册或者涉及…

C#带引导窗体的窗体设计方法:创建特殊窗体

目录 1.设计操作流程 2.实例 (1)Resources.Designer.cs (2)Frm_Main.Designer.cs (3)Frm_Main.cs (4)Frm_Start.Designer.cs (5)Frm_Start.cs &#…

Kubernetes:云原生时代的核心引擎

文章目录 一、Kubernetes简介:引领云原生潮流二、K8s的核心特性:自动化与智能化三、K8s的实践应用:打造高效云原生应用架构四、K8s的挑战与应对:安全与性能并重五、K8s的未来展望:无限可能与挑战并存《Kubernetes快速进…

【windows-搭建Ubuntu22LTS】

一、环境要求 1. windows版本要求 至少Windows 10 2020年5月(2004) 版, Windows 10 2019年5月(1903) 版,或者 Windows 10 2019年11月(1909) 版 2. 控制面板开启相关的程序(需要重启) 二、Microsoft store安装unbuntu 下载后直接运行(稍微等会&#…