Android 开发之初识 Android
最近在学习 Android 方面的知识,刚好趁着这个机会整理一下 Android 开发方面的一些知识点。从标题中可以看到,今天只是给大家简单介绍一下 Android 的内容,并没有涉及到代码方面的内容,代码层面的内容会在下一篇文章中进行展示。首先先看一下本文的大纲内容大纲1. Android 前世今生1.1 Android 介绍1.2 Android 发展历程2. Android 架构2.1 Li
最近在学习 Android 方面的知识,刚好趁着这个机会整理一下 Android 开发方面的一些知识点。从标题中可以看到,今天只是给大家简单介绍一下 Android 的基本内容以及 Android的项目目录结构。
内容大纲
1. Android 前世今生
1.1 Android 介绍
Android 原为机器人的意思,现在指的是基于Linux系统的开源的操作系统。目前 Android SDK已经更新到31了,也就是Android 12,我们可以在 Android官网或者维基百科 中进行查看,每一个Android SDK版本对应一个Android版本,当别人问你,你现在用的SDK版本是多少啊,这个问题不能不知道哈。下图展示的是 Android的 logo,头上插两个天线的机器人。
1.2 Android 发展历程
在2003年10月,Andy Rubin 和他的三个小伙伴一起创办了 Android 公司;2005年8月份谷歌收购了这家仅仅成立了22个月的公司,并让 Andy Rubin继续负责 Android项目。经过数年研究,谷歌在2008年推出了 Android系统的第一个版本。当然一个产品的发展肯定会受到各方质疑的,下面就有几个小故事。第一个小故事:乔布斯认为 Android是一个抄袭iPhone的产品,里面剽窃了很多iPhone的创意,并声称要毁掉 Android,但结果可想而知啊。。。第二个小故事:Android是基于 Linux 开发的操作系统,在2021年被Linux团队从 Linux 内核主线中除名。。。第三个故事:Android中的应用程序都是使用java开发的,甲骨文则针对 Android侵犯 java知识产权一事对谷歌提起了诉讼。。。即使这样也没有阻碍 Android的发展。再加上Android操作系统是开源的,所以Android很快就成功的打入市场。
2. Android 架构
Android 包含四大组件,如下图所示
从底向上依次为大家介绍
2.1 Linux内核层
Android的核心系统服务基于Linux2.6内核,如安全管理器,进程管理器、网络协议栈和一些驱动都依赖于Linux2.6内核。Android更多的是需要一些与移动设备相关的驱动程序,主要的驱动有:Display Driver(显示驱动)、Camera Driver(照相机驱动)、Bluetooth Driver(蓝牙驱动)、Keypad Driver(键盘驱动)、Power Driver(能源驱动)等
2.2 Libraries 系统运行库
这一层包含两个部分:Libraries 函数库和 Android RunTime 运行时。
(1)Libraries函数库
主要是使用C/C++编写的,Android应用程序开发人员并非直接使用此函数库,而是通过更上层的应用程序框架来使用此函数功能,所以该函数库被称为原生函数库(Native Libraries)。此函数库依照功能又细分为各种类型的函数库,如媒体函数库,界面管理函数库、SQlite等
(2)Android Runtime
主要包含两个内容,一个Android核心函数库、一个是Dalvik 虚拟机。
Android核心函数库:所提供的功能大部分与java核心函数库相同。
Dalvik 虚拟机:每个Java程序都运行在Dalvik虚拟机之上。与PC一样,每个Android应用程序都有自己的进程,Dalvik虚拟机只执行".dex"的可执行文件。当Java程序通过编译,最后还需要通过SDK中的 “dx"工具转化成”.dex"格式才能正常地在虚拟机上执行。
2.3 应用框架层
就是 Android 的 API,程序员使用此 API 可以快速开发出 Android 应用程序,比如,用户接口、活动管理、内容提供者、资源管理器等。
2.4 应用层
是用java语言编写的运行在虚拟机上的程序,这些应用程序在设备上都是以一个小图标表示,用户通过点击图标来运行程序。Android系统一般内建有Email、短信收发程序、浏览器、联系人等功能的应用程序。
3. Android 四大组件
Android系统的四大组件:
活动(Activity):Activity 是Android应用程序的门面,凡是在应用中能够看到的东西,都是放在活动中的。
服务(Service):Service在后台运行
广播接收器(Broadcast Receiver):允许应用接收来自各处的广播消息,比如电话、短信等,当然也可以向外发出广播消息。
内容提供器(Content Provider):为应用程序之间共享数据提供了可能,比如想要读取系统通讯录中的联系人,就需要用过内容提供器来实现。
具体的代码我在后面的Blog中给大家展示。
4. Android 开发准备
到这里对于Android 我们已经有了一个初步的认识,那接下来我们就要开始进入 Android 开始实战了。在开始实战之前,我们要有一些准备操作。
- 安装JDK:对于JDK的安装,网上教程一大堆,当然也可以参考小编的BlogJDK1.8安装
- Android Studio
- Android SDK :这个插件可以在 Android Studio中安装
我们已经初步认识了Android。本篇文章主要给大家分享 Android 的项目目录结构。我的IDE是Android Studio。
5. 创建 Android 项目
每一个编程语言写出的第一个程序无疑是 Hello World。按照传统我们也写一个Hello World。
第一步:创建一个Android 项目。名为 My Application
打开 Android Studio——Create new Project——Empty Activity ——Next——Finish。
其中,name: My Application ,这也是应用名称,应用安装在手机上之后显示的名字就是My Application。
Package name :包名,至少两个部分组成,否则会显示错误信息。
Minimum SDK :也就是Android SDK的最小支持的版本,选择API 16的话,表示我们的应用可以运行在A PI 16或以上版本中。
6. Android项目结构详解
任何一个新建的项目都会使用默认的 Android 模式的项目结构,为了接近真实的项目结构,我们切换成 Project 模式
- .gradle 和 .idea
这两个目录放置的是 Android Studio 自动生成的一些文件,无须关心,也不用去编辑。 - app
项目中的代码、资源等内容基本上是放在这个目录下的。
比如逻辑代码:app/src/main/java
资源文件:app/src/main/res - gradle
这个目录下包含了 gradle wrapper 的配置文件,使用 gradle wrapper的方式是不需要提前讲gradle下载好,系统会自动根据本地的缓存情况决定是否需要联网下载 gradle。 - .gitignore
这个文件是用来将指定的目录或文件排除在版本控制之外的。 - build.gradle
这是项目全局的gradle构建脚本,通常这个文件中的内容不需要修改的。 - gradle.properties
是全局的gradle配置文件,在这里配置的属性将会影响到项目中所有的gradle编译脚本。 - gradlew 和 gradlew.bat
这两个文件是用来在命令行界面中执行gradle命令的,其中gradlew是在linux 或者Mac系统中使用的,gradlew.bat 是在Windows 系统中使用的。 - local.properties
这个文件用于指定本机中的Android SDK路径,通常是自动生成,我们不需要修改,如果本机中的Android SDK位置发生了变化,那么就需要改这个文件。 - settings.gradle
这个文件用于指定项目中所有引入的模块,由于项目中目前只有一个app模块,因为该文件中也就只引入了这一个模块。通常情况下模块的引入都是自动完成的,手动修改的场景比较少。
下面我们着重讲解 App目录下的文件
-
build
这个目录和外层的build目录类似,主要包含一些在编译时自动生成的文件,不过它里面的内容更加复杂,不需要过多关心。(当运行程序之后才会显示build文件) -
libs
如果项目中使用到了第三方jar包,就需要把这些jar包都放在libs目录下,放在这个目录下的jar包都会被自动添加到构建路径中。 -
androidTest
用来编写Android Test测试用例的,可以对项目进行一些自动化测试。 -
java
java目录是放置我们所有java代码的地方 -
res
项目中使用的所有图片、布局,字符串等资源都要存放在这个目录下。
图片放在drawable目录下、布局放在layout目录下、字符串放在values目录下。 -
AndroidManifest.xml
这是整个Android项目的配置文件,在程序中定义的所有四大组件都需要在这个文件里注册,另外还可以在这个文件中给应用程序添加权限声明。打开AndroidManifest.xml 文件,活动一般在application标签下注册
<application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/Theme.MyApplication"> <activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application>
-
test
用来编写Unit Test 测试用例的,是对项目进行自动化测试的另一种方式。 -
.gitignore
这个文件用于将app模块内的指定的目录或文件排除在版本控制之外,作用和外层的.gitignore 文件类似。 -
app.iml
项目自动生成的文件,我们不需要关心或修改这个文件中的内容。 -
build.gradle
这是app模块的gradle构建脚本,这个文件中会指定很多项目构建相关的配置。 -
proguard-rules.pro
这个文件用于指定项目代码的混淆规则,当代码开发完成之后打包安装包文件,如果不希望代码被被人破解,通常会将代码进行混淆,从而让破解者难以阅读。
好了,到目前为止对于Android 相信你已经有个大致的认识,那就休息一下吧。
更多推荐
所有评论(0)