最近在学习 Android 方面的知识,刚好趁着这个机会整理一下 Android 开发方面的一些知识点。从标题中可以看到,今天只是给大家简单介绍一下 Android 的基本内容以及 Android的项目目录结构。

内容大纲

  • 1. Android 前世今生
    • 1.1 Android 介绍
    • 1.2 Android 发展历程
  • 2. Android 架构
    • 2.1 Linux内核层
    • 2.2 Libraries 系统运行库
    • 2.3 应用框架层
    • 2.4 应用层
  • 3. Android 四大组件
  • 4. Android 开发准备
  • 5. 创建 Android 项目
  • 6. 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 开始实战了。在开始实战之前,我们要有一些准备操作。

  1. 安装JDK:对于JDK的安装,网上教程一大堆,当然也可以参考小编的BlogJDK1.8安装
  2. Android Studio
  3. 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 模式

  1. .gradle 和 .idea
    这两个目录放置的是 Android Studio 自动生成的一些文件,无须关心,也不用去编辑。
  2. app
    项目中的代码、资源等内容基本上是放在这个目录下的。
    比如逻辑代码:app/src/main/java
    资源文件:app/src/main/res
  3. gradle
    这个目录下包含了 gradle wrapper 的配置文件,使用 gradle wrapper的方式是不需要提前讲gradle下载好,系统会自动根据本地的缓存情况决定是否需要联网下载 gradle。
  4. .gitignore
    这个文件是用来将指定的目录或文件排除在版本控制之外的。
  5. build.gradle
    这是项目全局的gradle构建脚本,通常这个文件中的内容不需要修改的。
  6. gradle.properties
    是全局的gradle配置文件,在这里配置的属性将会影响到项目中所有的gradle编译脚本。
  7. gradlew 和 gradlew.bat
    这两个文件是用来在命令行界面中执行gradle命令的,其中gradlew是在linux 或者Mac系统中使用的,gradlew.bat 是在Windows 系统中使用的。
  8. local.properties
    这个文件用于指定本机中的Android SDK路径,通常是自动生成,我们不需要修改,如果本机中的Android SDK位置发生了变化,那么就需要改这个文件。
  9. 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标签下注册

    <applicationandroid: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 相信你已经有个大致的认识,那就休息一下吧。

Android 开发之初识 Android相关推荐

  1. 老罗Android开发视频教程( android解析json数据 )4集集合

    老罗Android开发视频教程( android解析json数据 )4集集合 老罗Android开发视频教程( android解析json数据 ) 第一集android解析json数据 http:// ...

  2. Android 开发工具集合 - (Android Dev Tools)

    收集整理Android开发所需的Android SDK.开发中用到的工具.Android开发教程.Android设计规范,免费的设计素材等. 欢迎大家推荐自己在Android开发过程中用的好用的工具. ...

  3. [android开发必备]Android开发者社区汇总

    [android开发必备]Android开发者社区汇总 经常收到很多人问做android开发去哪个社区,每次都回答的零零碎碎的很比系统,今天统一整理下,把截至目前为止有价值的android开发社区汇总 ...

  4. 视频教程-快速入门Android开发 视频 教程 android studio-Android

    快速入门Android开发 视频 教程 android studio 任苹蜻,爱学啊创始人 & CEO,曾就职于某二车手公司担任Android工程师后离职创办爱学啊,我们的宗旨是:人生苦短,我 ...

  5. 全网最全Android开发工具,Android开发框架大全

    涵盖Android方方面面的技术, 目前保持更新. 时刻与Android开发流行前沿同步. 目录 一.工具 Android开发工具 在线工具宝典大全 二.框架 *缓存框架* DiskLruCache ...

  6. Android开发工具视频Android 12(S)准备

    Android开发工具视频Android 12(S)准备 适配步骤 下载最新的Android studio工具,点我到官网下载最新的吧! 最新版的studio规定jdk使用必须至少11,所以请移步下载 ...

  7. Android开发工具——ADB(Android Debug Bridge) 一概览

    Android Debug Bridge (adb) 是一个android开发人员必会的多功能的调试工具,确实它的名字一样,它在开发者和目标机器之间,架起了一座bridge. adb的用法很简单,只要 ...

  8. 搭建android开发环境,android studio + Genymotion

    刚开始学习android,记录下自己的学习过程,期望和大家一起学习.进步 既然要学习android开发,首要之事就是搭建android开发环境,以前的android的开发环境都是eclipse+and ...

  9. android 开发小工具,Android 开发者必备的八款小工具

    在做Android 开发过程中,会遇到一些小的问题,虽然自己动手也能解决,但是有了一些小工具,解决这些问题就得心应手了,今天就为大家推荐一些Android 开发必备的小工具. Android Pixe ...

  10. Android开发入门教程--Android应用程序结构分析

    2019独角兽企业重金招聘Python工程师标准>>> 一.新建HelloWorld项目: 1.打开Eclipse,点击"File"->"New& ...

最新文章

  1. php并发取源码,PHP读取大文件源码示例-Swoole多进程读取大文件
  2. Selenium定位HTML元素(Python)
  3. android按钮放图片不显示文字,Android 自定义标签 Imagebutton实现ImageButton里放置文字...
  4. 工作说明书(SOW)
  5. HR问:“对我们公司你有什么问题要问的吗”,怎样回答才算完美!
  6. java多线程 Semaphore CountDownLatch ScheduledExecutorService
  7. excel小写转大写公式_不要眨眼!中英文、大小写转换,一秒就搞定!
  8. 笔记本电脑触摸板手势教程——快捷操作
  9. Wireshark: Getting Started
  10. 后端面试(一)计算机网络相关
  11. Charles抓取手机APP接口数据使用方法
  12. Python机器学习笔记之pandas绘图
  13. kafka topic消息分配partition规则
  14. Linux常见的压缩工具
  15. 基于Arduino的魔兽世界挂机装置
  16. python多线程、多进程
  17. 无线网卡、无线模块和无线模组的区别
  18. Excel技巧:如何将空格分隔的一组数据粘贴到excel为列
  19. [模拟][模电][面试][运放]仪表放大器
  20. 安装Windows7虚拟机+ERPU8-10.1软件+SQLserver2008R2

热门文章

  1. 开篇鸿蒙谁为情种,曹雪芹  红楼梦引子    开辟鸿蒙,谁为情种?都只为风月情浓。 这句话什么意思 只要这句话的解释...
  2. 关于robots协议
  3. 提高iOS开发效率的方法和工具
  4. 使用Scrum敏捷开发 —实现多维度碎片化迭代
  5. 湖南大学计算机专业推免生,湖南大学2018年招收推荐免试攻读研究生简章
  6. 解决SSLHandshakeException :sun.security.validator.ValidatorException: PKIX path building failed:
  7. “舒淇半停工原因”上热搜:人生下半场,拼的是健康
  8. 微信小程序入门八头像上传
  9. 银联支付(chinapay)java接入避坑指南
  10. nginx ajax 错误500,聊聊nginx报错499问题