安卓简介

安卓历史

前智能机时代。

智能机元年:2007-01 iPhone问世

2008-09 第一台安卓机上市

Android 4.0 2011同时支持平板和手机,全新的内置apps

Android 5.0 2014 Material Design、双卡、ART VM

Android 6.0 2015 成熟的权限控制

Android 7.0 2016 分屏和多任务

Android 8.0 2017 OREO 画中画、自适应图标

Android 9.0 2018 刘海屏、通知栏

Android 10.0 2019

生态现状:市场占率75%,但是系统碎片化严重,国内7-9多,国外如印度大多可能只有6版本。

系统架构

  • linux内核:安卓基于linux内核。
  • Hardware Abstraction Layer(HAL)硬件抽象层:提供统一的硬件访问接口。
  • 运行时库Native Libraries和JVM。安卓运行库,包括系统库和运行时环境。但是不是传统的Java虚拟机,甚至和JVM不兼容。
  • Framework。应用开发程序层。给开发者提供Java API接口。
  • System Apps。基于Framework开发的Android系统Apps。

应用程序

应用程序包APK文件本质上是一个ZIP压缩文件,可以进行解压。

每一个应用程序被沙箱分隔,彼此无法直接访问数据。每一个进程都用自己的虚拟机,并且遵循Linux的用户权限管理,每个应用有一个独立用户ID。

四大应用组件:

  • Activity 页面容器
  • Service 后台常驻任务
  • Content Provider 数据提供
  • Broadcast Receiver 广播消息接收器

在安卓中,每个应用进程有独立的虚拟机在运行,而四大组件就是运行在虚拟机中的内容。

环境搭建

使用Android Studio,官方的IDE。下载地址:https://developer.android.google.cn/studio/

安装的过程中安装程序会自动引导安装Android SDK和Gradle的内容。如果没有正常安装或者因为下载速度太慢等原因安装失败,则需要自己下载安装。

SDK手动安装后需要自己配置一下环境变量,例如:ANDROID_HOME=/Users/yourname/Library/Android/sdk。

Gradle需要从官网上面找一个合适版本,下载解压到本地,然后也需要配置环境变量GRADLE_HOME,之后在Path中加入%GRADLE_HOME%\bin。可以在命令行输入gradle -v来查看是否配置成功。另外,由于Gradle Wrapper的存在,如果你在网上下载别人的项目中使用的Gradle版本和你本地不一致,则会自动下载对方的版本,这个需要占用大量的空间。如果C盘空间不足就需要转移一下Gradle的用户目录。首先在环境变量中加入GRADLE_USER_HOME指向自定义的目录,然后命令行输入gradle -g 加上你的自定义目录来完成更改。

如果不想每次都下载新版本,也可以在Android Studio的工程设置中做如下图的更改:

gradle_config

到这里环境基本上就配置好了。最后在每次使用新项目的时候,可以对Gradle项目的仓库进行修改,换用国内阿里云镜像,下载速度更快。在工程根目录中build.gradle文件中找到buildscript下repositories,以及allprojects下repositories两处,将原有内容删除并添加阿里的仓库地址:

maven { url 'https://maven.aliyun.com/nexus/content/groups/public/' }
maven { url 'https://maven.aliyun.com/nexus/content/repositories/jcenter' }
maven { url 'https://maven.aliyun.com/nexus/content/repositories/google' }
maven { url 'https://maven.aliyun.com/nexus/content/repositories/gradle-plugin' }

必备技能

看日志:通过Tag筛选出自己的日志

adb:Android Debug Bridge可以调试设备,提供shell

Git:熟练使用git和github的功能