Android基础1

Android架构

  1. Linux内核层(Linux Kernel)
    Linux内核 + Driver

  2. 系统运行层库(Libraries + Android runtime)
    Libraries是C/C++编写的程序库,Android runtime是java虚拟机
    包括View、Content Providers、Resource Manager、Notification Manager、Activity Manager等

  3. 应用框架层(Application Framework java语言编写)
    提供了构建应用程序时可能用到的各种API

  4. 应用层(Application java语言编写)
    手机上的应用程序

Android基础1_第1张图片

Android开发需要工具

  1. JDK
    java语言软件开发工具包,包含了Java的运行环境、工具集合、基础类库等内容。

  2. Android SDK
    Android开发工具包

  3. Android Studio
    Android开发环境IDE

Android程序结构

Android基础1_第2张图片

.gradle AndroidStudio自动生成文件
.idea AndroidStudio自动生成文件
app
  -build 编译时自动生成的文件
  -libs 第三方jar包的存储目录,该目录下的jar包会自动添加到构建目录中
  -src
    -main
      -java 代码目录
      -res 资源目录
        -drawable 图片资源
        -layout 布局资源
        -mipmap 适配图片资源
        -values string,color,dimen,styles等
      -AndroidManifest.xml Android项目的配置文件,四大组件的声明,添加权限声明等
  -.gitignore app模块内将指定的文件或目录排除在版本控制之外的文件
  -app.iml iml是所有Intellij IDEA项目都会自动生成的一个文件
  -build.gradle app模块的gradle构建脚本
  -proguard-rules.pro 指定项目代码中的混淆规则
build 编译时自动生成的文件
gradle 包含了Gradle wrapper的配置文件
.gitignore将指定的文件或目录排除在版本控制之外的文件
项目名.iml iml是所有Intellij IDEA项目都会自动生成的一个文件
build.gradle 项目全局的gradle构建脚本
gradle.properties 全局的gradle的配置文件
gradlew 用来在命令行界面执行gradle命令的(Linux下用)
gradlew.bat 用来在命令行界面执行gradle命令的(Windows下用)
local.properties 指定本机的Android SDK的路径,自动生成
settings.gradle 用于指定项目中所有引入的模块  

build.gradle文件

全局项目gradle脚本

buildscript {
    repositories {
        jcenter()//代码托管仓库,声明后可以轻松引用jcenter上的开源项目
    }
    dependencies {
        //声明了Gradle插件
        classpath 'com.android.tools.build:gradle:2.3.0-beta3'
        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        jcenter()
    }
}


app模块的gradle脚本

apply plugin: 'com.android.application'//标明该moudle是一个程序模块,可以直接运行.com.android.library标明是库模块,要依赖其他程序才可以运行

android {
    compileSdkVersion 25 //项目的编译版本
    buildToolsVersion "25.0.0" //构建工具的版本
    defaultConfig {
        applicationId "com.hblolj.androidft" //项目的包名
        minSdkVersion 14 //最低兼容的Android系统版本
        targetSdkVersion 25 //目标Android系统版本
        versionCode 1 //版本号
        versionName "1.0" //版本名
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false //不混淆
            //混淆时使用的规则文件 proguard-android.txt是在Android SDK下,是所有项目通用的混淆规则
            //proguard-rules.pro在项目的根目录下,可以编写当前项目的混淆规则
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

//指定当前项目的所有依赖关系
dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
        exclude group: 'com.android.support', module: 'support-annotations'
    })
    compile 'com.android.support:appcompat-v7:25.0.0'
    compile 'com.android.support:design:25.0.0'
    compile 'com.github.bumptech.glide:glide:3.7.0'
    compile 'com.android.support.constraint:constraint-layout:1.0.0-alpha4'
    testCompile 'junit:junit:4.12'
}

你可能感兴趣的:(Android基础)