Android学习之旅(2)---基础知识

android体系结构

Android系统的底层是基于linux系统(linux2.6内核)之上,和其他的操作系统一样Android也采用分层的架构,从底到高分别是:Linux内核层(Linux Kernel)、Android系统运行层(包括Android Runtime和原生态的c/c++库Native C/C++ Libraies)、Java Api框架层(Java Api Framework)、Applications 应用层。

Linux kernel

Android系统建立在linux2.6之上。linux内核提供了 安全性、内存管理、进程管理、网路协议栈和驱动模型等核心系统服务,即Android系统的底层硬件驱动由Linux kernel内核负责。除此之外,linux内核也是系统硬件和软件叠层之间的抽象层。

Android系统运行层

C/C++库

Android包含了C/C++库的集合,通常情况下Android应用开发者不能直接调用,需要通过java Api层来调用。

  • 系统C库
    一个从BSD系统派生出来的标准出来C系统库(libc),并且专门为嵌入式Linux设备调整过。
  • 媒体库
    基于PacketVideo的OpenCORE,这套媒体库支持播放和录制音频和视频格式,以及查看静态图片。主包括MPEG4、H.264、MP3、AAC、AMR、JPG、PNG等多媒体格式。
  • Surface Manager
    管理对显示子系统的访问,并可以对个应用程序中的2D和3D图像提供无缝整合。
  • LibWebCore
    一个全新的Web浏览器引擎,该引擎为Android浏览器提供支持,也为WebView提供支持,WebView完全可以嵌入开发者自己的应用程序中。
  • SGL
    底层的2D图像引擎。
  • 3D libraries
    基于OpenGL ES API实现的3D系统,这套系统3D库既可以使用硬件3D加速,也可以使用高度优化的软件3D加速。
  • FreeType
    位图和向量字体显示。
  • SQLite
    供所有应用程序使用的功能强大的轻量级关系数据库。
Android Runtime

Android运行时由两部分组成:Android核心库集和ART。其中核心库提供了java语言核心库所能使用的绝大部分功能,而虚拟机(和java的虚拟机类似)负责运行Android应用程序。

  • ART、Dalvik、AOT、JIT
    在Android5.0之前Android的运行时由Dalvil虚拟机和Android核心库组成,它采用了一种JIT(just in time “即时编译技术”)的解释器进行动态编译并执行,这就导致Android的软件在运行速度比较慢。而ART模式使用的AOT(Ahead Of Time “提前编译技术”),就是在程序第一次安装时,字节码就会预先编译成机器码,这样就避免了每次运行时都需要编译程序,从而提高程序的启动和运行速度,但这样会导致程序所需要的空间比较大,可以理解成一种空间换时间的技术。

Java Api框架层

Java Api框架层提供了大量的Api供开发者使用,除了作为应运程序开发的基础之外,也是软件复用的重要手段,任何一个应用程序都可以发布他的功能模块(发布时需要准守跨框架的约定)。

Applications(应用程序)框架层

所有的Android应用程序和我们编写的程序都会被安装在这层。

Android Studio的工程目录

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hfCEjPTT-1575107594398)(./AndroidStudio工程目录.png)]
其中文件的代码、资源等内容基本都是放在App文件夹下的,下面将介绍一下App文件夹中的重要内容。

  • build
    build目录是在程序编译时自动生成的文件,包括一些零时文件,还有生成的.apk文件就在该目录下。
  • libs
    存放项目中使用的第三方jar包,该目录下的jar包会自动添加到构建路径中。
  • src/AndroidTest
    用来编写Android Test测试永猎的,可以对项目进行一些自动化测试。
  • src/main/java
    存放编写的java代码
  • src/main/res
    存放需要的资源文件

    drawable:存放图片
    mipmap: 存放应用图标
    values: 存放字符串、颜色、样式配置
    layout:布局文件

  • src/main/AndroidManifest.xml
    安卓应用清单文件,该文件时每个Android项目所必需的,他是整个android应用的全局描述文件。该文件说明了该应用的名称,所使用的图标以及包含的组件等。
  • test
    此处用来编写unit Test测试用例,可以对项目进行自动化测试。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值