Android 开发入门-简介

1.1 Android 简介

1.1.1 Android 系统架构

  1. Linux 内核层:为各种硬件提供底层驱动
  2. 系统运行库层:通过 C/C++ 库提供主要的特性支持。
  3. 应用框架层:提供构建应用程序时需要用到的各种 API。
  4. 应用层:安装在手机上的应用程序。

1.1.2 Android 已发布的版本

Android API Android版本 分布比例
28 Android 9 (Pie) 10.40%
27 Android 8.1 (Oreo) 15.40%
26 Android 8.0 (Oreo) 12.90%
25 Android 7.1.1 (Nougat) 7.80%
24 Android 7.0 (Nougat) 11.40%
23 Android 6.0 (MarshMallow) 16.90%
22 Android 5.1 (Lollipop) 11.50%
21 Android 5.0 (Lollipop) 3.00%
19 Android 4.4 (Kitkat) 6.90%
18 Android 4.3 (Jelly Bean) 0.50%
17 Android 4.2.x (Jelly Bean) 1.50%
16 Android 4.1.x (Jelly Bean) 1.20%
15 Android 4.0.3 - 4.0.4 (Ice Cream Sandwich) 0.30%
10 Android 2.3.3 - 2.3.7 (Gingerbread) 0.30%

1.1.3 Android 应用开发特色

  1. 四大组件:活动、服务、广播接收器、内容提供器
  2. 丰富的系统控件
  3. SQLite 数据库
  4. 强大的多媒体
  5. 地理位置定位

1.2 搭建开发环境

  • JDK8 或以上版本
  • Android SDK
  • Android Studio

1.3 创建 Android 项目

  1. Start a new Android Studio project
  2. 启动模拟器
  3. 运行 HelloWorld 项目

1.3.1 分析目录结构

首先将项目结构模式切换为 Project 模式。

.gradle                    自动生成的目录,无须关心
.idea                      自动生成的目录,无须关心
app                        项目主要目录,即工作目录
  build                    编译时自动生成的文件目录,无须关心
  libs                     第三方 jar 包存放目录
  src                      项目主要目录,即工作目录
    androidTest            测试用例目录,进行自动化测试
    main                   项目主要目录,即工作目录
      java                 JAVA 代码目录
      res                  资源目录
      AndroidManifest.xml  Android项目配置文件
    test                   单元测试用例目录
  .gitignore               Git 版本控制排除的配置文件
  app.iml                  IDEA 自动生成的文件,无须关心
  build.gradle             app 模块的 gradle 构建脚本
  proguard-rules.pro       配置项目代码的混淆规则
build                      编译时自动生成的文件目录,无须关心
gradle                     包含 gradle wrapper 的配置文件
.gitignore                 Git 版本控制排除的配置文件
build.gradle               全局的 gradle 构建脚本,通常不需修改
gradle.properties          全局的 gradle 配置文件
gradlew                    命令行执行 gradle 的文件(Linux)
gradlew.bat                命令行执行 gradle 的文件(Windows)
HelloWorld.iml             IDEA 自动生成的文件,无须关心
local.properties           指定本机 Android SDK 位置的配置文件,通常不需修改
settings.gradle            指定项目中引入的模块的配置文件

代码分析。

# app/src/main/AndroidManifest.xml



    
        
        
        
        
    
# app/src/main/java/com/example/helloworld/HelloWorldActivity.java

// 活动代码,需要继承 AppCompatActivity
public class HelloWorldActivity extends AppCompatActivity {
    // 活动创建时会自动执行的方法
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.hello_world_layout);
    }
}
# app/src/main/res/layout/hello_world_layout.xml

...
# 文本控件

...

1.3.2 详解项目中的资源

res/drawable         图片目录
res/drawable-xxhdpi  图片目录,建议放在此目录
res/layout           布局文件
res/mipmap-hdpi      应用图标
res/mipmap-mdpi      应用图标
res/mipmap-xhdpi     应用图标
res/mipmap-xxhdpi    应用图标,建议放在此目录
res/mipmap-xxxhdpi   应用图标
res/values-w820dp    字符串、样式、颜色等配置
res/values           字符串、样式、颜色等配置
# app/src/main/res/values/strings.xml

# 定义字符串

    HelloWorld
# 代码中使用
R.string.app_name

# XML中使用
@string/app_name

使用示例。

# HelloWorld/app/src/main/AndroidManifest.xml

     # 指定主题配置,使用@style引用风格目录

1.3.3 详解 build.gradle 文件

# build.gradle

buildscript {
    repositories {
        // 声明代码托管仓库
        jcenter()
    }
    dependencies {
        // 使用 gradle 构建 Android 项目
        classpath 'com.android.tools.build:gradle:2.2.0'
    }
}

allprojects {
    repositories {
        // 声明代码托管仓库
        jcenter()
    }
}
# app/build.gradle

// 应用的插件:com.android.application 为应用程序模块;com.android.library 为库模块
apply plugin: 'com.android.application'

android {
    // 指定项目的编译版本
    compileSdkVersion 24
    // 指定项目构建工具的版本
    buildToolsVersion "24.0.2"
    defaultConfig {
        // 指定项目包名
        applicationId "com.example.helloworld"
        // 指定项目最低兼容的安卓版本
        minSdkVersion 15
        // 指定在该版本上已经做了充分的测试,启动最新的功能和特性
        targetSdkVersion 24
        // 指定项目的版本号
        versionCode 1
        // 指定项目的版本名称
        versionName "1.0"
    }
    // 生成安装文件的相关配置
    buildTypes {
        // 生成正式版安装文件的相关配置
        release {
            // 是否对项目代码进行混淆
            minifyEnabled false
            // 代码混淆时使用的规则文件:安卓通用混淆规则&项目混淆规则
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

// 指定项目的依赖关系
dependencies {
    // 本地依赖声明
    compile fileTree(include: ['*.jar'], dir: 'libs')
    // 远程依赖声明
    compile 'com.android.support:appcompat-v7:24.2.1'
    // 测试用例库声明
    testCompile 'junit:junit:4.12'
}

1.4 日志工具的使用

Log.v()  verbose 级别,琐碎的、意义最小的日志
Log.d()  debug 级别,调试分析的日志
Log.i()  info 级别,重要的数据的日志
Log.w()  warn 级别,潜在风险的日志
Log.e()  error 级别,错误的的日志
public class HelloWorldActivity extends AppCompatActivity {

    private static final String TAG = "HelloWorldActivity";
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        Log.d(TAG, "onCreate execute");
        setContentView(R.layout.hello_world_layout);
    }
}

打印的日志位于:Android Monitor -> logcat 面板。

你可能感兴趣的:(android)