첫 번째 코드 줄 첫 번째 Android 프로젝트의 첫 번째 장

1. 첫 번째 Android 프로젝트 만들기

여기에 사진 설명 삽입여기에 사진 설명 삽입여기에 사진 설명 삽입

성공적인 분석 Android 프로젝트를 만듭니다.

다음은 전체 프로젝트의 외부 디렉토리 구조를 설명합니다.

.gradle和.idea
Android Studio自动生成的文件,无需关心

app
项目的代码和资源文件

build
包含编译时自动生成的文件

gradle
包含gradle wrapper的配置文件

.gitgnore
将指定的目录或文件排除在版本控制之外

build.gradle
项目全局的gradle构建脚本,一般都不需要修改

gradle.properties
全局的gradle配置文件,直接影响项目中所有的gradle编译脚本

gradlew和gradlew.bat
用来在命令行中执行gradle命令,其中gradlew是在Linux或Mac系统中使用的,gradlew.bat是在Windows系统中使用。

HelloWorld.iml
iml文件是所有IntelliJ IDEA项目都会自动生成的一个文件,用于标识这是一个IntelliJ IDEA项目,无需修改该文件中的任何内容。

local.properties
用于指定本机中SDK的路径,自动生成,无需修改。

settings.gradle
指定项目中所有引入的模块

앱 디렉토리 아래의 엔지니어링 분석 :

다음은 앱 디렉토리의 내용을 자세히 설명합니다.

build
编译时自动生成的文件,无需关心

libs
存放第三方jar包,放在该目录下的jar包会自动添加到构建路径中去。

androidTest
编写Android Test测试用例,对项目进行一些自动化测试。

Java
存放所有Java代码

res
存放项目中所有图片、布局、字符串等资源文件

AndroidManifest.xml
Android项目配置文件

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

.gitgnore
将app模块内指定的目录排除在版本控制之外

app.iml

IntelliJ IDEA项目自动生成的文件

build.gradle
app模块的gradle构建脚本

proguard-rules.pro
指定项目代码的混淆规则

자세한 build.gradle 파일

가장 바깥 쪽 디렉토리에있는 build.gradle 파일의 코드는 다음과 같습니다.

// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
    
    
    repositories {
    
    
        google()
        jcenter()
        
    }
    dependencies {
    
    
        classpath 'com.android.tools.build:gradle:3.5.3'
        
        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}
allprojects {
    
    
    repositories {
    
    
        google()
        jcenter()
    }
}

이러한 코드는 자동으로 생성되며 일반적으로이 파일의 내용을 수정할 필요가 없습니다. 두 저장소 클로저 모두 jcenter ()를 선언하고 jcenter는 코드 호스팅 저장소이므로 프로젝트에서 jcenter의 모든 오픈 소스 프로젝트를 참조 할 수 있습니다 . Gradle은 Android 프로젝트 빌드 용으로 특별히 개발되지 않았기 때문에 종속성 클로저는 클래스 경로를 사용하여 Gradle 플러그인을 선언합니다. Java 및 C ++와 같은 많은 종류의 프로젝트는 Gradle을 사용하여 빌드 할 수 있습니다. Gradle을 사용하여 Android 프로젝트를 빌드하려면 com.android.tools.build:gradle:3.5.3 플러그인을 선언해야합니다. 여기서 플러그인의 버전 번호는 다음과 같습니다.

앱 디렉토리의 build.gradle 파일

apply plugin: 'com.android.application'

android {
    
    
    compileSdkVersion 29
    buildToolsVersion "29.0.3"
    defaultConfig {
    
    
        applicationId "com.example.myapplication"
        minSdkVersion 15
        targetSdkVersion 29
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
    
    
        release {
    
    
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    
    
    implementation fileTree(dir: 'libs', include: ['*.jar'])//1 本地依赖
    implementation 'androidx.appcompat:appcompat:1.1.0'  //2 远程依赖
    implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'androidx.test.ext:junit:1.1.0'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
    implementation project(':helper')      //3 库依赖            
}

먼저 플러그인이 첫 번째 줄에 적용됩니다. 일반적으로 선택할 수있는 두 가지 값이 있습니다. com.android.application 은 이것이 애플리케이션 모듈 임을 나타내고 com.android.library 는 라이브러리 모듈. 애플리케이션 모듈은 직접 실행할 수 있으며 라이브러리 모듈은 다른 애플리케이션 모듈에 연결된 코드 라이브러리로만 실행할 수 있습니다.

안드로이드 폐쇄 :

● compileSdkVersion : 프로젝트의 컴파일 된 버전을 지정합니다.
● buildToolsVersion : 프로젝트 빌드 도구의 버전을 지정합니다.

defaultConfig 闭 包 :

● applicationId : 지정된 프로젝트의 패키지 이름
● minSdkVersion : 지정된 프로젝트 의 최소 ​​호환 Android 시스템 버전
● targetSdkVersion : 지정된 프로젝트의 대상 버전
● versionCode : 지정된 프로젝트의 버전 번호
● versionName : 버전 이름 지정된 프로젝트

buildTypes 무료 배송 :

일반적으로 디버그 및 릴리스의 두 가지 하위 폐쇄가 있습니다. 디버그 클로저는 무시할 수 있습니다. 디버그 클로저는 테스트 버전 설치 파일을 생성하기위한 구성을 지정하는 데 사용되며 릴리스 클로저는 공식 버전 설치 파일을 생성하기위한 구성을 지정하는 데 사용됩니다.

릴리스 폐쇄

● minifyEnabled : 프로젝트 코드를 난독 화할지 여부를 지정합니다.
● proguardFiles : 난독 화에 사용되는 규칙 파일을 지정합니다. proguard-android.txt는 모든 프로젝트에 대한 공통 난독 화 규칙이 포함 된 Android SDK 디렉토리에 있습니다. proguard-rules.pro는 현재 프로젝트에 대한 특정 난독 화 규칙을 작성할 수있는 현재 프로젝트의 루트 디렉토리에 있습니다.

의존성

현재 프로젝트의 모든 종속성을 지정하십시오.
● implementation fileTree : 로컬 종속성을 선언합니다. 이는 libs 디렉토리에 .jar 접미사가있는 모든 파일이 프로젝트의 빌드 경로에 추가됨을 의미합니다.
● 구현 : 원격 종속성을 선언합니다.
● testImplementation : 테스트 케이스 라이브러리를 선언합니다.
● 구현 프로젝트 ( ': helper')

2. 로깅 도구 사용

Log.v () : 가장 사소하고 덜 의미있는 로그 정보를 인쇄합니다. (verbose)
Log.d () : 디버깅 정보를 인쇄합니다. (디버그)
Log.i () : 중요한 로그 정보를 인쇄합니다. (info)
Log.w () : 일부 경고 메시지를 인쇄합니다. (경고)
Log.e () : 프로그램의 오류 정보를 인쇄합니다. (오류)

System.out 대신 Log를 사용하는 이유

logcat中能添加过滤器
可以控制日志级别

추천

출처blog.csdn.net/weixin_41477306/article/details/105030082