当前位置: 首页 > news >正文

【Android】搭配安卓环境及设备连接

https://activity.csdn.net/writing?id=10904&spm=1001.2101.3001.8632
梦开始的地方,安卓开发,希望能坚持梳理整理好安卓各个知识块,能拥有自己的理解,并表达出来,一开始肯定做的不会尽善尽美,一起加油吧加油吧。在这里插入图片描述

一:Android 介绍

Android 最初是谷歌开发出来的操作系统,这一行现有的我知道的职业方向:应用层 APP 开发(做移动端安卓软件开发),系统层 FrameWork 开发(暂时不了解)、逆向开发(可以理解成逆向破解公司开发出来的安卓软件,然后正向再对公司的软件进行加固)、音视频开发(不了解,猜测涉及编解码比较多)…

二:Android系统架构

1:层级图

在这里插入图片描述

2:各层级分析

第一层:Android底层是基于Linux的内核,可以说是Linux的一个分支;

       Linux的优势:①开源②扩展性好③各大厂商的硬件都是基于Linux开发自己的驱动

第二层:因为驱动涉及商业机密(底层代码),所以就有了HAL硬件抽象层,可以理解成把Linux内核层丢出来的代码进行抽象, 包装一下

第三层:C和C++写的应用库和Android核心库

第四层:Java语言进行API封装,再一次进行简化

三:搭建Android开发环境

1:安装Android Studio

推荐访问AS的国内网站:https://developer.android.google.cn/studio?hl=zh-cn

2:创建项目

创建一个空的基础模版,其实就是一个布局文件,比如activity_main.xml

在这里插入图片描述

3:更新库

第一次启动会加载/下载很多包,其中gradle会超时,然后报错,

在这里插入图片描述

这个包需要我们手动下载和手动配置,注意gradle的版本号,最好使用国内镜像源去下载速度会更快(官方勿Q)

gradle下载地址:

gradle官网(可能会比较慢):https://services.gradle.org/distributions

腾讯云镜像:https://mirrors.cloud.tencent.com/gradle

阿里云镜像:https://mirrors.aliyun.com/macports/distfiles/gradle

下载完毕之后,放到这个路径下面,然后更新一下版本

在这里插入图片描述

在这里插入图片描述

4:版本号问题

后续还要更新版本如图修改安卓的版本号即可

在这里插入图片描述

四:连接Android设备

这里我们可以使用模拟器,有三种选择

①比如说mumu模拟器,雷神模拟器

②现实中自己的手机,后面会讲解具体如何USB投屏

③编译器提供的虚拟设备

1:创建模拟器

在这里插入图片描述

2:选择设备

在这里插入图片描述

在这里插入图片描述

3:模拟器启动!!!

兄弟太帅了!!!!到时候整个水果
在这里插入图片描述

4:运行项目初始程序

在这里插入图片描述

输出结果为以下视图(代码后续会分析)

在这里插入图片描述

我们还可以自己定义输出的文本内容,在activity_main.xml下

在这里插入图片描述

5:选择设备出现bug

配置模拟设备的时候出现的问题,80%不会遇见,这里可能是当前的windows系统有一些问题(不是很了解)

在这里插入图片描述

解决方法如下(重新更新一下)

取消勾选——>apply(卸载)——>在两个都勾上——>apply(下载)

不一定能解决问题,可以一试

在这里插入图片描述

五:真机调试

Android以及HarmonyOS NEXT版本之前的设备都可以调试,具体步骤如下:

以红米K70为例

  1. 进入设置页,找到“关于手机”或者“我的设备”
  2. 找到“系统版本号”,有的手机还需要选择“全部参数和信息”才能看到系统版本号
  3. 对着系统版本号信息持续快速的点击3-5次,就会提示打开开发者模式
  4. 返回到设置页,找到“开发者模式”,有的手机叫“开发者模式”
  5. 勾选“USB调试”,部分手机就可以直接开始调试代码
  6. 另外有的手机还需要下滑找到“USB配置”,更改为MIDI
  7. 有些手机还需要允许“应用安装”
http://www.dtcms.com/a/269658.html

相关文章:

  • 17-C#的socket通信TCP-1
  • 静态路由实验以及核心原理
  • 计算机网络第九章——数据链路层《局域网》
  • 裂变时刻:全球关税重构下的券商交易系统跃迁路线图(2025-2027)
  • 3.springboot2使用selenium(java8)
  • 多模态大语言模型arxiv论文略读(152)
  • 【LeetCode 热题 100】142. 环形链表 II——快慢指针
  • X00193-MASAC强化学习算法的多无人机协同路径规划
  • 一文讲清楚React中的key值作用与原理
  • PostgreSQL复制技术全解析:从物理复制到逻辑复制的实践指南
  • Ollama+OpenWebUI 0.42+0.3.35 最新版一键安装教程,解决手动更新失败问题
  • Swift 解 LeetCode 321:拼接两个数组中的最大数,贪心 + 合并全解析
  • WebSocket实战:打造实时在线聊天室
  • NealFun安卓版:创意无限,娱乐至上
  • 学习设计模式《十七》——状态模式
  • 干货分享 | TSMaster DBC编辑器操作指南:功能详解+实战示例
  • Spring Boot 事务失效问题详解:原因、场景与解决方案
  • Spring Boot + Easy Excel 自定义复杂样式导入导出
  • [Swarm] Result对象 | 智能体切换 | Response对象 | muduo review
  • Android.mk拷贝文件、文件夹
  • 5 种备份和恢复安卓短信的方法
  • 音频主动降噪技术
  • 快手播放量是什么意思?浏览量等于播放量吗
  • Spring注解驱动开发
  • Rust 的 Copy 语义:深入浅出指南
  • 广度优先与深度优先遍历核心逻辑理解及实践
  • Java零基础笔记07(Java编程核心:面向对象编程 {类,static关键字})
  • CompareFace人脸识别算法环境部署
  • 项目进度受外包团队影响,如何管控交付节奏
  • 原生屏幕旋转算法(AccelSensor)