安卓开发第二弹_第一个安卓项目及其讲解

安卓开发第二弹_第一个安卓项目

  • 1创建空活动
  • 2启动模拟器
  • 3运行程序
    • 3.1模拟器上运行
    • 3.2手机上运行
  • 4代码的简单讲解
    • 4.1 整个项目的基本介绍
    • 4.2 app文件夹的介绍
    • 4.3 main文件夹相关介绍
    • 4.4 res文件夹讲解
    • 4.5 具体代码讲解
      • 4.5.1 AndroidManifest.xml|
      • 4.5.2 主活动代码
      • 4.5.3 布局文件
      • 4.5.4 build.gradle文件的详解

1创建空活动

create a new project,选择empty activity
安卓开发第二弹_第一个安卓项目及其讲解_第1张图片
修改相关信息
安卓开发第二弹_第一个安卓项目及其讲解_第2张图片
出现问题
安卓开发第二弹_第一个安卓项目及其讲解_第3张图片
点击use…那些蓝字,自动下载
安卓开发第二弹_第一个安卓项目及其讲解_第4张图片
完成的样子
安卓开发第二弹_第一个安卓项目及其讲解_第5张图片

2启动模拟器

点击ADV manager,可以看到已经创建了一部虚拟手机
安卓开发第二弹_第一个安卓项目及其讲解_第6张图片
点击绿色运行按钮,可以安装
安卓开发第二弹_第一个安卓项目及其讲解_第7张图片
完成之后手机就出来啦
安卓开发第二弹_第一个安卓项目及其讲解_第8张图片

3运行程序

点击绿色的三角形,运行程序
安卓开发第二弹_第一个安卓项目及其讲解_第9张图片

3.1模拟器上运行

设备选择成虚拟设备,运行效果如下
安卓开发第二弹_第一个安卓项目及其讲解_第10张图片

3.2手机上运行

在实际手机上运行首先要开启通过进入开发者模式,启用usb调试
安卓开发第二弹_第一个安卓项目及其讲解_第11张图片
选择设备,运行即可
安卓开发第二弹_第一个安卓项目及其讲解_第12张图片

4代码的简单讲解

4.1 整个项目的基本介绍

将目录切换成project形式,如下
安卓开发第二弹_第一个安卓项目及其讲解_第13张图片
其中大部分都是自动生成的,我们重点关注app目录

4.2 app文件夹的介绍

app的文件树如下:
安卓开发第二弹_第一个安卓项目及其讲解_第14张图片

目录 作用
build 自动生成的,不用过分关心
libs 使用第三方的jar库,添加到这里面,会自动添加到构建路径
androidTest 测试用例,做一些自动化测试
main 主要文件在里面,后面再介绍
test 也是用来做一些自动化测试
build.gradle 构建脚本,项目的很多配置都在里面指定

4.3 main文件夹相关介绍

main的主要内容如下
安卓开发第二弹_第一个安卓项目及其讲解_第15张图片

目录 作用
java 放置java代码的地方,创建的主活动在其中
res 相关的资源堵在这个目录下
AndroidManifest.xml 整个项目的配置文件,定义的四大组件都需要在这个文件里面注册 ,同时进行 权限声明

4.4 res文件夹讲解

res文件树如下
安卓开发第二弹_第一个安卓项目及其讲解_第16张图片

文件夹 作用
drawable 图片文件
layout 布局文件
mipmap 图标文件,有不同的分辨率,一般放在xxhdpi
values 字符串,颜色,样式的配置

例如字符串,srtring.xml

<resources>
    <string name="app_name">Project1string>
resources>

在代码中可以通过R.string.app_name
在xml中可以通过"@string/app_name"调用.

4.5 具体代码讲解

4.5.1 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>

intent-filter两行代码表明,MainActivity是主活动,在程序启动时进入该活动

4.5.2 主活动代码

主要代码如下

public class MainActivity extends AppCompatActivity {
     

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

oncreate()是活动创建时执行的函数,必须有,而安卓开发讲究逻辑与视图分离,在布局文件中,编写布局,然后在活动文件中引入。在oncreate()方法中使用setcontentview(),引入布局文件。

4.5.3 布局文件

布局文件如下,定义了控件,有文本的内容,以及位置和大小的设置。
安卓开发第二弹_第一个安卓项目及其讲解_第17张图片

4.5.4 build.gradle文件的详解

1.外层的build.gradle
关键代码如下

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

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

主要声明了gradle插件的版本信息,一般情况下不需要修改,除非做一些全局项目配置。
2.内层的build.gradle

plugins存在两种选择,application和library,前者可以直接运行,后者只能作为代码库依托于别的应用程序模块执行。

plugins {
     
    id 'com.android.application'
}

android闭包

  • defaultconfig
    applicationid是包名,targetsdkversion指定的值表明你在该目标版本做过充分的测试。versioncode和versionname指定版本,生成安装文件很重要。
  • debug是对测试版本的配置,release是对正式版本的配置,先pass吧
android {
     
    compileSdkVersion 30
    buildToolsVersion "30.0.3"
    defaultConfig {
     
        applicationId "com.example.project1"
        minSdkVersion 16
        targetSdkVersion 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,指定当前项目的所有依赖关系(本地依赖,库依赖,远程依赖)。

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

这个出现了版本更新,依赖添加以后要注意!

你可能感兴趣的:(安卓开发,android,java,安卓,gradle)