一、前置知识

一、前置知识

1、发展历程

介绍:

  • Android之父:Andy Rubin
  • Android起源:基于Linux内核
  • 所属公司:Google
  • 第一部安卓手机:HTC
  • 所属设备:手机、平板、车载等
  • Android开发语言:JVM语言(Java、Kotlin)

2、配置环境

安装Android Studio:

  • 记得勾选Android Virtual Device,然后一直next即可
  • 默认安装C盘,如果需要安卓其他盘,请自行更改目录

配置Android Studio:

  • 首次打开,选择自定义安装Customer Installer,可以自定义安装目录
  • 其他点Next即可,碰到License Agreement,需要手动点击每个license,手动选择Accept
  • 然后一直Next,等待下载完成

创建第一个项目:

  • New Project —> Phone and Tablet —> Empty Activity(默认kotlin) / Empty Views Activity(默认kotlin,可以修改为Java)
  • 根据需要自行修改:
  • 项目名、包名、保存位置、SDK版本(API版本-安卓系统版本)、编译配置

在这里插入图片描述
在这里插入图片描述

创建安卓虚拟机:

  • 右侧Device Manager创建虚拟机,选择机器和版本,创建完成点击运行即可

在这里插入图片描述
在这里插入图片描述

真机调试:PC与Android OS通过Android Debug Bridge进行通信

  • 打开手机:开发者选项 —> USB调试
  • 插上数据线连接手机和电脑:选择传输类型 - 传输文件/Android Auto
  • 根据提示,点击确定允许USB调试
  • Android Auto选择真机,点击运行,手机安卓发布的app,即可

在这里插入图片描述

在这里插入图片描述

3、项目结构

APP项目
app
Gradle
java
res
manifests
build.gradle
proguard-ruls.pro
gradle.propeties
setting.gradle
local.properties

app目录:

  • java目录:存放Java源代码
  • res目录:存放静态资源(常量定义文件、应用名、布局、图标、主题)
  • manifests子目录:存放XML-清单文件,AndroidManifest.xml,是App的运行配置文件

Gradle目录:

  • proguard-rues.pro:该文件用于描述Java代码的混淆规则,防止源代码被反编译篡改泄漏
  • build.gradle:该文件分为项目级与模块级两种,用于描述App工程的编译规则,引用了哪些插件、依赖,打包时,去哪个仓库下载对应的依赖。
  • settings.gradle:该文件配置了需要编译哪些模块。初始内容为include':app' ,表示只编译app模块,
  • gradle.properties:该文件用于配置编译工程的命令行参数,一般无须改动。
  • local.properties:项目的本地配置文件,它在工程编译时自动生成,用于描述开发者电脑的环境配置,包括SDK的本地路径、NDK的本地路径等。

  • build.gradle配置文件注释:

    // 应用插件声明,指定项目类型为 Android 应用
    plugins {id 'com.android.application'
    }// Android 配置块,用于配置 Android 项目的构建和属性
    android {// 定义项目的命名空间namespace 'com.example.myapplication'// 指定编译的 Android SDK 版本compileSdk 34// 默认配置块,包含应用程序的基本设置defaultConfig {// 应用程序的唯一标识符applicationId "com.example.myapplication"// 最小支持的 Android 版本minSdk 33// 目标 Android 版本targetSdk 34// 应用程序的版本代码,用于区分不同的应用程序版本versionCode 1// 应用程序的版本名称,显示在应用商店等地方versionName "1.0"// 指定测试运行器testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"}// 构建类型配置块,定义不同构建类型的设置buildTypes {release {// 是否启用代码缩小(minification)minifyEnabled false// 指定 Proguard 配置文件,用于代码混淆和优化proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'}}// 编译选项配置块,指定源代码和目标代码的兼容性compileOptions {sourceCompatibility JavaVersion.VERSION_1_8targetCompatibility JavaVersion.VERSION_1_8}
    }// 依赖声明块,指定项目所需的外部库和依赖关系
    dependencies {// AndroidX AppCompat 库,提供向后兼容性支持implementation 'androidx.appcompat:appcompat:1.6.1'// Material Design 库,提供现代的 UI 设计元素implementation 'com.google.android.material:material:1.9.0'// ConstraintLayout 库,用于灵活而复杂的布局implementation 'androidx.constraintlayout:constraintlayout:2.1.4'// 单元测试 JUnit 库,用于编写和运行单元测试testImplementation 'junit:junit:4.13.2'// Android 测试扩展库,提供额外的测试功能androidTestImplementation 'androidx.test.ext:junit:1.1.5'// Espresso UI 测试库,用于编写可读性强的 UI 测试androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1'
    }
  • AndroidManifest.xml清单文件注释

    <?xml version="1.0" encoding="utf-8"?>
    <!-- Android 清单文件,定义应用程序的基本信息和配置 -->
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"><!-- 应用程序的主体部分 --><application<!-- 允许备份应用数据 -->android:allowBackup="true"<!-- 指定数据提取规则 -->android:dataExtractionRules="@xml/data_extraction_rules"<!-- 指定全备份规则 -->android:fullBackupContent="@xml/backup_rules"<!-- 应用程序的图标 -->android:icon="@mipmap/ic_launcher"<!-- 应用程序的名称 -->android:label="@string/app_name"<!-- 圆形图标 -->android:roundIcon="@mipmap/ic_launcher_round"<!-- 支持 RTL(Right To Left)文字排列顺序布局 -->android:supportsRtl="true"<!-- 应用程序的主题 -->android:theme="@style/Theme.MyApplication"<!-- 工具属性,指定目标 API 版本为 31 -->tools:targetApi="31"><!-- Activity是一个应用程序组件,提供一个屏幕,用户可以用来交互完成任务--><activity<!-- 活动的类名 -->android:name=".MainActivity"<!-- 是否允许其他应用启动该活动 -->android:exported="true"><!-- 活动的意图过滤器 --><intent-filter><!-- 指定活动为主要入口点 --><action android:name="android.intent.action.MAIN" /><!-- 指定活动为启动器 --><category android:name="android.intent.category.LAUNCHER" /></intent-filter></activity></application></manifest>
    

4、界面显示和逻辑处理

Android使用:XML描绘应用界面,Java代码书写程序逻辑

  • XML类似于HTML,Java类型与JS

  • 好处:把App的界面设计与代码逻辑分开,进行解耦

    1. 使用XML文件描述APP界面,可以很方便地在Android Studio上预览界面效果。
    2. 一个界面布局可以被多处代码复用,反过来,一个Java代码也可能适配多个界面布局。
  • 默认:

    <?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"><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="Hello World!"app:layout_constraintBottom_toBottomOf="parent"app:layout_constraintEnd_toEndOf="parent"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toTopOf="parent" /></androidx.constraintlayout.widget.ConstraintLayout>
    

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

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

相关文章

ChatGPT付费创作系统V2.5.8独立版+前端

小狐狸ChatGPT付费创作系统V2.5.8版本最大特点新增PC端绘画功能全新升级。该版本为编译版无开源&#xff0c;本版本同样处理了后台弹窗、暗链网址。单独制作了2.5.5升级至2.5.8数据库升级包及升级文件&#xff0c;直接导入即可使用。本版本升级后唯一BUG后台绘画功能新增的翻译…

数据仓库(3)-模型建设

本文从以下9个内容&#xff0c;介绍数据参考模型建设相关内容。 1、OLTP VS OLAP OLTP&#xff1a;全称OnLine Transaction Processing&#xff0c;中文名联机事务处理系统&#xff0c;主要是执行基本日常的事务处理&#xff0c;比如数据库记录的增删查改,例如mysql、oracle…

基于Java SSM框架实现智能停车场管理系统项目【项目源码+论文说明】计算机毕业设计

基于java的SSM框架实现智能停车场管理系统演示 摘要 本论文主要论述了如何使用JAVA语言开发一个智能停车场管理系统&#xff0c;本系统将严格按照软件开发流程进行各个阶段的工作&#xff0c;采用B/S架构&#xff0c;面向对象编程思想进行项目开发。在引言中&#xff0c;作者将…

【Colorful】 —— 图片、素材网站推荐

以匠心打磨每一处&#xff0c;造就臻品。 pixabay ——高质量图片素材网站&#xff0c;设计师精选 https://pixabay.com/zh/ unDraw ——免费无版权商务插画网站 Illustrations | unDraw mixkit —— 免费高质量视频、音频 iconfont —— 阿里巴巴矢量图标库 iconfont-阿里…

力扣hot100 二叉树中的最大路径和 递归

Problem: 124. 二叉树中的最大路径和 文章目录 解题方法复杂度&#x1f496; Code 解题方法 &#x1f468;‍&#x1f3eb; 参考思路 复杂度 时间复杂度: O ( n ) O(n) O(n) 空间复杂度: O ( n ) O(n) O(n) &#x1f496; Code /*** Definition for a binary tree no…

前端公共组件库优化

背景 前段时间入职了新公司后&#xff0c;做一些内部前端基建的工作&#xff0c;其中一个工作就是优化现有的frontend-common公共组件库。之前的组件库一直是以源码依赖的形式存在&#xff0c;即各个项目通过git submodule的方式将该仓库引入到各个项目中&#xff0c;作为一个…

部署配置zabbix监控平台(server端)

目录 引言&#xff1a;明人不说暗话&#xff0c;分享一下部署配置zabbix监控平台的详细过程 1.进入官网 2.进入下载页面选择需要下载的版本信息 &#xff08;案例zabbix5.0&#xff09; 划到下面有安装的过程&#xff0c;下面我详细讲解一下这些步骤 3、安装Zabbix存储库 …

【Ubuntu18.04安装Labelme】

Ubuntu18.04安装Labelme 1 安装Anaconda并创建conda环境2 安装依赖3 安装Labelme4 安装验证 1 安装Anaconda并创建conda环境 Anaconda3安装教程&#xff1a;https://blog.csdn.net/dally2/article/details/108206234 "ctrlaltt"快捷键打开终端&#xff0c;创建conda…

20240117在本地机器识别OCR法语电影的字幕效果PK

20240117在本地机器识别OCR法语电影的字幕效果PK 2024/1/17 11:18 1959 - Jirai Cracher Sur Vos Tombes [Gast, Vian].avi https://www.pianbar.net//drama/52892.html 1959[我唾弃你的坟墓]Jirai cracher sur vos tombes[BT下载/迅雷下载] magnet:?xturn:btih:7c9c99d9d048…

【昕宝爸爸小模块】深入浅出之针对大Excel做文件读取问题

➡️博客首页 https://blog.csdn.net/Java_Yangxiaoyuan 欢迎优秀的你&#x1f44d;点赞、&#x1f5c2;️收藏、加❤️关注哦。 本文章CSDN首发&#xff0c;欢迎转载&#xff0c;要注明出处哦&#xff01; 先感谢优秀的你能认真的看完本文&…

vue:处理base64格式文件pdf、图片预览

一、需求&#xff1a;后端返回是base64数据&#xff0c;需要前端处理来展示文件。 二、实现方法&#xff1a; 解释一下这段代码的功能&#xff1a; &#xff09;preview(item) 是一个函数&#xff0c;接受一个参数 item&#xff0c;其中包含了文件的相关信息。 &#xff09;首…

rust跟我学五:是否安装双系统

图为RUST吉祥物 大家好,我是get_local_info作者带剑书生,这里用一篇文章讲解get_local_info是怎么得到检测双系统的。 首先,先要了解get_local_info是什么? get_local_info是一个获取linux系统信息的rust三方库,并提供一些常用功能,目前版本0.2.4。详细介绍地址:[我的Ru…