【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 ...
随机推荐
- 【Python】分布式任务队列Celery使用参考资料
Python-Celery Homepage | Celery: Distributed Task Queue User Guide - Celery 4.0.2 documentation Task ...
- react中的坑
9. 渲染界面的时候让滚动条回到顶部 //渲染界面的时候让滚动条回到顶部 componentDidMount() { window.scrollTo(0,0); } 路由: <Route pat ...
- java ssm框架入门(一)面向接口编程
因为工作上用到spring + strtus2 + mybatis ,所以开始学习下这个框架. 这里用到的是MySQL数据库 首先从web.xml 开始 <?xml version=" ...
- unity3d最新面试题与参考答案汇总
1.在类的构造函数前加上static会报什么错?为什么? 构造函数格式为 public+类名,如果加上static会报错(静态构造函数不能有访问修饰符)原因:静态构造函数不允许访问修饰符,也不接受任何 ...
- c++ 学习之const专题之const成员函数
一些成员函数改变对象,一些成员函数不改变对象. 例如: int Point::GetY() { return yVal; } 这个函数被调用时,不改变Point对象,而下面的函数改变Point对象: ...
- 学习笔记_过滤器应用_1(分ip统计网站的访问次数)
分ip统计网站的访问次数 ip count 192.168.1.111 2 192.168.1.112 59 统计工作需要在所有资源之前都执行,那么就可以放到Filter中了. 我们这个过滤器不打算做 ...
- ios ReactiveViewModel
项目中使用 ReactiveCocoa 一般都会嵌入ReactiveViewModel 或者 ReactiveCocoaLayout 联合处理UI.网络.动画.布局.窗口切换等,组合使用时威力惊人. ...
- 安装oracle pl/sql developer
1.在官网上下载oracle 11g R2版本的数据库,直接常规安装.数据库可以下载32bit. 2.在这里下载oracle client (32bit)http://www.oracle.com/t ...
- Cordova5 -- iOS实战(一)
由于最近公司的项目要求用Cordova来进行开发,便开始了对Cordova的学习.由于本人之前也是做iOS开发,因此相关内容主要从iOS平台的角度来写.刚开始学习Cordova这个平台,希望以此总 ...
- Struts2的输入校验
一.Struts2提供了基于验证框架的输入校验,在这种校验方式下,所有的输入校验只需要编写简单的配置文件,Struts2的验证框架将会负责进行服务器校验和客户端校验. 校验失败后将Struts2将自动 ...