一、Android基本常识——Android项目创建——Android Studio目录详解——HelloWorld项目解析
文章目录
1. Android基本常识
1.1 Android系统架构
- Linux内核层
Android系统是基于Linux内核的,为Android设备硬件提供底层驱动 - 系统运行层
- C/C++库为Android系统提供特性支持
- 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"对话框
- 选择项目的最低兼容版本(默认)
- 选择活动模板(以Empty Activity为例)
3.Android项目目录结构
3.1 app模块目录结构
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():引入布局
-
ART运行环境使每个Android应用都运行在独立的进程中 ↩︎