zoukankan      html  css  js  c++  java
  • Android学习笔记(一)——初识Android的系统

    目录:

    1. Android系统结构

    2. Android的"四大天王"

    3. 必需面对的问题

    <1>Android系统架构:

                           

    上面那张图显示了Android系统的整体结构。从下到上来分成了四层:

    第一层Linux Kernel(Linux内核层):

      Android的底层其实就是Linux!这一层主要是与系统打交道的,负责管理各个硬件的协调工作。

    第二层Libraries和Android Runtime(各种库与Android运行时):

      Android的大部分App是用Java开发的,Google自己提供了一个Java虚拟机的实现——Dalvik VM,我们写的大部分App就是在这个虚拟机中运行的。这一层主要是C语言的标准库,是对应用框架层提供支持的层。

    第三层应用框架层(Application FrameWork):

      应用开发者经常会和这一层打交道,它提供了应用程序的基础,我们要做的就是利用这些API做出我们自己的应用。

    第四层应用层(Application):

      Android之所以那么成功的的一大原因就是其拥有大量的应用。这些应用包括Google提供的基础的应用,比如电话、短信这些。剩下的就是来自第三方的。

    <2>Android中的四大天王:

    Activity:

    在Android平台上,负责显示,与用户进行交到的组件就是Activity。

    Activity可以说这是一个App的“门面”,一个App就是由负责不同功能的Activity组成的。

    Service

    Service是一个“默默无闻”的后台工作者,它没有界面,但它却可以在后台长期运行。比如我们在后台播放音乐就是通过它实现的。

    Boardcast Receiver:

    想象一下,当收到一条信息时,你的App怎么知道呢?

    在Android通过广播来实现的。当系统的某些状态发生改变的时候,系统就会发出相应的广播(当然,我们自己也可以发送广播),我们只要注册相应的广播接收器来处理就行。

    Content Provider:

    Android的基于Linux的,所以有着其大部分的的特性,文件管理就是一个体现。

    在Android中,应用程序的数据(不是mp3、pdf之类的文件)是独立的,也就是说我们是不能直接访问其他App的私有数据的。

    Content Provider提供了一套接口,使用我们可以将数据“暴露”给其他App。比如通过Content Provider, 我们可以访问短信的内容,而不需知道它是如何存储的。

    <3>必需面对的问题:

    安卓在这几年中取得了令人惊叹的发展,但这背后我们开发者要面对的一个巨大的问题就是平台分化。

    手机的硬件千差万别、分辨率千奇百怪、系统版本分化严重。接下来一点一点来说:

    1. 硬件竞赛:

    想想笔者的上一部手机——诺基亚5530。400多Mhz的老架构 cpu、128M的内存(实际可用大概有60多M)、640*360的屏幕。好了,来看看前些天魅族的MX2:1.6Ghz的四核cpu、2G的内存、1280*800的屏幕。在感叹硬件发展的同时,做为开发者的我们最苦逼的就是要做出一个能够适应这么多硬件的App,就屏幕分辨率一项来说:

    320*240

    这个基本不用考虑了~~~

    480*320

    比较低端,但有很大的占有量

    800*480

    V880等,2011年主流

    854*480

    里程碑1、小米1等等

    960*540

    今年MTK平台很多使用这个

    960*640

    魅族m9、MX

    1280*720

    应该是接下来的主流了

    1280*768

    Nexus 4

    1280*800

    Note 1、MX 2

    注意,这些还只是手机!如果加上平板就更加恶心了,就做好适应屏幕就是一个不小的挑战~~~

    2. 系统版本:

    谷歌的更新相当勤快,可是并不是所有设备都可以升级的呀~~~,很多机器来停留在2.2、2.3,谷歌都出到4.2了~~~

    好在兼容性上做的还不错,大部分应用可以完美运行在高版本的设备中,可是许多新版本才有的特性就用不了了。

    2012.11.29 by yjiyjige

  • 相关阅读:
    UWP 2018 新版 NavigationView 尝鲜
    UWP 五星评价(不跳转到龟速商店)
    UWP 查找模板中的控件
    Win10版本号区分
    基于Windows 机器学习(Machine Learning)的图像分类(Image classification)实现
    海瑞菌的web前端学习直播间
    【javascript】对原型对象、原型链的理解
    公众号【海瑞菌】的近期总结
    我的2018年【年末总结】--2019年初计划
    【js操作url参数】获取指定url参数值、取指定url参数并转为json对象
  • 原文地址:https://www.cnblogs.com/yjiyjige/p/2795175.html
Copyright © 2011-2022 走看看