Android 进阶学习笔记整理

一.android系统架构图及各层介绍

1. 应用层:应用是用java语言编写的运行在虚拟机上的程序,比如通讯录,日历,电话,短信,浏览器等。

2. 应用框架层:这一层是编写Google发布的核心应用时所使用的API框架,开发人员同样可以使用这些框架来开发自己的应用,这样便简化了程序开发的结构设计,但是必须要遵守其框架的开发原则。应用程序框架层包括活动管理器、窗口管理器、内容提供者、视图系统、包管理器、电话管理器、资源管理器、位置管理器、通知管理器和XMPP服务十个部分。

3. 统运行库(C/C++库以及Android运行库)层:当使用Android应用框架时,Android系统会通过一些C/C++库来支持我们使用的各个组件,使其更好的为我们服务,比如其中的SQLite(关系数据库),Webkit,chromium(Web浏览器引擎),Dalivk,ART(Android Runtime)。

4.Linux内核层:Android的核心系统服务基于Linux内核,如安全性、内存管理、进程管理、用户权限管理、网络协议栈和驱动模型等都依赖于该内核,比如Binder IPC(Internet Process Connection进程间通信)驱动,android的一个特殊驱动程序,具有单独的设备节点,提供进程间通信的功能。
       
        若是从事Android应用开发,那应该研究Android的应用框架层和应用程序层;若是从事Android系统开发,那应该研究Android的系统库和Android运行时;若是从事Android驱动开发,那应该研究Android的Linux内核。找准定位,事倍功半。

二. 随笔整理(导读)

Android 应用层:


Android 框架层:

  1.  Android 源码分析(一) 开篇介绍
  2. Android 源码分析(二) Activity 启动分析
  3. Android 源码分析(三) Service 启动分析
  4. Android 源码分析(四) Handler 异步消息机制
  5. Android 源码分析(五) Zygote 进程
  6. Android 源码分析(六) SystemServer 进程
  7. Android 源码分析(七) Launcher 桌面程序启动分析
  8. Android 源码分析(八) Launcher 桌面启动App过程
  9. Android 源码分析(九) Init 启动分析
  10. Android 源码分析(十) Dalvik 虚拟机创建过程
  11. Android 源码分析(十一) 事件传递机制Android源码分析(十二)ServiceManager服务分析
  12. Android源码分析(十二)ServiceManager服务分析
  13. Android源码分析(十三)ActivityManagerService服务分析
  14. Android源码分析(十四)PackageManagerService服务分析

三.学习资料

  1.Android源码 https://pan.baidu.com/s/15PNt1W4jjxZXM9o-qCC94A 密码:p3td

  2.Android 6.0 离线API https://pan.baidu.com/s/17E01X32lHOrz0FN_QlXmwQ 密码: styi

  3.探索Android FrameWork底层开发视频 https://pan.baidu.com/s/14BiZNm2C362afq3K-c3AJA 密码: i7yd

       
       在学习过程中借鉴也翻阅了很多网上大牛的一些文章,加深自己的理解,如果文中未注明出处原文,还请原作者谅解,因为实在是找不到原文了。这里我推荐两个对Android 框架层研究比较透彻的两位大牛的bolg,他们帮助我加深了很多概念的理解。感谢他们。
  《深入理解Android系列》丛书的作者: http://www.cnblogs.com/innost
  《Android系统源代码情景分析》作者:https://blog.csdn.net/Luoshengyang/
        我的系列随笔只是作为一个自己的学习笔记,理解程度无法与两位大牛著作对比,但是可以作为读者或者自己初步探索Android源码和理解其实现原理的第一步。
       
        在工作中,会发现,其实很多东西,我们都会,但是就是讲不出来。学计算机出生,保持严谨性是必须的,有时候正因为时刻的严谨性,让我们不敢轻易对一些概念东西给出自己观点,怕说错,归根到底是对其实现原理理解不够透彻,让我们畏手畏脚的进行总结。“大胆假设,小心验证” 我想这句话可以作为我们学习技术的一个参考。
 
 
附上android知识体系图
  
posted @ 2018-07-22 16:27 FreeFunCode 阅读(...) 评论(...) 编辑 收藏