Android开发(一)——认识第一个项目

认识第一个Android项目

文件组成

  1. .gradle和.idea

    这两个目录下是android studio自动生成的一些文件,我们无须关心,也不要手动编辑

  2. app

    项目中的代码、资源等内容几乎都是放置在这个目录下的,我们后面的开发工作也基本在这个目录下进行的

  3. build

    这个目录无需关心,主要包含了一些编译时会自动生成的文件

  4. gradle

    目录包含了gradle wrapper的配置文件,使用gradle wrapper的方式不需要提前将gradle下载,如需启用gradle wrapper,可以在File -> Settings -> Build,Execution ,

    Deployment -> Gradle

  5. .gitignore

    这个文件是用来指定的目录或者文件排除在版本控制之外的

  6. build.gradle

    这是项目全局的gradle构建脚本,通常这个文件的内容不需要修改。

  7. gradle.properties

    这个是全局的gradle配置文件,在这里配置的属性将会影响到项目中的所有gradle编译脚本。

  8. gradlew 和 gradlew.bat

    这两个文件是用来命令行界面中执行的gradle命令的,其中gradlew是在linux或者Mac系统中使用的,gradlew.bat是在windows中使用的

  9. HelloWorld.iml

    iml文件是所有IDEA项目都会自动生成的文件,不需要修改

  10. local.properties

    这个文件用于指定本机的SDK路径,通常都是自动生成的,我们并不需要修改。

  11. settings.gradle

    这个文件用于指定项目中的所有引入模块。通常情况的模块引入都是自动完成的,需要我们手动引入的情况较少

app文件组成

  1. build

    这个目录与外层的build类似,主要是包含了一些在编译时自动生成的文件,不过文件内容会更加的复杂

  2. libs

    如果项目引入了第三方jar包,就需要把这些jar包都放在libs目录下,放在这个目录下的jar包都会被添加进去

  3. androidTest

    此处用来编写Android Test 测试用例,可以对项目进行一些自动化测试

  4. java

    放置我们所有java代码的地方

  5. res

    所有用到的图片、布局、字符串等资源都要放在这个目录下。

  6. AndroidMainifest

    整个Android项目的配置文件,程序中定义的四大组件都需要在这个文件里注册,另外还需要在这个文件中添加权限申明。

  7. test

    用来编写Unit Test 测试用例,是对项目自动化测试的另一种方式

  8. .gitignore

    用于将指定的目录或者文件排除在版本控制之外,作用与外部的.gitignore相似

  9. app.iml

    IDEA项目自动生成的文件,我们不关心或者修改这个文件中的内容。

  10. build.gradle

    这是项目全局的gradle构建脚本,这个文件有许多的项目相关配置。

  11. proguard-rules.pro

    这个文件用于指定项目代码的混淆规则,当代码开发完成后打成包装文件,如果不希望代码被人破解,通常会将代码进行混淆,从而让破解者难以阅读。

项目中的资源

展开res文件,有主要几种文件

drawable开头的文件夹都是用来放图片的

mipmap开头的文件都是用来放应用图标的

values开头的文件夹都是用来放字符串、样式、颜色等配置的

layout开头的文件夹都是用来存放布局文件的

引用方式(以res/values/strings.xml中引用app_name为例):

  • 在代码中通过R.string.app_name
  • 在XML中通过@string/app_name

详解build.gradle文件

不同于escplise,IDEA是采用Gradle来构建项目的。它基于特定的语言(DSL)来申明项目配置,摒弃了传统的XML(如Ant和Maven)的各种繁琐配置

  • 最外层的目录下的bulid.gradle文件代码如下:
buildscript {
    repositories {
        google()
        mavenCentral()
    }
    dependencies {
        classpath "com.android.tools.build:gradle:7.0.2"

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

dependencies 闭包中使用classpath申明了一个Gradle插件。Java、C++等很多项目都可以用Gradle来构建,我们需要用它来构建Android项目则需要申明com.android.tools.build:gradle:7.0.2这个插件,后面部分时插件版本号

  • app目录下的build.gradle文件代码如下:
plugins {
    id 'com.android.application'
}

android {
    compileSdk 30

    defaultConfig {
        applicationId "com.example.apptest"
        minSdk 21
        targetSdk 30
        versionCode 1
        versionName "1.0"

        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
}

dependencies {

    implementation 'androidx.appcompat:appcompat:1.2.0'
    implementation 'com.google.android.material:material:1.3.0'
    implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
    testImplementation 'junit:junit:4.+'
    androidTestImplementation 'androidx.test.ext:junit:1.1.2'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'
}

android的日志工具Log

日志五种级别:
Log.v()    Verbose //最琐碎的、意义最小的日志信息。对应级别最低的一种
    
Log.d()    Debug //打印调试信息
    
Log.i()    Info//打印比较重要的数据
    
Log.w()    Warn//用于打印一些警告信息
    
Log.e()    Error//用于打印程序中的错误信息

为什么用Log不用System.out.println

System.out.println()的缺点:

​ 日志打印不可控制、打印时间无法确定、不能添加过滤器、没有日志级别之分…


谢谢阅读

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Sunnydog_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值