【Android Studio】第一行代码-手把手带你搭建开发环境+创建你的第一个Android项目

〇、前情提要

需要有JAVA基础
参考:

  1. Android 第一行代码(第2版)
  2. 【Android Studio】第一行代码-第1章
    https://blog.csdn.net/weixin_43210113/article/details/109224497
  3. 【Android Studio】Gradle sync failed: com.android.tools.idea.gradle.project.sync.idea.issues.SdkPlatfo
    https://blog.csdn.net/weixin_43210113/article/details/109164430

一、准备工具

在这里插入图片描述

JDK

8以上

Android SDK

导包使用API

Android Studio

现已废弃Eclipse+ADT插件(第一版使用)


二、搭建开发环境

下载Android Studio

一路Next至完成
在这里插入图片描述


三、创建第一个Android项目

创建一个HelloWorld项目

在这里插入图片描述
在这里插入图片描述
如果出现Gradle sync failed: com.android.tools.idea.gradle.project.sync.idea.issues.SdkPlatformNotFoundException: Module: 'app' platform 'android-29' not found.报错,请看我的另一篇笔记

【Android Studio】Gradle sync failed:
com.android.tools.idea.gradle.project.sync.idea.issues.SdkPlatfo
https://blog.csdn.net/weixin_43210113/article/details/109164430

自动生成一个MainActivity
在这里插入图片描述

启动模拟器

顶部工具中找到
在这里插入图片描述
添加设备
在这里插入图片描述
启动模拟器
在这里插入图片描述
开机
在这里插入图片描述
开机后
在这里插入图片描述


三、运行HelloWord

编译

选中要运行的项目与设备
在这里插入图片描述
运行
在这里插入图片描述
发现未写但已有了HelloWorld内容


四、分析第一个Android程序

项目结构

在这里插入图片描述
该结构为默认项目结构。已被转换过,可点击切换项目结构模式。
在这里插入图片描述
Project为真实目录结构
在这里插入图片描述

· gradle 和 .idea

自动生成文件

☆app

代码、资源
在这里插入图片描述

  • build
    编译自动生成
  • libs
    第三方jar包放置在此,自动添加到构建路径
  • androidTest
    Android Test测试 自动化测试
  • java
    java代码
  • res
    图片drawable、布局layout、字符串values
  • AndroidManifest.xml
    整个项目的配置文件 给应用程序添加权限声明
  • test
    Unit Test
  • .gitignore
    排除在版本控制之外
  • app.iml
    自动生成
  • build.gradle
    app模块gradle构建脚本
  • proguard-rules.pro
    指定代码混淆规则 防破解

build

编译自动生成

gradle

graddle wrapper。可以更改配置文件

.gitignore

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

build.gradle

全局gradle构建脚本

gradle.properties

gradle配置文件 编译脚本

gradlew gradlew.bat

在命令行界面执行gradle命令
前为Linux Mac 后为Windows

.iml

标识IntelliJ IDEA

local.properties

SDK路径

setting.gradle

指定项目中所有引入模块


五、如何运行的

打开AndroidManifest.xml

在这里插入图片描述
对活动进行注册
在这里插入图片描述

		<activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

在这里插入图片描述

打开main文件

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
}

在这里插入图片描述
HelloWorld在何处?
在这里插入图片描述

打开activity_main

在这里插入图片描述

切换到code模式
在这里插入图片描述
在这里插入图片描述

<TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Hello World!"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

TextView为布局中显示文字的控件


六、详解资源

res目录

在这里插入图片描述

  • drawable 图片
    应自己创建drawable-hdpi drawable-xhdpi drawable-xxhdpi不同分辨率版本
    只有一份则放rawable-xxhdpi
  • mipmap 应用图标
    多个文件夹为兼容
  • values 字符串、样式、颜色
  • layout 布局文件

打开string.xml

在这里插入图片描述
在这里插入图片描述
引用方法
在这里插入图片描述

打开AndroidManifest.xml

在这里插入图片描述
icon应用图标 label应用名称
在这里插入图片描述


七、build.gradle

两个build.gradle
在这里插入图片描述

1.外层目录

代码

buildscript {
    repositories {
        google()
        jcenter()
    }
    dependencies {
        classpath "com.android.tools.build:gradle:4.1.0"
    }
}

allprojects {
    repositories {
        google()
        jcenter()
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

repositories闭包

jcenter代码托管仓库 引用开源项目

dependencies闭包

用classpath声明Gradle插件 版本号

2.内层目录

代码

plugins {
    id 'com.android.application'
}

android {
    compileSdkVersion 29
    buildToolsVersion "30.0.2"

    defaultConfig {
        applicationId "example.com"
        minSdkVersion 23
        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'
        }
    }
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
}

dependencies {

    implementation 'androidx.appcompat:appcompat:1.1.0'
    implementation 'com.google.android.material:material:1.1.0'
    implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
    implementation 'androidx.navigation:navigation-fragment:2.2.2'
    implementation 'androidx.navigation:navigation-ui:2.2.2'
    testImplementation 'junit:junit:4.+'
    androidTestImplementation 'androidx.test.ext:junit:1.1.1'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
}

plugins闭包

com.android.application 应用程序模块 直接运行
com.android.library 库模块 依附其他应用程序

android闭包

配置项目构建的属性
compileSdkVersion 编译版本
buildToolsVersion 编译工具版本
defaultConfig闭包
在这里插入图片描述
buildTypes闭包
在这里插入图片描述

compileOptions闭包

dependencies闭包

在这里插入图片描述
在这里插入图片描述


©️2020 CSDN 皮肤主题: 1024 设计师:上身试试 返回首页