博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android项目结构 以及体系结构
阅读量:5769 次
发布时间:2019-06-18

本文共 2333 字,大约阅读时间需要 7 分钟。

学习Android平台的人一般对Android的平台的应该有点认识 其它的就不多讲了

Android项目一般由以下几个部分构成

以上是一个简单的Android项目结构目录图

1. src  主要是 源文件目录 放置业务逻辑代码以及相应的UI代码

2. gen 下面有个R.java文件夹 该文件是建立Android项目自动生成的  该文件是只读文件 不可以更改 里面有很多静态 类名字与res的中资源文件一一对应

一般有attr ,drawable id raw layout string xml 具体看你的项目文件

3. assets 可以包含系统使用到的文件 比如一些图片 mp3 视频类文件

4. res 资源文件 主要有以下文件

drawable : 我们一般放置一些样式xml也放些图片

drawable-hdpi 主要放置一些高清晰的 像素的图片

drawable - l 放置一些低像素的图片

drawable - m 放置一般像素的图片 

layout 主要放置一些布局文件

menu 是放置一些 xml菜单式文件

==============================

arrays.xml 一些数组元素

colors.xml 一些颜色的值

strings.xml一些字符串

styles.xml 样式文件

dimens.xml 一些像素尺寸的文件

=======================

values-en-rUS 英文资源文件包

values-zh-rCN 中文资源文件包

系统会感觉系统设置的语言 应用程序选择相应的资源文件 实现国际化

AndroidManifest.xml项目的总配置文件 记录了各种组件 ,以及应用程序相应的功能,可以在里面配置相应的服务 权限 等等(后期详细介绍)

defalut.properties 主要记录android的环境信息 比如Android的版本信息

简单讲下Android体系结构

这是Android官方的图纸

1. Applicaiton 是android核心应用程序包 连同Android一起发布的 如 发短信 打电话 Email 日历 等等 后期给大家一一介绍 android 源码中的应用程序

2. framework 应用程序框架,开发人员可以访问API框架进行应用程序开发 如

丰富而又可扩展的视图(Views),可以用来构建应用程序,它包括列表(lists),网格(grids),文本框(textboxes),按钮(buttons),甚至可嵌入的web浏览器。

  *内容提供器(ContentProviders)使得应用程序可以访问另一个应用程序的数据(如联系人数据库),或者共享它们自己的数据

  * 资源管理器(Resource Manager)提供非代码资源的访问,如本地字符串,图形,和布局文件(layoutfiles)。

  * 通知管理器 (Notification Manager) 使得应用程序可以在状态栏中显示自定义的提示信息。

  * 活动管理器( Activity Manager) 用来管理应用程序生命周期并提供常用的导航回退功能。

3.系统运行库

  1)程序库

  Android包含一些C/C++库,这些库能被Android系统中不同的组件使用。它们通过Android应用程序框架为开发者提供服务。以下是一些核心库:

  * 系统 C 库 - 一个从 BSD 继承来的标准 C 系统函数库( libc ),它是专门为基于embeddedlinux的设备定制的。

  * 媒体库-基于PacketVideoOpenCORE;该库支持多种常用的音频、视频格式回放和录制,同时支持静态图像文件。编码格式包括MPEG4,H.264,MP3,AAC,AMR, JPG, PNG 。

  * Surface Manager - 对显示子系统的管理,并且为多个应用程序提 供了2D和3D图层的无缝融合。

  * LibWebCore - 一个最新的web浏览器引擎用,支持Android浏览器和一个可嵌入的web视图。

  * SGL - 底层的2D图形引擎

  * 3D libraries - 基于OpenGLES1.0APIs实现;该库可以使用硬件3D加速(如果可用)或者使用高度优化的3D软加速。

  * FreeType -位图(bitmap)和矢量(vector)字体显示。

  * SQLite - 一个对于所有应用程序可用,功能强劲的轻型关系型数据库引擎。

  2)Android 运行库

  Android 包括了一个核心库,该核心库提供了JAVA编程语言核心库的大多数功能。

  每一个Android应用程序都在它自己的进程中运行,都拥有一个独立的Dalvik虚拟机实例。Dalvik被设计成一个设备可以同时高效地运行多个虚拟系统。Dalvik虚拟机执行(.dex)的Dalvik可执行文件,该格式文件针对小内存使用做了优化。同时虚拟机是基于寄存器的,所有的类都经由JAVA编译器编译,然后通过SDK中的dx工具转化成.dex格式由虚拟机执行。

  Dalvik虚拟机依赖于linux内核的一些功能,比如线程机制和底层内存管理机制。

  4.Linux 内核

  Android 的核心系统服务依赖于 Linux 2.6内核,如安全性,内存管理,进程管理,网络协议栈和驱动模型。Linux内核也同时作为硬件和软件栈之间的抽象层。

 

转载于:https://www.cnblogs.com/zhangkaimin/p/4302741.html

你可能感兴趣的文章
LeetCode36.有效的数独 JavaScript
查看>>
Scrapy基本用法
查看>>
PAT A1030 动态规划
查看>>
10年java架构师教你如何快速打好Java基础?
查看>>
DOS Network一月项目月报
查看>>
自制一个 elasticsearch-spring-boot-starter
查看>>
软件开发学习的5大技巧,你知道吗?
查看>>
面试题 LazyMan 的Rxjs实现方式
查看>>
java入门第二季--封装--什么是java中的封装
查看>>
【人物志】美团前端通道主席洪磊:一位产品出身、爱焊电路板的工程师
查看>>
4. Python3源码—字符串(bytes)对象
查看>>
Spark集群概览
查看>>
一份关于数据科学家应该具备的技能清单
查看>>
机器学习实战_一个完整的程序(一)
查看>>
Web框架的常用架构模式(JavaScript语言)
查看>>
如何用UPA优化性能?先读懂这份报告!
查看>>
刚开发好的联网“飞机大战”,demo开放,随便玩
查看>>
该放弃正在堕落的“RNN和LSTM”了
查看>>
Spring Boot 教程(四): Spring Boot 整合 thymeleaf MyBatis,展示用户信息
查看>>
node.js学习之npm 入门 ——2.《下载和管理npm》
查看>>