一、Android基本常识——Android项目创建——Android Studio目录详解——HelloWorld项目解析

1. Android基本常识

1.1 Android系统架构

  • Linux内核层
    Android系统是基于Linux内核的,为Android设备硬件提供底层驱动
  • 系统运行层
    1. C/C++库为Android系统提供特性支持
    2. Android运行时库,包含ART运行环境1
  • 应用框架层:即构建程序的API
  • 应用层:即程序

1.2 Android四大组件

  • 活动(Activity)
    活动是所有Android应用程序呈现出的页面,即包含用户界面的组件
  • 服务(Service)
    在后台运行
  • 广播接收器(Broadcast Receiver)
    接收/发送广播消息(电话、短信)
  • 内容提供器(Content Provider)
    程序间共享数据

2. Android项目创建

  • 打开Android Studio,点击【File】——【New】——【New Project】,打开“Create Android Project"对话框
    一、Android基本常识——Android项目创建——Android Studio目录详解——HelloWorld项目解析
  • 选择项目的最低兼容版本(默认)
  • 选择活动模板(以Empty Activity为例)
    一、Android基本常识——Android项目创建——Android Studio目录详解——HelloWorld项目解析

3.Android项目目录结构

一、Android基本常识——Android项目创建——Android Studio目录详解——HelloWorld项目解析

3.1 app模块目录结构

一、Android基本常识——Android项目创建——Android Studio目录详解——HelloWorld项目解析

3.1.1 引用res中的资源

  • 在代码中获得引用:R.文件夹.文件
  • 在XML中获得引用:@文件名/文件

3.2 build.gradle文件

3.2.1 项目的build.gradle文件

buildscript {    
    repositories {
        google()
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.2.1'
    }
}
//1.jcenter:代码托管仓库
//2.classpath:声明Gradle插件,用来构建Android项目

3.2.2 app模块的build.gradle文件

apply plugin: 'com.android.application'	//表示是应用程序模块
//apply plugin: 'com.android.library'		//表示是库模块
//android闭包:配置项目构建的各种属性
android {
    compileSdkVersion 28	//指定项目编译版本
    defaultConfig {
        applicationId "com.example.helloworld"	//指定项目包名
        minSdkVersion 15	//项目最低兼容的Android系统版本
        targetSdkVersion 28
        versionCode 1		//指定项目版本号
        versionName "1.0"		//指定项目版本名
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    //buildTypes指定生成安装文件的相关配置,包含两个子包
    //1.debug:指定生成测试版安装文件的配置
    //2.release:指定生成正式版安装文件的配置
    buildTypes {
        release {
            minifyEnabled false	//是否对项目代码进行混淆
            //1.proguard-android.txt:在Android SDK目录下,是所有项目通用的混淆规则
            //2.proguard-rules.pro:当前项目根目录下
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'	//指定混淆的规则文件
        }
    }
}
//指定当前项目所有依赖关系
dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'com.android.support:appcompat-v7:28.0.0'
    implementation 'com.android.support.constraint:constraint-layout:1.1.3'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.2'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
}

4. HelloWorld项目解析

4.1 AndroidManifest.xml文件

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".HelloWorldActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
//1.android:allowBackup:是否备份
//2.android:icon:应用图标
//3.android:label:应用名称
<activity android:name=".HelloWorldActivity">
	<intent-filter>
		<action android:name="android.intent.action.MAIN" />
		<category android:name="android.intent.category.LAUNCHER" />
	</intent-filter>
 </activity>
 //<activity>标签用于注册活动,没有在AndroidManifest.xml文件中注册的组件不能使用
 //活动的注册声明放置在<application>标签内
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
//表示该活动是项目的主活动

4.2 HelloWorldActivity.java

public class HelloWorldActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.hello_world_layout);
    }
}
//1.onCreate():在activity初始化时调用
//2.setContentView():引入布局

  1. ART运行环境使每个Android应用都运行在独立的进程中 ↩︎