[Android][第一行代码][第 1 章 开始启程]

01. Android 简史

  • 2003年10月,Andy Rubin 等人创办 Android 公司。
  • 2005年08月,谷歌收购该公司,Andy Rubin 继续负责。
  • 2008年09月,推出了 Android 系统的第一个版本。
  • 2011年02月,谷歌发布了 Android 3.0 系统。
  • 2011年10月,谷歌发布了 Android 4.0 系统。
  • 2014年 Google I/O 大会发布了 Android 5.0 系统。
  • 2015年 Google I/O 大会发布了 Android 6.0 系统。
  • 2016年 Google I/O 大会发布了 Android 7.0 系统。

02. Android 系统架构

  1. Linux Kernel
    • Linux 内核 提供底层驱动:显示驱动,音频驱动,照相机驱动,蓝牙驱动,Wi-Fi驱动,电源管理等。
  2. Libraries & Android Runtime
    • 类库 通过 C/C++ 提供特性支持。SQLit 提供数据库,OpenGL|ES 提供 3D 绘图,Webkit 提供浏览器内核等。
    • 运行时 提供一些核心库,允许开发使用 Java 编写 Android 应用;Dalvik 虚拟机 | ART 运行环境,使得每一个应用都能运行在独立的进程当中。
  3. Application Framework
    • 应用程序框架层 提供 API 开发者调用开发程序。
  4. Applications
    • 应用层 各种程序。

03. Android 应用开发特色

  1. 四大组件
    • 活动 Activity
    • 服务 Service
    • 广播接收器 Broadcast Receiver
    • 内容提供器 Content Provider
  2. 控件
    • 系统控件
    • 自定义控件
  3. SQLite 数据库
  4. 多媒体
    • 音乐,视频,录音,拍照,闹铃
  5. 地理位置定位
  6. 其他

04. 项目目录结构

  1. gradle
    • 目录下包含了 gradle wrapper 的配置文件,使用此方式不需要提前将 gradle 下载好,而是自动根据本地缓存情况决定是否需要联网下载 gradle。
  2. .gitignore
  3. gradlew
    • 在 Linux 系统使用,用于在命令行执行 gradle 命令。
  4. gradlew.bat
    • 在 Windows 系统使用,用于在命令行执行 gradle 命令。
  5. *.iml
    • iml 文件是所有 IntelliJ IDEA 项目自动生成,用于标识一个 IntelliJ IDEA 项目。不用修改。
  6. settings.gradle
    • 指定项目中所有引入的模块。
  7. proguard-rules.pro
    • 指定项目代码的混淆规则。

05. 详解 build.gradle 文件

  1. Gradle 是一个非常先进的项目构建工具,它使用了一种基于 Groovy 的领域特定语言(DSL)来声明项目设置,摒弃了传统基于 XML(如 Ant 和 Maven)的各种烦琐配置。

  2. 根目录下的 build.gradle 文件

    // Top-level build file where you can add configuration options common to all sub-projects/modules.
    
    buildscript {// 构建脚本
     repositories {// repositories 闭包
       jcenter()// 代码托管仓库 jcenter maven
     }
     dependencies {// 闭包 dependencies 依赖
       classpath 'com.android.tools.build:gradle:2.2.2'// 使用 classpath 声明了一个 Gradle 插件同时指定了插件版本号
       // 因为 Gradle 并不是专门为构建 Android 项目而开发的
    
       // NOTE: Do not place your application dependencies here; they belong
       // in the individual module build.gradle files
     }
    }
    
    allprojects {// 所有项目
     repositories {// 指定引用的仓库
       jcenter()
     }
    }
    
    task clean(type: Delete) {
     delete rootProject.buildDir
    }
  3. app目录下的 build.gradle 文件

    apply plugin: 'com.android.application'// 应用一个插件
    // com.android.application 表示这是一个应用程序模块[可直接运行]
    // com.android.library 表示这是一个库模块[作为代码库]
    
    android {
     compileSdkVersion 25// 编译版本
     buildToolsVersion "25.0.2"// 构建工具版本
     defaultConfig {// 默认配置
       applicationId "com.just.first"// 指定项目包名
       minSdkVersion 14// 最低兼容的 Android 系统版本
       targetSdkVersion 25// 目标版本 启用相应版本上的新功能新特性
       versionCode 1// 项目版本号
       versionName "1.0"// 项目版本名称
       testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"// 测试需要
     }
     buildTypes {// 构建类型
       release {// 发布
         minifyEnabled false// 是否对代码进行混淆
         proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
         // proguardFiles 指定混淆时使用的规则文件
         // proguard-android.txt 在 Android SDK 目录下的通用混淆规则
         // proguard-rules.pro 在当前项目的根目录下 自己编写特定的混淆规则
       }
     }
    }
    
    dependencies {// 依赖库 [本地依赖][库依赖][远程依赖]
     compile fileTree(include: ['*.jar'], dir: 'libs')// 本地依赖
     androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
       exclude group: 'com.android.support', module: 'support-annotations'
     })// Android 测试
     compile 'com.android.support:appcompat-v7:25.3.1'
     // com.android.support 是域名部分 用于和其他公司的库做区分
     // appcompat-v7 是组名称 用于和同一公司中不同的库做区分
     // 25.3.1 是版本号 用户和同一库不同的版本做区分
     testCompile 'junit:junit:4.12'// 测试依赖
     compile 'com.android.support:recyclerview-v7:25.3.1'// 远程依赖
    
     // Gradle 在构建项目时会首先检查一下本地是否已经有这个库的缓存,如果没有的话则会去自动联网下载,然后再添加到项目的构建路径当中。
    }

06. 小结

  1. 关于Dalvik 虚拟机和ART 运行环境相关知识需要学习。
  2. AndroidManifest.xml 文件中指定的 packagebuild.gradle 文件中指定的 applicationId 区别。
  3. 创建 Activity 时候系统指定的模板自定义模板的学习使用。
  4. 代码混淆相关的知识需要重新学习总结。
  5. 资源文件夹 mipmapdrawable 区别。
  6. 打印日志是否会影响性能和效率?
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值