原文:【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 结构基础(上)的更多相关文章

  1. [Android系列—] 2. Android 项目文件夹结构与用户界面的创建

    前言 在 [Android系列-] 1. Android 开发环境搭建与Hello World 这一篇中介绍了怎样高速搭建Android开发环境, 并成功了建立一个没有不论什么代码更改的 Androi ...

  2. Web程序员开发App系列 - 调试Android和IOS手机代码(补图)

    Web程序员开发App系列 Web程序员开发App系列 - 认识HBuilder Web程序员开发App系列 - 申请苹果开发者账号 Web程序员开发App系列 - 调试Android和iOS手机代码 ...

  3. Xamarin.Forms学习系列之Android集成极光推送

    一般App都会有消息推送的功能,如果是原生安卓或者IOS集成消息推送很容易,各大推送平台都有相关的Sample,但是关于Xamarin.Forms的消息推送集成的资料非常少,下面就说下Xamarin. ...

  4. Android 工程在4.0基础上混淆

    Android现在对安全方面要求比较高了,我今天要做的对apk进行混淆,用所有的第三方工具都不能反编译,作者的知识产权得到保障了,是不是碉堡了. 一,首先说明我这是在4.0基础上进行的. 先看看pro ...

  5. 【转】Android 工程在4.0基础上混淆

    Android现在对安全方面要求比较高了,我今天要做的对apk进行混淆,用所有的第三方工具都不能反编译,作者的知识产权得到保障了,是不是碉堡了.   一,首先说明我这是在4.0基础上进行的.   先看 ...

  6. Android多画面幻灯片:ViewPager基础上,利用与PagerTabStrip出生缺陷(源代码)

    近期使用ViewPager.读了几个人说是不是很清晰的信息,干脆自己写demo总结下. 样例非常easy.Activity里有三个界面能够滑动.每个界面都有一个button并设置好了监听.PagerT ...

  7. ]Kinect for Windows SDK开发入门(六):骨骼追踪基础 上

    原文来自:http://www.cnblogs.com/yangecnu/archive/2012/04/06/KinectSDK_Skeleton_Tracking_Part1.html Kinec ...

  8. 【开发者portal在线开发插件系列二】多条上下行消息(messageId的使用)【华为云技术分享】

    前言和基本操作请参考[开发者portal在线开发插件系列一]profile和基本上下行消息,此处不再复述,没操作过的小伙伴一定要先去看看哦~ 话不多说,开始今天的演(表)示(演) 场景说明: 假设一: ...

  9. [Android系列—] 1. Android 开发环境搭建与Hello World

    前言 開始之前先熟悉几个名词: SDK -- Software Development Kit, 软件开发工具包.这个词并不陌生, JDK,就是Jave Development Kit,相同对于And ...

随机推荐

  1. Java类加载及实例化的调用顺序

    标题起得略拗口,大概意思就是说在一个Java类中,域和构造方法的调用顺序. 1. 没有继承的情况 单独一个类的场景下,初始化顺序为依次为 静态数据,继承的基类的构造函数,成员变量,被调用的构造函数. ...

  2. JQ 如何设置单选按钮问题

    <input type="radio" name="db_12" value="2" checked="checked/&g ...

  3. U3D 2D游戏之黑暗纪元 2D游戏基础入门开发全(1)

    第一个U3D 2D游戏的例子,全部自己编写,算是入门用,这里记录一下. 1.首先游戏把层次布置好,这里分为 背景层,游戏层,UI层 背景层 (Background-1):就是单纯的背景显示作用. 游戏 ...

  4. EF6调用存储过程,返回多个结果集处理

    链接:http://www.codeproject.com/Articles/675933/Returning-Multiple-Result-Sets-from-an-Entity-Fram 案例: ...

  5. sharedPreference的奇怪bug

    一定要清楚sp的结构,而且要知道是什么类型的.类型不对,会引起很多不知道的bug,比如本来是int类型的值,如果用String的类型去匹配,会让Activity开Activity Thread,不断地 ...

  6. SQL SERVER格式化字符串位数,不足补零

    本文举例在SQLSERVER中将1格式化为001的方法: 1.方法一SQL语句执行如下: ,) as col 2.方法二SQL语句执行如下: ,) ,) as col 下面是C#代码实现方法: ; & ...

  7. 免费vpn

    http://www.freevpnmac.com/macvpn/ 下边有个滑动解锁,拖动鼠标至右边解锁,点击Get vpn info,得到vpn地址ip和用户密码. 我用安卓手机测试了下完全可以,但 ...

  8. java新手笔记8 包

    1.main函数 public class MainParam { //考察main 方法的参数 args //运行时可以传入参数 参数类型 String public static void mai ...

  9. 04_过滤器Filter_02_Filter解决中文乱码问题

    [过滤器解决中文乱码问题实例] [工程截图] [web.xml] <?xml version="1.0" encoding="UTF-8"?> &l ...

  10. Codevs 1690 开关灯 USACO

    1690 开关灯 USACO 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 传送门 题目描述 Description YYX家门前的街上有N(2<=N& ...