写在前面:

       学习Android比较有意思的一点是可以一边学习一边实践,有一台Android设备做测试带给我一种学以致用的满足感,我的Android学习主要是按照郭霖大佬编著的《第一行代码——Android》的进度进行的,根据之前的经验,我觉得有必要写一写学习笔记,希望能够巩固学到的知识,下面就开始吧。

 

Android开发目前比较常用的工具是Android Studio,它的安装和配置就不再说了,网上应该有很多教程。

Android系统架构:

Linux内核层(Linux Kernel):为Android设备的各种硬件提供底层驱动(显示驱动、音频驱动、相机驱动、蓝牙驱动、Wi-Fi驱动……)。

系统运行库层(Libraries):通过一些C/C++库来为Android系统提供特性支持(如SQLite库提供了数据库的支持……),这一层还包括Android运行时库(Android Runtime),它提供一些核心库,让开发者能够只用JAVA编写Android应用。Android运行时库中还包含Dalvik虚拟机*(5.0系统之后改为ART运行环境),使得每一个Android应用都能拥有一个Dalvik虚拟机实例,运行在独立的进程当中。

(注*:dalvik是执行的时候编译+运行,安装比较快,开启应用比较慢,应用占用空间小;ART是安装的时候就编译好了,执行的时候直接就可以运行的,安装慢,开启应用快,占用空间大。)

应用框架层(Application Framework):提供构建应用程序时可能用到的各种API。

应用层(Applications):应用程序(如联系人、短信、游戏……)。

Android系统架构图:

android系统工作资料 android工作资料是什么_应用程序

 

Android系统的四大组件:活动(Activity)、服务(Service)、广播接收器(Broadcast Receiver)、内容提供器(Content Provider)。

 

Android项目文件结构:

       进入正题,通过Android Studio建立的项目默认是“Android”模式的,切换成“Project”模式比较方便一点,下面就是项目结构了,挑几个比较重要的文件记录一下他们的作用。

android系统工作资料 android工作资料是什么_android系统工作资料_02

首先是最外层目录的文件:

app文件夹:项目主要在这个文件夹中编写。

local.properties:用于指定本机中Android SDK的路径。

app文件夹:

libs:项目中使用到的第三方jar包放在这个文件夹中,会被自动添加到构建路径里去。

java:放java代码的地方,比如活动的代码。

res:存放活动布局文件、图片文件、字符串。

AndroidManifest.xml:整个Android项目的配置文件,程序中定义的所有四大组件都要在这个文件中注册,还可以给应用程序添加权限声明。

build.gradle:app模块的gradle构建脚本,这个文件中会指定很多项目构建相关的配置。

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

详解build.gradle文件:

build.gradle代码示例:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 28
    defaultConfig {
        applicationId "com.example.admin.study_test"
        minSdkVersion 14
        targetSdkVersion 28
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            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'
}

apply plugin:标识项目是一个应用程序模块还是一个库模块,取值有两种:com.android.application和com.android.library.

compileSdkVersion:项目编译版本,28代表Android 9.0,对应关系如下表:

API Level

最初Android版本

Linux内核版本

首次发布日期

后续Android版本

29

10

Unknown

2019-06-05(Beta 4)

-

28

9

4.4.107, 4.9.84, and 4.14.42

2018-08-06


27

8.1

4.10

2017-12-05


26

8.0

4.10

2017-08-21


25

7.1

4.4.1

2016-10-04

7.1.1、7.1.2

24

7.0

4.4.1

2016-08-22


23

6.0

3.18.10

2015-10-05

6.0.1

22

5.1

3.16.1

2015-03-09

5.1.1

21

5.0

3.16.1

2014-11-12

5.0.1、5.0.2

20

4.4w

3.10

2014-06-25

4.4w.1、4.4w.2

19

4.4

3.10

2013-10-31

4.4.1、4.4.2、4.4.3、4.4.4

18

4.3

3.4.0

2013-07-24

4.3.1

17

4.2

3.4.0

2012-11-13

4.2.1、4.2.2

16

4.1

3.0.31

2012-07-09

4.1.1、4.1.2

15

4.0.3

3.0.1

2011-12-16

4.0.4

14

4.0

3.0.1

2011-10-18

4.0.1、4.0.2

13

3.2

2.6.36

2011-07-15

3.2.1、3.2.2、3.2.3、3.2.4、3.2.5、3.2.6

12

3.1

2.6.36

2011-05-10


11

3.0

2.6.36

2011-02-22


10

2.3.3

2.6.35

2011-02-09

2.3.4、2.3.5、2.3.6、2.3.7

9

2.3

2.6.35

2010-12-06

2.3.1、2.3.2

8

2.2

2.6.32

2010-05-20

2.2.1、2.2.2、2.2.3

7

2.1

2.6.29

2010-01-12


6

2.0.1

2.6.29

2009-12-03


5

2.0

2.6.29

2009-10-26


4

1.6

2.6.29

2009-09-15


3

1.5

2.6.27

2009-04-27


2

1.1

2.6.X

2009-02-09


1

1.0

-

2008-09-23


 

 

       作为开启Android笔记的第一篇博客,主要是记录了一下学习过程中容易遗忘或者比较重要的知识点,希望开一个好头,下一篇记录Android四大组件之一——活动。