跳到主要内容

安卓应用开发 寒枫

settings -> gradle -> jdk

as环境配置

Android Studio 安装配置教程 - Windows(详细版)-CSDN博客

android sdk检测:跳过

unable to access android sdk add-on list解决方案-CSDN博客

配置gradle下载国内镜像源

解决AS Could not install Gradle distribution from ‘https://services.gradle...Connect timed out的异常_unexpected exception while resolving gradle distri-CSDN博客

在gradle/wrapper/gradle-wrapper.properties文件配置distributionUri

阿里云: https://mirrors.aliyun.com/gradle/
腾讯云: https://mirrors.cloud.tencent.com/gradle/
官网:https://services.gradle.org/distributions/
阿里云:https://mirrors.aliyun.com/macports/distfiles/gradle/

使用Gemini

开梯子后,要修改AS的settings中的HTTP PROXY,本机127.0.0.117890(本机连接代理服务器的端口)

关闭代理 Windows:C:\Users<你的用户名>.gradle\gradle.properties 删除相关配置

手机虚拟机调试:直接启动即可,也可以创建新的虚拟设备,选择Android版本(需要安装相应SDK

手机真机调试:SDK 下载 googleUSBdriver,手机开启开发者模式

Logcat 窗口中查看 adb 输出和设备日志消息。

目录及含义

res:包含所有非代码资源,例如界面字符串和位图图像

values: 应用基本信息

drawable: 存放图标等图片文件。如果是 SVG 图标放在 res/drawable/ 目录中,Android Studio 会自动将其转换为矢量图

resource manager 可以用来管理资源,将svg图转为xml

在AndroidManifest修改应用基本信息(从哪里读取或者直接给值)

mipmap 只是用来放置应用程序的icon的

Android 10+(API 29 及以上),由于 Scoped Storage 机制,应用无法直接通过 FileProvider 访问 filesDir 目录

Gradle构建系统

依赖管理

项目的依赖项在模块级(Module)构建脚本中按名称指定。Gradle 会查找依赖项,并在 build 中提供这些依赖项。

build.gradle.kts 文件中声明模块依赖项、远程二进制依赖项以及本地二进制依赖项。

Android Studio 配置项目时默认使用 Maven 中央制品库。该配置包含在项目的顶级 build 文件中。

MVVM架构

ViewModel用于封装业务逻辑

Fragment用于控制UI变化

可以增加功能类

服务器发送json -> Android接收json -> json转实体)

Activity

id必须唯一,用id关联组件

as可以切换视图:code和design

LiveData。 主要作用:通知Observe类将最新数据传递给渲染方法(和Vue里的双向绑定v-model有异曲同工之妙),实体类里通过postValue(this)监听数据变化

Fragment是Android系统提供的一种可重用的UI组件,它能够作为活动(Activity)的一部分,具有自己的生命周期,并且可以在多个Activity中使用

ViewModel是Android架构组件库中的一个核心类,用于存储和管理UI相关的数据。它的主要目的是分离视图(View)和数据,使得数据能够在配置变更(如屏幕旋转)时保持,避免了因Activity或Fragment重建而导致的数据丢失问题。ViewModel的生命周期独立于UI控制器(Activity或Fragment),确保了数据的持久性。此外,ViewModel还可以与LiveData等组件结合使用,实现数据变化的自动通知,简化了UI更新的逻辑。

  • 变量名:ANDROID_SDK_HOME
  • 变量值:.android 文件夹的新完整路径(例如:D:\Android\Config,注意路径不要包含中文 / 空格)。

UI

ConstrainLayout

dp类似网页的em

px:对应屏幕上的 实际像素点。

dip(dp):设备独立像素,一种基于屏幕密度的抽象单位,在每英寸 160 点得显示器上,1dip = 1px,但随着屏幕密度的改变,dip 与 px 的换算会发生改变。因为 不同设备中有不同的显示效果,所以 为了解决在不通分辨率手机上运行不至于相差太大的问题,引入了 dip 计量单位,这种计量单位与移动设备硬件无关。

sp:全名 scaled pixels-best for text size,放大像素(比例像素),与刻度无关,可以根据用户的字体大小首选项进行缩放,主要用来处理字体的大小

迁移AndroidStdio

复制.android文件夹到D盘,回到原来C盘中的文件夹,进入以下路径:C:\Users\用户名\android\avd,找到.ini后缀的文件,右击使用记事本打开,将path=后修改为新路径,之后保存,由于.gradle文件夹的位置已经完全改过来了,所以C盘中的.gradle文件夹可以直接删除。

打包

Android Studio 打包APK(详细版)_as打包apk-CSDN博客

Build→Generate Signed Bundle / APK

存放在D:/AsAPKSign hanphonechat 密码h17285

Android studio 创建的 AVD 突然无法启动

 点击启动按钮弹窗提示模拟器终止之类的提示框:xxxx terminal,没有其他错误提示了。而且这种情况是不是必现,重启电脑后有时候无法启动,有时候又可以启动。 有可能是因为Hyper-V占用端口,重启 winnat 服务先执行net stop winnat 再执行 net start winnat