Android-01-简介
注: 此文章及相关文章根据《第一行代码》第3版及自身总结修改
1. Android基本信息
1.1 Android系统架构
Android系统主要分为4层架构:
- Linux内核层
基于Linux内核,为Android设备的各种硬件提供了底层的驱动,如显示驱动、音频驱动、照相机驱动、蓝牙驱动、Wi-Fi驱动、电源管理等
- 系统运行库层
- 通过一些C/C++库为Android系统提供了主要的特性支持。如SQLite库提供了数据的支持,OpenGL|ES库提供了3D绘图的支持,Webkit库提供了浏览器内核的支持等。
2. Android运行时库,提供一些核心库,支持java,Dalvik虚拟机(5.0系统之后改为 ART运行环境)
- 应用框架层
提供构建应用程序时可能用到的各种 API
- 应用层
所有系统自带软件和开发商及自己开发的软件。
1.2 Android历史版本
名称 | 版本名 | API等级 | 发布时间 |
Android 12 | 12.0 | 31 | 2021.10 |
Android 11 | 11.0 | 30 | 2020.9 |
Android 10 | 10.0 | 29 | 2019.5 |
Android Pie | 9.0 | 28 | 2018.5 |
Android Oreo | 8.0-8.1 | 26-27 | 2017.8 |
Android Nougat | 7.0-7.1.2 | 24-25 | 2016.5 |
Android Marshmallow | 6.0-6.0.1 | 23 | 2015.5 |
Android Lollipop | 5.0-5.1.1 | 21-22 | 2014.6 |
Android KitKat | 4.4-4.4.4 | 19-20 | 2013.9 |
Android Jelly Bean | 4.1-4.3 | 16-18 | 2012.6 |
Android Ice Cream | 4.0.1-4.0.4 | 14-15 | 2011.10 |
Android Honeycomb | 3.0-3.2 | 11-13 | 2011.2 |
Android Gingerbread | 2.3-2.3.7 | 9-10 | 2010.12 |
Android Froyo | 2.2 | 8 | 2010.5 |
Android Eclair | 2.0-2.1 | 5-7 | 2009.12 |
Android Donut | 1.6 | 4 | 2009.9 |
Android Cupcake | 1.5 | 3 | 2009.4 |
– | 1.1 | 2 | 2009.2 |
– | 1.0 | 1 | 2008.9 |
1.3 Android应用开发特色
- 四大组件
- Activity:应用程序显示门面、前台
- Service:后台运行服务,应用推出后仍可运行
- BroadcasReceiver:广播的接收和发出,如电话、短信
- ContentProvider:程序之间共享数据,如共享系统通讯录联系人
- 丰富的控件
- SQLite数据库
轻量级嵌入式关系数据库,支持SQL语法和Android封装的API
- 多媒体服务
调用手机的音乐、视频、录音、拍照等
2. Android开发环境
2.1 Java环境
一般使用JDK8、JDK11(推荐),如果想体验最新,也可以上JDK14(不推荐),到2021.1,JDK15虽然出了,但是AndroidStudio不支持。
配置java环境变量与其他设置一样,此处还可以设置AndroidStudio的默认java编译版本,具体查看2.2章节
2.2 AndroidStudio和SDK
AndroidStudio是谷歌推荐的官方开发工具,已经事实上取代了以前eclipse进行安装的开发。经过一段时间的演变,Android Studio已经趋于成熟稳定,下载地址
纯英文开发环境不适应的话,参考知乎此文章进行汉化
3. Android项目
3.1 创建项目
在AndroidStudio中点击”Create New Project“和选择”Empty Activity“后,进入到配置项目阶段,如图
- Name:项目名称,设置后自动配置到清单文件(AndroidManifest.xml)中,作为应用的名称,即你安装应用时看到的那个名字。
- Package name:包名,包名是唯一的,是Android系统用于区分不同应用程序的标识,也是存储应用的文件夹(在手机上)的相对位置的名称。
- Save locarion:存储位置买这个指的是存储在电脑上,此项目的位置。
- Language:编写项目所使用的语言。当前支持Kotlin和Java。
- Minimun SDK:最低兼容的SDK版本。当前建议设置为Android5.0,既API21
- Use legacy android.support libraries:使用AndroidX扩展库,至于什么是AndroidX,建议阅读此文
3.2 创建模拟器
项目创建后,运行需要一个载体,,AndroidStudio当前支持两种方式:
- 对接真机(真实的物理Android手机)
- 使用AndroidStudio支持的模拟器
此处以创建模拟器为例,在项目中或者主界面,点击AVD Manager,如下图
点击【Create Virtual Device】,创建虚拟机,根据自身需要创建不同配置的虚拟机
3.3 运行项目
3.3.1 虚拟机运行项目
- 自动创建的项目是默认的【Hello World】工程,因此可以直接运行,先点击【AVD Manager】中已创建的模拟器后的绿色按钮,启动虚拟机,此处虚拟机名称为【Android 11】
2. 在项目中选择运行/配置调试的按钮,选择调试的设备后,点击启动按钮,如下图
3.3.2 真机运行项目
- 真机调试都需要打开手机的【USB调试】功能,一般为进入设置-开发者选项-USB调试,【开启USB调试】。然后将手机通过数据线连接电脑,链接后手机允许【USB调试】,且USB用途选择【传输文件】。
注意:部分手机真机安装软件时,还需要打开【USB安装】,否则安装软件失败
2. 在Adnroid Studio中,与虚拟机调试时类似,只不过需要选择对应的手机型号,如我的手机黑鲨3Pro,如下图
注意:如果遇到真机安装失败的,请检查当前的编译版本和最小支持版本是否和真机一致
3.4 项目视图结构
以默认的【Hello World】项目为例,打开后默认以【Android】方式显示,可以进行切换,常用试图结构如下:
- Android:官方推荐的简洁显示方式,通过类型来组织项目的资产文件,适用于快速开发,但并不反映项目在磁盘上的实际物理组织,不适合新手理解使用。
- Project:项目真实结构,可以看到硬盘上的真实文件目录,顶层的项目文件夹会显示实际的物理位置。
- Packages:分成大类显示,相同类型资源在一棵目录树中
以下以【Project】为例,介绍常用资源目录及文件:
- .gradle、.idea:自动生成的一些文件,不需关系和编辑。因此在git等版本控制中时,一般加入忽略列表,如git的.ignore文件
- app: 项目中代码、资源存放的主目录
- app.build: 编译时自动生成的文件,不需要关心和编辑,建议加入忽略
- app.libs: 放置第三方jar包,放在这个目录下的jar包会被自动添加到项目的构建路径里
- app.src: 放置所有代码、图片、布局、字符串等资源文件。
- app.src.androidTest: 用于android自动化测试
- app.src.main:
- app.src.main.java:核心,放置Java和Kotlin代码的地方。
- gradle: gradle wrapper的配置文件,目前是自动联网后下载,一般不需要关注,建议加入忽略
- .gitignore: git代码仓库版本控制的决定哪些文件忽略上传的配置文件
- build.gradle:全局gradle构建文件,一般不需要修改,建议加入忽略
- gradle.properties: 全局gradle配置文件
- gradlew、gradlew.bat:用于支持在命令行界面中执行gradle命令,其中gradlew是在Linux或Mac系统中使用的,gradlew.bat是在Windows系统中使用。
- local.properties:指定本机中的Android SDK路径,通常内容是自动生成的,一般不需要修改,建议加入忽略
- settings.gradle: 指定项目中所有引入的模块,多模块时使用,一般较少修改。
[…] buy clonidine uk […]
[…] buy cheap seroquel no prescription […]
[…] buy claritin d 12 hour […]
[…] get lamictal cheap […]
[…] casino tops online casino real money […]
[…] real money no deposit casino usa […]
[…] tadalafil 20mg x sildenafil 50 mg […]
[…] betway real money casino […]
[…] order wellbutrin sr online […]
[…] where to buy infant benadryl […]
[…] cheap hydrochlorothiazide […]
[…] cheap lisinopril […]
[…] […]
[…] cheap prednisone […]
[…] tizanidine hcl 4 mg tablet […]
[…] cialis 10mg evey 3 days […]