C/C++程序库能被Android系统中的不同组件所使用,并通过应用程序框架为开发者提供服务。C/C++程序库包括九个子系统,分别是图层管理、媒体库、SQLite、OpenGLEState、FreeType、WebKit、SGL、SSL和libc。

(2)Android运行时库

运行时库又分为核心库和ART(5.0系统之后,Dalvik虚拟机被ART取代)。核心库提供了Java语言核心库的大多数功能,这样开发者可以使用Java语言来编写Android应用。相较于JVM,Dalvik虚拟机是专门为移动设备定制的,允许在有限的内存中同时运行多个虚拟机的实例,并且每一个Dalvik 应用作为一个独立的Linux 进程执行。独立的进程可以防止在虚拟机崩溃的时候所有程序都被关闭。而替代Dalvik虚拟机的ART的机制与Dalvik不同。在Dalvik下,应用每次运行的时候,字节码都需要通过即时编译器转换为机器码,这会拖慢应用的运行效率,而在ART 环境中,应用在第一次安装的时候,字节码就会预先编译成机器码,使其成为真正的本地应用。

Linux内核层

Android 的核心系统服务基于Linux 内核,在此基础上添加了部分Android专用的驱动。系统的安全性、内存管理、进程管理、网络协议栈和驱动模型等都依赖于该内核。Linux内核也是作为硬件与软件栈的抽象层。

Android系统源码

对国内的开发者来说最痛苦的是无法去访问android开发网站。为了更好的认识世界,对程序员来说,会翻墙也是的一门技术,带你去领略墙外的世界, 国内开发者访问(androiddevtools) 上面已经有了所有你要的资源,同时可以下载到我们的主角framework。

如果你只是想查看源码,androidxref也是一个不错的资源。

整体结构

Android7.0的根目录结构说明如下表所示:

|– Makefile (全局Makefile文件,用来定义编译规则) |– abi (应用程序二进制接口) |– art (ART运行环境) |– bionic (bionic C库) |– bootable (启动引导相关代码) |– build (存放系统编译规则及generic等基础开发包配置) |– cts (Android兼容性测试套件标准) |– dalvik (dalvik JAVA虚拟机) |– developers (开发者目录) |– development (应用程序开发相关) |– device (设备相关配置) |– docs (参考文档目录) |– external (android使用的一些开源的模组) |– frameworks (核心框架——java及C++语言) |– hardware (部分厂家开源的硬解适配层HAL代码) |– kernel |– libcore (核心库相关文件) |– libnativehelper (动态库,实现JNI库的基础) |– ndk (NDK相关代码,帮助开发人员在应用程序中嵌入C/C++代码) |– out (编译完成后的代码输出与此目录) |– packages (应用程序包) |– pdk (Plug Development Kit 的缩写,本地开发套件) |– prebuilts (x86和arm架构下预编译的一些资源) |– sdk (sdk及模拟器) |– system (底层文件系统库、应用及组件——C语言) |– tools (工具文件) |– toolchain(工具链文件) |– vendor (厂商定制代码)

应用层部分

应用层位于整个Android系统的最上层,开发者开发的应用程序以及系统内置的应用程序都位于应用层。源码根目录中的packages目录对应着系统应用层。

|– apps (核心应用程序) |– experimental (第三方应用程序) |– inputmethods (输入法目录) |– providers (内容提供者目录) |– screensavers (屏幕保护) |– services (通信服务) |– wallpapers (墙纸)

从目录结构可以发现,packages目录存放着系统核心应用程序、第三方的应用程序和输入法等等,这些应用都是运行在系统应用层的,因此packages目录对应着系统的应用层。

本文在开源项目:Android开发不会这些?如何面试拿高薪! 中已收录,里面包含不同方向的自学编程路线、面试题集合/面经、及系列技术文章等,资源持续更新中…

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级安卓工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Android移动开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频 如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注Android)

得这些内容对你有帮助,可以添加下面V无偿领取!(备注Android)** [外链图片转存中…(img-phRYi0zq-1710968095333)]

精彩链接

评论可见,请评论后查看内容,谢谢!!!评论后请刷新页面。