• 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。 

  • 相关阅读:
    ab 性能测试工具的使用(Web并发测试)
    java 读取文件——按照行取出(使用BufferedReader和一次将数据保存到内存两种实现方式)
    java 判断两个时间相差的天数
    java 正则表达式的应用:读取文件,获取其中的电话号码
    mybatis 插入数据时返回主键
    CodeForces 493B Vasya and Wrestling 【模拟】
    图像边缘检測小结
    【JS设计模式】温习简单工厂模式、工厂方法模式、抽象工厂模式概念
    60.自己定义View练习(五)高仿小米时钟
    bzoj4361 isn
  • 原文地址:https://www.cnblogs.com/tomatokely/p/15976999.html
Copyright © 2020-2023  润新知