安卓应用开发(一):工具与环境

开发工具

Android Studio,用于开发 Android 应用的官方集成开发环境 (IDE)。包括以下功能:

  • 基于Gradle的构建系统
    • gradle是一个项目构建工具,将源工程打包构建为apk
  • 安卓模拟器
  • 统一环境
  • 代码编辑+模拟器实时更新
  • Github集成
  • Lint功能,可以用于性能,兼容性等问题检测
  • C++和NDK支持
  • 支持谷歌云平台,可以继承谷歌云消息和AppEngine
    安装方式:
    官网下载,打开,安装,accept协议,然后一直next到底。
    需要注意一点就是要设置一下国内代理:
    使用清华镜像站:mirrors.tuna.tsinghua.edu.cn
    一般第一次打开就会提示设置代理,如果没有提示就在setting里面找,直接搜proxy就有
    在这里插入图片描述

使用方式:
傻瓜式,根据按钮名称按就行,新建项目有很多项目模板,第一个项目可以选Empty Compose Activity,可以用它来构建 Compose 应用。这个模板只有一个屏幕。
跟着按键名称按,直到下面这一步,然后点击finish:
在这里插入图片描述
整体结构和JetBrains家的IntelliJ IDEA很像,因为本来就是基于 IntelliJ IDEA开发的
在这里插入图片描述
Android Studio的主要界面为:代码界面和设计界面(设计界面就和Qt的Designer一样,是为了让程序员直观看到应用界面)
在这里插入图片描述

项目结构

  • Android应用模块
  • 库模块
  • Google App Engine 模块

Android Studio中的项目视图默认是项目逻辑视图
在这里插入图片描述
实际上存储是这样的结构,可以点击箭头所指地方改变视图:
在这里插入图片描述
最常用的视图还是项目逻辑视图

编程语言

安卓开发最常用的语言是Java和Kotlin,Kotlin代码文件的后缀是kt,程序的入口是main,但是在安卓开发中,程序的入口是onCreate()函数。

class MainActivity : ComponentActivity() {override fun onCreate(savedInstanceState: Bundle?) { //程序入口super.onCreate(savedInstanceState)......}
}@Composable //这个称为注解,语法是@+注解名,可以理解为给函数添加一些信息
//相关资料:https://juejin.cn/post/6959860379652456484
fun Greeting(name: String) {Text(text = "Hello $name!")
}

为了及时展示效果,可以使用Preview注解,实现一个预览函数,这个函数可以不需要构建整个应用就可以查看外观

@Preview(showBackground = true)
@Composable
fun DefaultPreview() {GreetingCardTheme {Greeting("Meghan")}
}

虚拟设备

Android studio提供了虚拟安卓设备,方便开发
在工具栏的tool里面有一项Device manager,点开就可以配置一个虚拟设备,可以选择手机型号,手机系统版本,系统版本号边上有个下载按钮,可以点击下载系统镜像。
选完系统镜像后还可以配置横屏竖屏,然后点击完成
在这里插入图片描述
现在上面就会显示你的设备了,就可以直接点击边上的运行按钮运行了,之前点的话就会提示没有目标设备。

顺便歪一下,这个虚拟设备的底层是使用qemu实现的,世界闭环了!

运行效果:
在这里插入图片描述

连接手机

手机打开开发者模式,然后连上电脑,设备那一栏就会显示你的手机,然后点run就行了,APP就会发到手机,需要手动安装,然后会自动启动。

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

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

相关文章

4+1视图,注意区分类图与对象图

注意区分类图和对象图。对象图标记的是对象名,命名形式 对象名:类名,或者:类名。这里没有出现冒号,表示的是类图。 对象图(object diagram)。 对象图描述一组对象及它们之间的关系。对象图描述了在类图中所建立的事物实例的静态快照。和类图一…

数据结构十一:数组相关经典面试题

本篇博客详细介绍分析数组/顺序表常见的面试题,对于前面所学知识进行一个巩固,同时介绍一些力扣刷题中的一些概念:如:输出型参数等,在刷题中培养自己的编程思维,掌握常见的编程套路,形成题感&am…

嵌入式Linux学习第二天

今天学习linuxC编程。首先要熟悉linux下编写c程序的过程。 编写程序Hello World! 首先创建存放程序的文件夹,如下图所示: 接下来在创建一个文件夹来保存这节要编写的代码。指令:mkdir 3.1 接下来我们要设置VIM编辑器的一些配置&#xff0…

自定义类型②③——联合体和枚举

自定义类型②③——联合体和枚举 1.联合体1.1 联合体类型的声明1.2 联合体的特点1.3 相同成员结构体和联合体的对比1.4 联合体大小的计算1.5 联合体的应用①1.5 联合体的应用② 2. 枚举2.1 枚举类型的声明2.2 枚举类型的特点2.3 枚举的优点 1.联合体 1.1 联合体类型的声明 关…

【C语言】高质量选择题

目录 题目一: 题目二: 题目三: 题目四: 题目五: 题目六: 题目七: 题目八: 题目九: 题目十: 题目十一: 题目十二: 题目十…

腾讯地图商业授权说明一篇文章讲清楚如何操作

最近在使用腾讯地图,发现我要上架应用商店APP需要我有地图的授权书。 认真研究了一下原来腾讯地图现在要收费了,如果你打算以商业目的使用它,比如对第三方用户收费或者进行项目投标等,就需要先获取腾讯位置服务的商业授权许可。申…

Netty核心线程模型源码分析

文章目录 一、Netty线程模型简介二、Netty线程模型源码分析1. 服务端源码分析 一、Netty线程模型简介 Netty的线程模型图如下所示: 具体细节看这篇博客 二、Netty线程模型源码分析 1. 服务端源码分析 首先我们在写Netty服务端程序的时候最开始是下面两句代码&a…

Vue中Element的下载

打开vscode让项目在终端中打开 输入npm install element-ui2.15.3 然后进行下载 在node_modules中出现element-ui表示下载完成 然后在输入Vue.use(ElementUI); import Vue from vue import App from ./App.vue import router from ./router import ElementUI from element-ui…

基于树的时间序列预测(LGBM)

在大多数时间序列预测中,尽管有Prophet和NeuralProphet等方便的工具,但是了解基于树的模型仍然具有很高的价值。尤其是在监督学习模型中,仅仅使用单变量时间序列似乎信息有限,预测也比较困难。因此,为了生成足够的特征…

Day62:单调栈 LeedCode503. 下一个更大元素 II 42. 接雨水

503. 下一个更大元素 II 给定一个循环数组 nums ( nums[nums.length - 1] 的下一个元素是 nums[0] ),返回 nums 中每个元素的 下一个更大元素 。 数字 x 的 下一个更大的元素 是按数组遍历顺序,这个数字之后的第一个比它更大的数…

【从零开始学架构 前言】整体的学习路线

本文是《从零开始学架构》的第一篇学习笔记,在工作6年左右的这个时间点需要有一些先行的理论来指导即将面临的复杂实践,以便在真正面临复杂实践的时候能有所参照。 主要从以下几个方面和顺序来进行学习 架构基础:从架构设计的本质、历史背景…

【Leetcode 42】 接雨水

基础思路: (1)需要将问题最小化,首先计算第i个位置最多容纳多少雨水(细长的一条水柱),然后求和就是总的雨水量; (2)第i个位置容纳雨水量 min(左侧最高, 右…

计算机组成结构—高速缓冲存储器(Cache)

目录 一、Cache的基本工作原理 1.Cache工作原理 2.命中率 3.Cache的基本结构 4.Cache的改进 二、Cache和主存之间的映射方式 1.直接映射 2.全相联映射 3.组相联映射 三、Cache中主存块的替换算法 四、Cache的写策略 概为了解决 CPU 和主存之间速度不匹配的问题&#x…

达梦主从数据库实例恢复

测试环境:实时主备数据库 1、在节点1向测试表aaa插入数据 如图可见,会话139695153554808向aaa表插入了10000行数据。事务id460520。 2、提交前在另一个窗口kill掉dmserver进程。 3、查看节点2的数据库日志 上图可见,系统执行alter database…

Docker网络基础

简介 Docker 本身的技术依赖于近年来 Linux 内核虚拟化技术的发展,Docker 对 Linux 内核的特性有很强的依赖。Docker 使用到的与 Linux 网络有关的主要技术有:网络命名空间、veth 设备对、网桥、ipatables 、路由。 网络命名空间 为了支持网络协议栈的多个实例,Linux在网络栈…

2024广州高端房产/留学移民/海外院校/国际教育展

2024广州海外置业移民留学展览会 The 7th Guangzhou Overseas Real Estate Immigrant Study Exhibition 2024年7月27日-28日 27th-28th July, 2024 广州保利世贸博览馆(海珠区新港东路1000号) Guangzhou Poly World Trade …

锂电池SOH估计 | Matlab实现基于ALO-SVR模型的锂电池SOH估计

目录 预测效果基本介绍程序设计参考资料 预测效果 基本介绍 锂电池SOH估计 | Matlab实现基于ALO-SVR模型的锂电池SOH估计 蚁狮优化支持向量机锂电池健康状态SOH估计; 具体流程如下; 1、分析锂离子电池老化数据集,从中选取具有代表电池性能衰减…

dumpsys meminfo 流程中细节

源码基于:Android U 参考: dumpsys meminfo 详解(R) dumpsys meminfo 详解(U) 1. 命令入口 MemBinder frameworks/base/services/core/java/com/android/server/am/AMS.javastatic class MemBinder extends Binder {ActivityManagerService mActivity…

python 中如何匹配字符串

python 中如何匹配字符串? 1. re.match 尝试从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,match()就返回none。 import re line"this hdr-biz 123 model server 456" patternr"123" matchObj re.matc…

一键安装Halo DB

说明 这里说的一键其实分了好几步,是我将安装步骤分解。你可以把它们放在一个shell中或者串起来就是一键了。 易景科技的数据库 羲和 (Halo DB) 我之前的一位朋友(章晨曦)创立的数据库公司。以前看他朋友圈说他做数…