这里写自定义目录标题

  • 1、Android系统框架
    • 1.1 应用层
    • 1.2 应用框架层
    • 1.3 系统运行层
    • 1.4 Linux内核层
  • 2. Android四大组件及作用
    • 2.1 activity 活动
    • 2.2 service 服务
    • 2.3 Broadcast Receiver 广播接受者
    • 2.4 Content Provider 内容提供者
  • 3. Android常用控件以及应用场景
  • 4. Android编码规范

1、Android系统框架

Android系统架构分为四层架构,从高到低分别是 应用层,应用框架层,系统运行库层和Linux内核层

1.1 应用层

所有安装在手机上的应用程序都属于这层,包括系统自带的联系人、信息等程序,还包括自己开发的程序,所有的应用程序都是使用Java编写的。

1.2 应用框架层

这层提供了构建应用程序时可能用到的各种API,系统自带的一些程序都是利用这些API完成的,开发者也可以用这些API构建自己的应用程序。

(1) View System(视图系统):可以用来构建应用程序,它包括列表(lists),网格(grids),文本框(textBoxes),按钮(buttons),甚至可嵌入的web浏览器
(2) Content Provider(内容提供器):使得不同应用程序之间存取或者分享数据
(3) Resource Manager(资源管理器):提供应用程序使用的各种非代码资源,如本地化字符串、图片、布局文件、颜色文件等
(4) NotificationManager(通告管理器):使得应用程序可以在状态栏中显示自定义的提示信息
(5) Activity Manager(活动管理器):管理各个应用程序生命周期以及通常的导航回退功能
(6) TelephonyManager(电话管理器):管理所有的移动设备功能

1.3 系统运行层

这层主要通过一些C/C++库(系统库)来为Android系统提供主要的特性支持,同样这层还有系统运行时库,它主要提供一些核心库,允许开发者使用Java来编写Android应用,还提供了Dalvik虚拟机,使每一个Android应用都能运行在独立的进程当中。

系统库: 是应用程序框架的支撑,是连接应用程序框架层与Linux内核层的重要纽带。
Android运行时: Android应用程序时采用Java语言编写,程序在Android运行时中执行,其运行时分为核心库和Dalvik虚拟机两部分。

1.4 Linux内核层

Android是基于Linux2.6内核的,这一层为Android设备的各种硬件提供了底层的驱动。

2. Android四大组件及作用

2.1 activity 活动

用于显示界面,凡是在应用程序中看到的东西,都会放在活动中

activity 显示页面:a.首先activity就是一个单独的窗口;一个activity相当于我们实际中的一个网页,当打开一个屏幕时,之前的那一个屏幕会被置为暂停状态,并且压入历史堆栈中,用户可以通过回退操作返回到以前打开过的屏幕。b.activity 与 Intent 之间进行通讯;c.在进行页面跳转的时候要在AndroidManifest.xml里面进行配置声明,不然在运行的时候会报错

2.2 service 服务

在后台默默完成用户指定的操作

service 服务a.service用于在后台完成用户指定的操作。service分为:started(启动)和bound(绑定)b.通过startService(Intent service)可以启动一个Service,通过Context.bindService()可以绑定一个Servicec.开发人员需要在应用程序配置文件中声明全部的service,使用<service></service>标签。d.Service通常位于后台运行,它一般不需要与用户交互,因此Service组件没有图形用户界面。Service组件需要继承Service基类。Service组件通常用于为其他组件提供后台服务或监控其他组件的运行状态。

2.3 Broadcast Receiver 广播接受者

允许应用接收来自各处的广播消息,如电话、信息等,当然应用同样也可以向外发出广播消息。

Broadcast Receiver 广播a.应用可以使用它对外部事件进行过滤,只对感兴趣的外部事件(如当电话呼入时,或者数据网络可用时)进行接收并做出响应。广播接收器没有用户界面so,它们可以启动一个activity或serice来响应它们收到的信息,或者用NotificationManager来通知用户。通知可以用很多种方式来吸引用户的注意力,例如闪动背灯、震动、播放声音等。一般来说是在状态栏上放一个持久的图标,用户可以打开它并获取消息。b.广播接收者的注册有两种方法,分别是程序动态注册和AndroidManifest文件中进行静态注册。c.动态注册广播接收器特点是当用来注册的Activity关掉后,广播也就失效了。静态注册无需担忧广播接收器是否被关闭,只要设备是开启状态,广播接收器也是打开着的。

2.4 Content Provider 内容提供者

用于应用程序之间共享数据

Content Provider 数据通信a.提供了Content Provider使一个应用程序的指定数据集提供给其他应用程序。其他应用可以通过ContentResolver类从该内容提供者中获取或存入数据。b.只有需要在多个应用程序间共享数据是才需要内容提供者。c.ContentProvider实现数据共享。d.开发人员不会直接使用ContentProvider类的对象,大多数是通过ContentResolver对象实现对ContentProvider的操作。e.ContentProvider使用URI来唯一标识其数据集,通过URI以content://作为前缀,表示该数据由ContentProvider来管理。

3. Android常用控件以及应用场景

按用途分类:文本控件
– TextView:向用户展示文本的内容,不可编辑
– EditText:让用户输入文本的内容,它是可以编辑的按钮控件
– Button:用于和用户进行交互的一个重要空间
– ImageButton图片控件
– ImageView:用于在界面展示图片进度条控件
- ProgressBar: 用于在界面上显示进度条,表示程序正在加载一些数据对话框控件:
- AlertDialog:用于在当前界面弹出一个对话框,能屏蔽掉其他控件的交互能力
- ProgressDialog:与AlertDialog类似,不同的是会在对话框显示一个进度条

4. Android编码规范

参考:
添加链接描述

Android(六)——Android第一周学习相关推荐

  1. 20155229 2016-2007-2 《Java程序设计》第一周学习总结

    20155229 2016-2007-2 <Java程序设计>第一周学习总结 教材学习内容总结 1~18章的提问: 第一章:怎样撰写Java才不会沦于死背API文件.使用"复制. ...

  2. 20175204 张湲祯 2018-2019-2《Java程序设计》 第一周学习总结

    20175204 张湲祯 2018-2019-2<Java程序设计>第一周学习总结 教材学习内容总结 -第一章Java入门要点: -Java的地位:具有面向对象,与平台无关,安全稳定和多线 ...

  3. 远程实习第一周学习总结

    远程实习第一周学习总结 本周的主要学习内容内容如下: 1.掌握AndroidStudio,项目结构以及SDK 2.掌握Git以及项目忽略表 3.熟悉Android 设计规范:Material Desi ...

  4. # 20155337 2017-2018-1 《信息安全系统设计基础》第一周学习总结

    20155337 2017-2018-1 <信息安全系统设计基础>第一周学习总结 教材学习内容总结 1.1信息就是位+上下文 hello.c程序是以字节序列的方式储存在文件中的.每个字节都 ...

  5. 信息安全系统设计基础第一周学习总结

    学习计时:共15小时 读书:1 代码:10 作业:13 博客:1 一.学习目标 1. 能够独立安装Linux操作系统 2. 能够熟练使用Linux系统的基本命令 3. 熟练使用Linux中用户管理命令 ...

  6. 20165203 2017-2018-2 《Java程序设计》第一周学习总结

    20165203 2017-2018-2<Java程序设计>第一周学习总结 教材学习内容总结 (一)Java的地位 Java是面向对象编程,并涉及网络.多线程等重要的基础知识,是一门很好的 ...

  7. 2018-2019-1 20165221 《信息安全系统设计基础》第一周学习总结

    2018-2019-1 20165221 <信息安全系统设计基础>第一周学习总结 教材学习总结 有关vim 打开方式:vim [文件名] 按i会进入insert模式,可以对代码进行编辑 按 ...

  8. 20135306-信息安全系统设计基础第一周学习总结

    第二周(9.14-9.20): 学习计时:共14小时 读书:2h 代码:4h 作业:4h 博客:4h 一.学习目标 1. 能够独立安装Linux操作系统 2. 能够熟练使用Linux系统的基本命令 3 ...

  9. 2017-2018-1 20155227 《信息安全系统设计基础》第一周学习总结

    2017-2018-1 20155227 <信息安全系统设计基础>第一周学习总结 教材学习内容总结 快速浏览一遍教材,课本每章提出至少一个自己不懂的或最想解决的问题并在期末回答这些问题 一 ...

  10. Java学习第七天 ———— 第一周学习汇总(粗略)

    Java学习第七天 ---- 第一周学习汇总 第一章Java Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承.指针等概念,因此Java语言具有功能强大 ...

最新文章

  1. POC测试——原型验证,降低风险,IT系统销售工作之一
  2. 忘记虚拟机root密码的解决办法
  3. windows mobile5.0之“hello world”
  4. php js urlencode,JavaScript版本的UrlEncode和UrlDecode函数实现
  5. 《程序员面试金典》合法括号判断
  6. 继续增援武汉,紫光及新华三集团对火神山和雷神山医院捐赠设备!
  7. Unable to round-trip http request to upstream错误
  8. DeFi衍生品协议dFuture未来5日将通过公测奖励100万枚DFT
  9. make_classification参数
  10. NVIDIA解码器代码官方示例
  11. 一文详解Attention机制
  12. [FPGA入门笔记](十):按键消抖实验
  13. 仿饿了么、百度、美团外卖,订餐网站外卖系统
  14. 黑猴子的家:JavaWeb 之 Title icon
  15. 用VideoView实现播放本地的m3u8
  16. 2018 ACM-ICPC 宁夏预选赛网赛 B-Goldbach
  17. 识破贷后资金归集——关联网络
  18. 三维空间中绘制点、线、面、UV贴图,万能的BufferGeometry(three.js实战4)
  19. Node.js的用户交互(使用readline模块)
  20. TPR 教学法是什么?

热门文章

  1. 撰写论文时word使用诀窍标题
  2. 数学之美 系列十一 - Google 阿卡 47 的制造者阿米特.辛格博士
  3. 数学之美系列六 -- 图论和网络爬虫 (Web Crawlers)
  4. hdu3691(无向图最小割的求解)
  5. 聊天服务器的外部流量
  6. 约数研究pascal程序
  7. c char转int_C指针精华知识大汇总
  8. 权限管理,pymysql模块
  9. 英语影视台词---六、Saving Private Ryan Quotes
  10. 在CDS(Core Data Services)中使用DCL(Data Control Language)