Android学习笔记(一)Android应用程序的组成部分
Android应用程序由松散耦合的组件组成,并使用应用程序Manifest绑定到一起;应用程序Manifest描述了每一组件和它们之间的交互方式,还用于指定应用程序元数据、其硬件和平台要求、外部库以及必需的权限。
一、应用程序的基本结构模块
· Activity:应用程序的表示层。每个UI都是通过Activity类的一个或多个扩展实现的。Activity使用Fragment和视图来布局和显示信息,以及响应用户动作。
· Service:应用程序中不可见的工作者。运行时没有UI,可以更新数据源和Activity、触发通知和广播Intent。可以用来执行一个运行时间长的任务,或者不需要和用户交互的任务。
· Content Provider:可共享的持久数据存储器(内容提供者)。用来管理和持久化应用程序数据,通常会与SQL数据库交互。可以通过配置自己的Content Provider来允许其他应用程序访问,也可以访问其他应用。
· Intent:消息传递框架。Android中大量使用了Intent、Service或者Broadcast Receiver广播消息,以及请求对特定的一条数据执行操作。
· Broadcast Receiver: Intent侦听器(广播接收者)。可以监听到那些匹配指定的过滤标准的Intent广播。它会自动地启动应用程序来响应某个接收到Intent。
· Widget:可视化应用程序组件。它是Broadcast Receiver的特殊变体,可用于创建动态的交互式应用程序组件,用户可以把这些组件添加到他们的主屏幕上。
· Notification:它允许向用户发送信号,但却不会过分吸引他们的注意力或者打断他们当前的Activity。它们是应用程序不可见或者不活动时吸引用户注意的首选方法。
二、Manifest文件简介
每一个Android项目都包含一个Manifest文件——Android Manifest.xml,它存储在项目层次中的最底层。Manifest可以定义用用程序及其组件和需求的结构和元数据。
Manifest包含了组成应用程序的每一个Activity、Service、Content Provider和Broadcast Receiver的节点,并使用Intent Filter和权限来确定这些组件和其他应用程序是如何交互的。此文件还可以指定应用程序的元数据(图标、版本号、主题等等) 以及额外的顶层节点,这些节点可以指定必需的安全权限和单元测试,以及定义硬件、屏幕和平台支持要求。
Manifest文件有一个根manifest标签构成,该标签带有一个被设为项目包的package属性。它通常包含一个xmls:android属性来提供文件内使用的某些系统属性。
使用versionCode属性可讲当前的应用版本定义为一个整数,每次版本更新,这个数字都会增加。使用versionName可以定义一个显示给用户的公共版本号。
installLocation属性,是制定是否允许将程序安装到SD卡上,其值有preferExternal(首选外部存储器)和auto(系统决定)。不指定时,默认按到内部存储器中。由于取出或拒绝外部存储器存在的问题,以下程序不适合安装到外部存储器及其后果:
· 具有Widget/Live Wallpaper和Live Folder的应用程序: Widget/Live Wallpaper和Live Folder将从主屏幕上移除,而且重启系统后可能不在可用。
· 提供不中断服务的应用程序:程序和它运行的服务将被停止,并且不会自动重启。
· 输入法引擎:安装到外部存储器的任何IME都会被禁用。在外部存储器再次可用后,用户必须重新选择IME。
· 设备管理器:DeviceAdminReceiver及其管理能力将被禁用。
本篇博文先大体介绍应用程序的组成部分和Manifest文件,下一篇博文将对Manifest展开详述。
Android学习笔记(一)Android应用程序的组成部分的更多相关文章
- android学习笔记(9)android程序调试学习
相应若水老师的第十四课 一,Log日志输出 Log.v(tag,message); //verbose模式,打印最具体的日志 Log.d(tag,message); // ...
- Android学习笔记1 android adb启动失败问题 adb server is out of date. killing...
下面是Android的学习笔记,原文地址. 我是使用adb devices出现如下红字错误, 使用第一种方法方法,结果关掉豌豆荚就可以了. android adb启动失败问题 adb server i ...
- android学习笔记45——android的数据存储和IO
android的数据存储和IO SharedPreferences与Editor简介 SharedPreferences保存的数据主要是类似于配置信息格式的数据,因此其保存的数据主要是简单的类型的ke ...
- Android学习笔记之Android Studio添加新的Activity
1.创建Android项目工程:AndroidTest 创建过程可参考网上诸多教程. 2.添加新的Activity,步骤如下 a. 在layout文件夹上右键,New-Activity-相应Activ ...
- Android学习笔记之 android:collapseColumns ,android:shrinkColumns 和stretchColumns
摘自:http://blog.csdn.net/sjf0115/article/details/7213565/ TableLayout是一个使用复杂的布局,最简单的用法就仅仅是拖拉控件做出个界面,但 ...
- Android学习笔记之Android Studio下创建menu布局文件
1.创建menu文件夹 Android Studio项目中如果没有menu文件夹,在res文件夹右键,new-Android resource directory: 则会弹出下图对话框,在Resour ...
- Android学习笔记_79_ Android 使用 搜索框
1.在资源文件夹下创建xml文件夹,并创建一个searchable.xml: android:searchSuggestAuthorityshux属性的值跟实现SearchRecentSuggesti ...
- Android学习笔记_70_一个应用程序启动另一个应用程序的Activity
第一种(我自己写的) :之前在网上看来一些,很多不是我要的可以启动另外一个应用程序的主Activity. //这些代码是启动另外的一个应用程序的主Activity,当然也可以启动任意一个Activit ...
- Android学习笔记(35):Android活动条
在Android3.0之后,Google对UI导航设计上进行了一系列的改革,当中有一个很好用的新功能就是引入的ActionBar,用于代替3.0之前的标题栏,并提供更为丰富的导航效果. ActionB ...
- Android学习笔记(1)—Android Studio安装
Android Studio 是一个全新的 Android 开发环境,基于IntelliJ IDEA. 类似 Eclipse ADT,Android Studio 提供了集成的 Android 开发工 ...
随机推荐
- js 配置基础启动文件
页面启动文件boot.js,获取存放该文件的路径,放置通用的css,js代码,方便html页面调用. __CreateJSPath = function (js) { var scripts = do ...
- SQL学习:主键,外键,主键表,外键表,数据库的表与表之间的关系;
在数据库的学习中,对于一个表的主键和外键的认识是非常重要的. 主键:在一个表中,能唯一的表示一个事物(或者一条记录)的字段,我们称之为主键 注意: 主键的设置可以不只是用一个字段,也可以用若干个字段的 ...
- android网络图片查看器
package com.itheima.netimageviewer; import java.io.BufferedReader; import java.io.File; import java. ...
- LLDB中的小技巧
1.打印视图层次结构 po [self.view recursiveDescription] 2.临时调整界面UI 比如说现在你需要改变一个控件的背景色来更好的查看布局的问题,这是就不需 ...
- asp.net mvc Ajax服务器跳转
1.过滤器权限验证 [AttributeUsage(AttributeTargets.Method | AttributeTargets.Class, Inherited = true, AllowM ...
- Function.prototype.apply()
文章地址:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/apply ...
- Strategy 模式
可以看到 Strategy 模式和 Template 模式解决了类似的问题,也正如在 Template 模式中分析的,Strategy模式和 Template 模式实际是实现一个抽象接口的两种方式:继 ...
- css3学习--css3动画详解一(animation属性)
***介绍的属性并不完全,写的都是我认为容易混淆的难点属性,所以属性会在最后综合案例展示~ 一.Keyframes介绍: Keyframes被称为关键帧,其类似于Flash中的关键帧.在CSS3中其主 ...
- easy UI demo 含数据库加载示例
easyUI 部分代码在Googlecode 托管时而被抢此文件包含了所有官方demo,作为备份 下载地址http://pan.baidu.com/s/1pJ9hS5H
- python的py文件打包成exe
一.首先需要安装Pyinstaller-- 使用pip来安装模块 (我电脑上装的是python的一个编译环境Anaconda,如果电脑上装的是python自带的IDE的话,就直接进入python的安装 ...