android学习之路1

来源:互联网 发布:mac os 修改开机密码 编辑:程序博客网 时间:2024/05/17 23:50
Android系统是建立在Linux系统之上的,该平台由 操作系统,中间件,用户界面和软件4层组成。
Android体系结构
底层Linux操作系统
library c/c++的函数库
应用程序框架层 java提供的函数库
应用程序

一 .应用程序层     该层提供一些核心应用程序包,例如电子邮件、短信、日历、地图、浏览器和联系人管理等。同时,开发者可以利用Java语言设计和编写属于自己的应用程序,而这些程序与那些核心应用程序彼此平等、友好共处。 该层是Android应用开发的基础,开发人员大部分情况是在和她打交道。


二.应用程序框架层   包括活动管理器、窗口管理器、内容提供者、视图系统、包管理器、电话管理器、资源管理器、位置管理器、通知管理器和XMPP服务十个部分。在Android平台上,开发人员可以完全访问核心应用程序所使用的API框架。并且,任何一个应用程序都可以发布自身的功能模块,而其他应用程序则可以使用这些已发布的功能模块。基于这样的重用机制,用户就可以方便地替换平台本身的各种应用程序组件。

 三 .系统库和Android运行时  系统函数库包括九个子系统统,分别是图层管理、媒体库、SQLite、OpenGLEState、FreeType、WebKit、SGL、SSL和libc。Android运行时包括核心库和Dalvik虚拟机,前者既兼容了大多数Java语言所需要调用的功能函数,又包括了Android的核心库,比如android.os、android.net、android.media等等。后者是一种基于寄存器的虚拟机,虚拟机主要是完成对生命周期的管理、堆栈的管理、线程的管理、安全和异常的管理以及垃圾回收等重要功能。
 四. Linux内核
    一些底层的驱动
jvm和dvm的区别
<版权问题


<效率问题  dvm将各个class文件还有头文件常量池中相同数据合成放在dex文件中




2 Android的四大组件
 Activity  Service BroadcastReciever ContentProvider
 2.1  Activity  是负责和用户交互的组件, 通过SetcontentView来显示指定组件 
 2.2  Service  通常在后台运行,一般不需要与用户交互,无图形界面。 值得注意的是servcie与thread的区别:servcie是运行在主线程中的,一般不执行耗时操作,会报ANR   异常。thread 新建后 在里面执行耗时操作
  Service中再创建一个子线程,然后在这里去处理耗时逻辑就没问题了。
额,既然在Service里也要创建一个子线程,那为什么不直接在Activity里创建呢?这是因为Activity很难对Thread进行控制,当Activity被销毁之后就没有<span sty     任何其它的办法可以再重新获取到之前创建的子线程的实例。而且在一个Activity中创建的子线程,另一个Activity无法对其进行操作。但是Service就不同了,
     所有的Activity都可以与Service进行关联,然后可以很方便地操作其中的方法,即使Activity被销毁了,之后只要重新与Service建立关联,就又能够获取到原有的Service中Binder的实例

2.3 BroadcastReciever   两种注册方式  1:Context.registReceiver()注册 2:配置文件中注册
0 0
原创粉丝点击