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。 

posted @ 2022-03-07 17:42  番茄玛丽  阅读(494)  评论(0编辑  收藏  举报