你好,Jetpack Compose

news2024/11/25 4:39:23

文章目录

  • 为什么选 Jetpack Compose
  • 先决条件
  • 新建项目
  • 新建虚拟设备
  • 运行项目

为什么选 Jetpack Compose

  • Jetpack Compose 是 Android 开发最新的、现代化的 UI 框架
  • 开发者几乎只需要使用 Kotlin 一门语言即可完成 App 开发(Java 是基础,有些源码是 Java 写的)
  • 更快的 UI 搭建和更简洁的代码
  • Jetpack Compose 与其他现代化的声明式 UI 具有同质性,例如 SwiftUI、Flutter、ArkUI,可举一反三

先决条件

Android Studio 下载

新建项目

  1. 打开 Android Studio,点击 New Project
    在这里插入图片描述
  2. 在模板页面选择 Empty Activity,并且是带有 Jetpack Compose 图标的,点击下一步
    在这里插入图片描述
  3. 将项目名称更改为 Compose(你可以根据你的喜好起名字,用英文字母),然后点击 Save Location 后边的文件夹,重新选一个路径,记得要把 Compose 重新加到路径上,它是以最后一个文件夹作为项目根。点击完成,最后等待 Gradle 同步完成即可,我们会得到一个初始的模板。
    在这里插入图片描述

新建虚拟设备

如果我们要运行项目,是需要连接真机或虚拟设备的,二选一即可。

Note:真机需要在手机的开发者选项中将调试打开,用充电线将电脑与手机连起来,并选择传输文件

  1. 点击侧边栏的 Divece Manager(一个手机图标,右下角是 Android 图标)。
    在这里插入图片描述
  2. 点击弹出界面上的加号 Add a new device,再点击弹出来的 Create Virtual Device
    在这里插入图片描述
  3. 选择设备型号(随你挑),点击下一步
    在这里插入图片描述
  4. 这里如果系统镜像都是灰色的,需要点击名字旁边的下载图标下载一个(点击后,选择 Accept,点击下一步)。选择好镜像后点击下一步
    在这里插入图片描述
  5. 点击完成即可。
    在这里插入图片描述
  6. 接着就会有一个新的设备,点击设备的播放键可以运行,而点击三个点的图标,里面有 Delete 可以删除设备。
    在这里插入图片描述

运行项目

  1. 当我们连接上设备后,顶栏上会有设备的名称,此时我们可以点击绿色播放按钮,将项目运行到设备上(设备第一次启动需要等待许久)。
    在这里插入图片描述
  2. 你可以尝试更改项目文件MainActivity.kt中第24行的Android为其他内容,再一次点击播放按钮(此时它是一个刷新的图标),并查看屏幕中文字的变化。
...
Greeting(
    name = "Compose for Android",
    modifier = Modifier.padding(innerPadding)
)
...

在这里插入图片描述
3. 好的,内容就到这里。现在,你已经半只脚踏进 Android 开发的大门了,虽然另外半只要进来可能不太容易。
说实话,新版本的虚拟设备那个假的摄像头影响到屏幕内容显示,强迫症犯了。

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

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

相关文章

SARscape5.6.2干涉叠加处理效率提升

SARscape5.6.2于2022年5月正式发布,包含若干更新和优化。干涉叠加处理模块在处理速度方面持续提升,表现在:PS干涉工作流处理、第一次反演和第二次反演优化,速度提升;SBAS处理干涉图生成和干涉图优化速度提升&#xff0…

《Windows API每日一练》3.3 更好效果的滚动条

本节讲述滚动条的复杂使用方法,以便达到更好的效果。Windows操作系统提供了两套机制,一套机制是使用默认的对象属性进行简单的操作,并提供简单便捷的API接口函数。另一套机制是用户可以自定义对象属性,实现自己想要的效果。本节我…

nodejs——原型链污染

一、引用类型皆为对象 原型和原型链都是来源于对象而服务于对象的概念,所以我们要先明确一点: JavaScript中一切引用类型都是对象,对象就是属性的集合。 Array类型、Function类型、Object类型、Date类型、RegExp类型等都是引用类型。 也就…

解决:selenium运行时driver初始化失败 DevToolsActivePort file doesn‘t exist的问题

解决:selenium运行时driver初始化失败 DevToolsActivePort file doesn‘t exist的问题 DevToolsActivePort file doesnt exist报错信息:![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/b3f8acc1c47d45e3912575896e421567.png)现象&#xff1…

细说MCU修改回调函数调用模式的方法

目录 1、硬件及工程 2、实现方法 (1)修改while(1)中的代码: (2)修改2 (3)修改3 (4)修改4 (5)修改5 3、下载并运行 在本文作者的文章中&a…

启动mysql 3.5时出现 MySql 服务正在启动 . MySql 服务无法启动。

有可能是端口冲突 netstat -ano | findstr :3306运行这段代码出现类似: 可以看到端口 3306 已经被进程 ID 为 6284 的进程占用。为了启动新的 MySQL 服务,我们需要停止这个进程或更改新服务的端口: 1、终止进程 taskkill /PID 6284 /F2、确…

ESP32 IDF ADF 加入音频

需要把mp3制作成音频bin 用ADF自带工具 果用户需要生成自己的 audio-esp.bin,则需要执行 mk_audio_bin.py 脚本(位于 $ADF_PATH/tools/audio_tone/mk_audio_tone.py),并且指定相关文件的路径。 源 MP3 文件在 tone_mp3_folder …

图像到3D模型的革命性转换

在数字艺术、虚拟现实和增强现实等领域,从二维图像生成三维模型一直是一个挑战。然而,随着技术的不断进步,我们迎来了一种全新的解决方案,它能够从单张正交RGB图像中快速、高效地生成具有极高保真纹理和精细几何细节的3D网格模型。 1、定位与意义: 该解决方案是一种前沿…

django学习入门系列之第二点《浏览器能识别的标签2》

文章目录 超链接图片小结往期回顾 超链接 当前界面跳转 <!-- href"网站" 默认是本界面跳转到其他网站--> <!-- a标签&#xff0c;一半用于超链接跳转 --> <a href"网站"> </a>跳转到其他的网站 <a href "需要跳转的网…

Vitis HLS 学习笔记--移除内存分配malloc

目录 1. 简介 2. 示例解析 2.1 源码解释 2.2 malloc 分析 2.3 替代方案分析 3. 总结 1. 简介 Vitis HLS 也不支持动态创建或删除 C/C 对象&#xff08;用于综合&#xff09;。 本文探究如何在C/C代码中避免使用显式的malloc函数来分配内存。在硬件设计和FPGA开发中&…

Git/TortoiseGit ssh client 配置

1. Git ssh client 配置 Git 默认的 ssh client 是 <Git 安装目录>/usr/bin/ssh.exe 修改方法为打开 Git Bash 执行&#xff1a; git config --global core.sshCommand "/C/Program Files/TortoiseGit/bin/TortoiseGitPlink.exe" 注意&#xff1a;如果路径…

opencv_特征检测和描述

理解特征 寻找独特的特定模式或特定特征&#xff0c;可以轻松跟踪和比较。 拼图&#xff1a;在图像中搜索这些特征&#xff0c;找到它们&#xff0c;在其他图像中查找相同的特征并对齐它们。而已。 基本上&#xff0c;角被认为是图像中的好特征。 在本单元中&#xff0c;我…

flutter 环境搭建(windows)(先装 jdk 建议1.8起步)

1&#xff1a;先从 官网 下载一个合适版本的SDK 2&#xff1a;下载完成之后 解压到一个合适的盘符下面&#xff08;本文在 D 盘 3.10.0版本&#xff09; 3&#xff1b;双击 flutter_console.bat文件可以看到一些基本信息 4&#xff1a;配置环境 1.添加用户变量 FLUTTER_STORAGE…

Hvv--知攻善防应急响应靶机--Linux1

HW–应急响应靶机–Linux1 所有靶机均来自 知攻善防实验室 靶机整理&#xff1a; 夸克网盘&#xff1a;https://pan.quark.cn/s/4b6dffd0c51a#/list/share百度云盘&#xff1a;https://pan.baidu.com/s/1NnrS5asrS1Pw6LUbexewuA?pwdtxmy 官方WP&#xff1a;https://mp.weixin.…

谷歌利用人工智能来推动搜索,显示出其组织信息的方式存在问题

谷歌利用人工智能来推动搜索&#xff0c;显示出其组织信息的方式存在问题 从相关文件到新闻报道、商业、音乐和社会互动&#xff0c;世界上的大部分信息现在都在网上。谷歌成立于1998年&#xff0c;其使命是“组织世界上的信息&#xff0c;使其普遍可用和有用”&#xff0c;它…

UML相关2

内容 说明 用例编号 UC-1 用例名称 客户注册 用例说明 客户参与者通过注册获得进入彬使用系统的权限 参与者 客户 前置条件 无 后置条件 系统正确接收用户信息并保存到数据库 基本路径 发布注册申请系统显示注册页面客户填写相应信息并提交注册成功后可以进行其…

PCL 点云最小二乘法拟合圆(二维)

文章目录 一、简介二、实现代码三、实现效果参考资料一、简介 不同于之前的迭代法,这里利用点到中心的平方长度和圆的平方半径之间差值进行拟合,误差模型如下所示: 基于E的梯度为零最小化误差模型,关于 r 2 r^2 r

C语言详解(预编译)

Hi~&#xff01;这里是奋斗的小羊&#xff0c;很荣幸您能阅读我的文章&#xff0c;诚请评论指点&#xff0c;欢迎欢迎 ~~ &#x1f4a5;&#x1f4a5;个人主页&#xff1a;奋斗的小羊 &#x1f4a5;&#x1f4a5;所属专栏&#xff1a;C语言 &#x1f680;本系列文章为个人学习…

【vue-8】记事本案例

小知识点&#xff1a; 列表末尾插入数据&#xff1a; list.push("lihua") 列表删除数据&#xff1a; # index要删除数据的索引值&#xff0c;1为删除数据长度 list.splice(index,1) 完整示例代码&#xff1a; <!DOCTYPE html> <html lang"en&quo…

Leetcode刷题笔记10

14. 最长公共前缀 14. 最长公共前缀 - 力扣&#xff08;LeetCode&#xff09; 首先&#xff0c;检查边界条件 如果输入的字符串数组为空&#xff0c;直接返回空字符串。 然后使用minmax_element函数找到数组中字典序最小和最大的字符串。 因为公共前缀一定会出现在字典序最…