【Xamarin开发 Android 系列 6】 Android 结构基础(上)
原文:【Xamarin开发 Android 系列 6】 Android 结构基础(上)
前面大家已经熟悉了什么是Android,而且在 【Xamarin开发 Android 系列 4】 Android 基础知识 一文里,开篇就上图,展示了Android的架构。

大概也就4层
APP--应用程序层
Framework --公共架构层
Native Libs + Dalvik VM---系统类库+虚拟机
Linux Kernel--Linux内核
Android 是一个基于Linux开发的可以运行在智能手机 平板电脑设备上 的系统。如 Android4.0 基于的是Linux2.6 内核。
在Native Libs 中 提供了一些服务类库,基本都是基于C/C++开发的开源类库,提供了 常用的功能封装
Dalvik 虚拟机,提供对Android程序 也就是Java IL 代码 .class 文件的解析。解析过程如下:

Framework层 提供了对设备操作的服务接口,SDK,均是基于java的实现,提供 对摄像头 、Wifi 、定位服务 、系统资源等其他的服务调用的SDK封装实现,供开发APP的开发者,进行调用。
App 层 也就是应用层 ,通讯录 电话 短信 邮箱 Web浏览器等应用,提供用户操作界面。
所以整合来看,Android 的开发模式是经典的 多层 模式, APP 是呈现层 Framework 提供基本功能的封装 Native Lib +Dalvik 虚拟机类似 .netFramework 的CLR。
最终将可执行指令发送到Linux内核,对Linux系统操作,Linux系统中包含了最底层的对硬件的调用管理,这就类似 Windows程序的 SDK COM+ 调用方式。
-----------------------------以上是Android架构的基本,我们实际中开发的仅仅在App层跟Framework层-------------------------------------
使用Framework 提供的SDK 进行 Application的开发。
我们重点 强调App的开发。
applicaton 开发完毕后,是以.apk的 压缩包形势作为安装包。压缩包中包含 程序所需要的编译好的指令文件(.dex) 、资源文件、和一个清单文件(AndroidManifest.xml)
以及所需要的类库。安装包 可以给予网络地址、 URL 邮件地址 、或者内存卡的形式进行程序的安装。
程序包的最重要的应该属于哪个清单文件,清单文件 包含了程序的Android的最低版本信息、入口界面 、涉及的软件、需要的权限信息、资源文件等等信息。
【Xamarin开发 Android 系列 6】 Android 结构基础(上)的更多相关文章
- [Android系列—] 2. Android 项目文件夹结构与用户界面的创建
前言 在 [Android系列-] 1. Android 开发环境搭建与Hello World 这一篇中介绍了怎样高速搭建Android开发环境, 并成功了建立一个没有不论什么代码更改的 Androi ...
- Web程序员开发App系列 - 调试Android和IOS手机代码(补图)
Web程序员开发App系列 Web程序员开发App系列 - 认识HBuilder Web程序员开发App系列 - 申请苹果开发者账号 Web程序员开发App系列 - 调试Android和iOS手机代码 ...
- Xamarin.Forms学习系列之Android集成极光推送
一般App都会有消息推送的功能,如果是原生安卓或者IOS集成消息推送很容易,各大推送平台都有相关的Sample,但是关于Xamarin.Forms的消息推送集成的资料非常少,下面就说下Xamarin. ...
- Android 工程在4.0基础上混淆
Android现在对安全方面要求比较高了,我今天要做的对apk进行混淆,用所有的第三方工具都不能反编译,作者的知识产权得到保障了,是不是碉堡了. 一,首先说明我这是在4.0基础上进行的. 先看看pro ...
- 【转】Android 工程在4.0基础上混淆
Android现在对安全方面要求比较高了,我今天要做的对apk进行混淆,用所有的第三方工具都不能反编译,作者的知识产权得到保障了,是不是碉堡了. 一,首先说明我这是在4.0基础上进行的. 先看 ...
- Android多画面幻灯片:ViewPager基础上,利用与PagerTabStrip出生缺陷(源代码)
近期使用ViewPager.读了几个人说是不是很清晰的信息,干脆自己写demo总结下. 样例非常easy.Activity里有三个界面能够滑动.每个界面都有一个button并设置好了监听.PagerT ...
- ]Kinect for Windows SDK开发入门(六):骨骼追踪基础 上
原文来自:http://www.cnblogs.com/yangecnu/archive/2012/04/06/KinectSDK_Skeleton_Tracking_Part1.html Kinec ...
- 【开发者portal在线开发插件系列二】多条上下行消息(messageId的使用)【华为云技术分享】
前言和基本操作请参考[开发者portal在线开发插件系列一]profile和基本上下行消息,此处不再复述,没操作过的小伙伴一定要先去看看哦~ 话不多说,开始今天的演(表)示(演) 场景说明: 假设一: ...
- [Android系列—] 1. Android 开发环境搭建与Hello World
前言 開始之前先熟悉几个名词: SDK -- Software Development Kit, 软件开发工具包.这个词并不陌生, JDK,就是Jave Development Kit,相同对于And ...
随机推荐
- linux下如何删除文件夹
直接rm就可以了,不过要加两个参数-rf 即:rm -rf 目录名字-r 就是向下递归,不管有多少级目录,一并删除-f 就是直接强行删除,不作任何提示的意思删除文件夹实例: rm -rf /var/l ...
- Hibernate注解错误之- org.hibernate.MappingException: Could not determine type for:
Hibernate 注解 @OneToOne 时候,出现以下错误,经调试,发现 注解要么全部放在字段上,要么全部放在get方法上,不能混合使用! org.hibernate.MappingExcept ...
- C#里面比较时间大小三种方法
1.比较时间大小的实验 string st1="12:13";string st2="14:14";DateTime dt1=Convert.ToDateTim ...
- 20160331javaweb之JSP 标签技术
jsp的标签技术:在jsp页面中最好不要出现java代码,这时我们可以使用标签技术将java代码替换成标签来表示 1.jsp标签:sun原生提供的标签直接在jsp页面中就可以使用 <jsp:in ...
- 对比iOS中的四种数据存储
来自于大牛的文章给大家分享下 :http://www.infoq.com/cn/articles/data-storage-in-ios/
- JavaScript—赋值表达式-1
赋值表达式的运算顺序是从右到左的,因此,可以通过以下方法对多个变量赋值 i=j=k=0;//也就是把三个变量初始化为0 赋值表达式中的递增和递减 n++和++n的区别: 简单来说,根据运算顺序,n++ ...
- SGU 218.Unstable Systems
题意: 有n(n<500)台机器,和500个程序.不同的程序在不同的机器上运行有着不同的不稳定度s[i][j].求最小的最大稳定度及其方案. Solution: 比较经典的二分图模型. 建图很简 ...
- java编程思想,对象导论
程序设计的本质就是使用编程语言解决某一类具体问题.对问题的定义叫建模,例如定义问题域中的各种名词,动作,结果等.针对具体的问题提出的解决方案叫算法. 面向对象程序设计的挑战之一,就是在问题空间的元素和 ...
- uglifyjs 压缩js
第一步 安装nodejs dos下执行 node -v npm -v
- uboot下 Nand flash 启动 内核与根文件系统
u-boot版本: u-boot-2010.03_tekkamanninja修改的u-boot 1.将uboot通过j-link烧写到norflash,启动后 saveenv 将参数保存到 nandf ...