Android Studio(一)安装、配置、目录、gradle、日志、Activity
一、安装配置环境
安装JDK:参考 JAVA开发环境配置
安装Android Studio:参考https://www.runoob.com/android/android-studio-install.html
------------------------------------------------------------------------------------------------------------------------------------
二、目录结构
.gradle:Gradle编译系统
.idea:Android Studio IDE 所需文件
app:代码、资源
gradle:wrapper的jar和配置文件
.gitignore:git使用的ignore文件
build.gradle:gradle编译的配置文件(类似Makefile)
gradle.properties:gradle全局设置
local.properties:指定本机Android SDK路径,自动生成。
settings.gradle:指定项目中所有引入模块,自动生成。
用于在命令行界面执行gradle命令,第一个是Linux/Mac,第二个是在Windows使用。
1)app子目录结构:
build:编译后文件位置,包括apk
libs:依赖库,第三方jar包(会被自动添加到构建路径)
src:源代码
proguard-rules.pro:指定项目代码的混淆规则。
2)src子目录结构:
androidTest:用来编写Android Test测试用例,可以自动化测试。
java:放置所有java&Kotlin代码
AndroidManifest.xml:整个Android项目的配置文件,四大组件要在这个文件里注册,还可以给APP添加权限声明。
test:编写 Unit Test测试用例的。
3)res的子目录结构:
drawable开头:放图片
mipmap开头:放应用图标,如果没有我们应该自己创建,给一张图片提供不同分辨率的版本,运行时会自动选择加载哪个。
values开头:放字符串、样式、颜色等配置
layout开头:放布局文件
----------------------------------------------------------------------------------------
三、详解build.gradle文件
最外层build.gradle:
respositories内声明了代码托管仓库。
classpath:声明了Gradle插件。
app下的build.gradle:
第一行:应用插件,com.android.application 应用程序模块,可以直接运行; com.android.library 库模块,依附于应用程序模块运行。
Android闭包:
compileSdkVersion 指定项目编译版本
- buildToolsVersion 项目构建工具版本
- defaultConfig闭包:
- applicationId 指定项目包名
- minSdkVersion 项目最低兼容版本
- targetSdkVersion 指定目标版本
- versionCode 项目版本号
- versionName 项目版本名
- buildTypes闭包: 指定生成安装文件的相关配置,两个子闭包 debug & release
- minifyEnabled:是否对项目代码混淆
- proguardFiles:指定混淆规则文件
- dependencies闭包:指定当前项目所有依赖关系(本地依赖、库依赖、远程依赖)
- 第一行:表示把所有.jar后缀文件添加到项目构建路径中
---------------------------------------------------------------------------------------
四、日志工具
类名:android.util.Log
(重要性依次递增)
Log.v() 级别最低
Log.d() 打印调试信息
Log.i()
Log.w() 打印警告信息
Log.e() 打印错误信息
两个string类参数:第一个用于信息过滤,一般是类名;第二个是msg,具体打印内容。
---------------------------------------------------------------------------------------
五、Activity
创建:Generate Layout File选项会自动创建对应布局文件
Launcher Activity 设置为当前项目主活动
设计:Android程序的设计讲究逻辑和视图分离,最好每一个Activity都能对应一个布局。
底层调用:Android是使用任务(task)来管理Activity的,一个任务就是一组存放在栈里的Activity的集合,这个栈也被称作返回栈(back stack)。
每当我们按下Back键或调用finish()方法去销毁一个Activity时,处于栈顶的Activity就会出栈,前一个入栈的Activity就会重新处于栈顶的位置。 系统总是会显示处于栈顶的Activity给用户。
启动模式:4种模式,在AndroidManifest.xml中通过<activity>标签指定android:launchMode。
- standard:对于使用standard模式的Activity,系统不会在乎这个Activity是否已经在返回栈中存在,每次启动都会创建一个该Activity的新实例。
- singleTop:在启动Activity时如果发现返回栈的栈顶已经是该Activity,则认为可以直接使用它,不会再创建新的Activity实例。
- singleTask:每次启动该Activity时,系统首先会在返回栈中检查是否存在该Activity的实例,如果发现已经存在则直接使用该实例,并把在这个Activity之上的所有其他Activity统统出栈,如果没有发现就会创建一个新的Activity实例。
- singleInstance:会有一个单独的返回栈来管理这个Activity,不管是哪个应用程序来访问这个Activity,都共用的同一个返回栈,也就解决了共享Activity实例的问题。
生命周期:
回调 | 描述 |
onCreate() | 活动第一次创建时调用,完成初始化操作,加载布局、绑定事件 |
onStart() | 活动为用户可见时被调用 |
onResume() | 应用程序与用户开始可交互的时候调用 |
onPause() | 当前活动将要被暂停,上一个活动将要被恢复时调用 |
onStop() | 当活动不在可见时调用 |
onDestroy() | 当活动被系统销毁之前调用 |
onRestart() | 当活动被停止以后重新打开时调用 |
启动APP时调用:onCreate -> onSDtart -> onResume
离开当前页面时,如果半遮挡状态,则调用onPause();全遮挡则调用当前页面的onPause()和onStop().
返回当前页面时调用:onRestart -> onStart -> onResume
退出程序时调用:onPause() -> onStop -> onDestory
注意:活动被停止的时候,内存不足,系统会回收该活动。
怎么防止回收?
重写onSaveInstanceState。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架