[温故与知新]Android群英传学习记录

Android群英传 第一章 [Android体系与系统架构]


以前一直很懒,很怕麻烦.不是很喜欢写博客,但是工作中,遇到的问题有很多以前发生过都遇到过,无奈没有记录.所以当问题再次发生时只有去google,百度.查找资料,这样很耗费时间,同时对公司来说也是不负责任的,所以开始记录一下工作中的问题,与学习的心得与体会,方便以后查找. 

之前在论坛上发现很多人在推荐"Android群英传"这本书,索性也就买了一本过来学习补充一番.下面开始记录一些读"Android群英传"这本书中的一些要点.买回来发现还是不错的.挺好的一本书,不贵,而且内容分析的很详细.
开篇第一章,无可厚非是对android的体系架构进行详细描写.

一、Android的系统架构
1. Linux
Linux层包含了Android系统的核心服务.包括硬件驱动、进程管理、安全系统等等
2. Daivik 与 ART
-Daivik:包含了整套Android运行时体系,每个App运行时都会分配Daivik虚拟机,保证App之间不受干扰、保持独立。它的特点是运行时编译,在系统需要的时候才会运行起来
-ART:它的特点就是在App安装的时候就进行编译。将来运行时无需在编译,在App安装的时候就已经编译好了App所以在需要运行的时候,直接运行即可,无需再编译。
(在Android5.x开始ART就已经取代了Daivik)
3. Framework
见书中3页图1.5为Framework的详细图
4. Standard Libratice
其中包含了Android中的一些标准库,开发者在开源环境中可以使用的开发库
5. Application
Android中的NDK和JAVA开发的App主要的构成都是由Android Manifest文件、Daivik Classes、Resource Bundle这几个东西构成
当然NDK开发的App中还包含了Libraries & Jni


二、Android App 组件架构

  1. Android四大组件的协同工作。Activity:主要适用于信息的展示,相当于我们MVC中的 V层。Service:相当于C层控制着我们自己编写的模块工作。在Android程序中我们通常使用Intent对象进行不同组件之间通信、传递信息、交换数据。通过Intent对象,Android的四大组件形成了各自独立而又紧密的联系(在一个完整的Android 程序中不应该过多的在Activity中进行控制的工作)
  2. 应用运行时的上下文对象:上下文可以理解为“当前对象在程序中所处的环境,一个系统交互的过程”,在Context对象中为我们封装了这样一个“语境”,Activity、Service、Application中都是继承自Context,所以他们也会自动拥有一个这样的对象,就像我们在Activity中可以直接使用‘this’关键字获得当前对象的Context,而在内部类中我们只能使用‘XXXXXActivity.this’来获取,这是因为他们从严格意义上讲也是一个Context对象。;
    Android会在以下的几个时间点来创建Context对象:
    1.创建Application时;
    2.创建Activity时;
    3.创建Service时;
    这也验证了我们之前的说法,创建Context的时机就是在创建Context的实现类的时候。当程序第一次创建的时候会创建一个Application的实例,同时创建Application的Context对象。所有的组件都会拥有这个对象。这个应用上下文对象会贯穿整个应用进程的生命周期;

三、Android系统源代码目录与系统目录

  1. Android系统源代码:Android需要将源代码编译后才能运行,我们通常会使用 Eclipse、Android Studio来编译运行,但是它们都只是IDE工具,有很多它们是无法完成的,比如自动化编译、定制编译、版本控制、自动化测试等。因此Android采用了Makefile机制,Makefile机制里面定义了一系列的规则来指定模块,那些需要编译,以及这些文件按照怎样的顺序编译。甚至定义编译规则,打包规则等。因为Makefile就像一个shell脚本,不仅可以使用自己的语法,也能调用操作系统的一些命令。每一个功能单位的目录下都会有一个Makefile文件,这样每一级向上,通过一个个的Makefile文件把整个源代码有条不紊的联系在一起;
  2. Android系统目录:
    1.system/app/:这里面放的是一些系统的app
    2.system/build.prop:这里面记录的是系统的属性信息
    3.systen/fonts/:系统字体的存放目录,root后可下载TTF格式字体替换原字体达到修改字体的效果
    4.system/lib/:存放共享库(.so)文件
    5.system/media/:保存系统提示音系统铃声,其中system/media/audio/目录,这里保存系统默认的铃声,alarrns目录是闹铃提示音,notification目录是短信提示音,ringtonex目录是来电铃声,ui目录则是一些界面提示音。
    6./system/usr/:保存配置文件,如键盘、共享、时区文件等。
    7.data/app/:包含了用户大部分数据信息,其中,/data/app中包含了用户安装的App或者升级的App
    8./data/data/:这里面包含了App的数据信息,文件信息,数据库信息等,以报名的方式来区分个个应用
    9./data/system/:这个目录中包含了手机中的各项系统信息;
    10./data/misc/:保存了大部分的Wi-Fi,VPN信息

以上只做个人参考学习使用,如有不对,敬请指导

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值