Chinaunix首页 | 论坛 | 博客
  • 博客访问: 329747
  • 博文数量: 130
  • 博客积分: 10
  • 博客等级: 民兵
  • 技术积分: 554
  • 用 户 组: 普通用户
  • 注册时间: 2012-07-19 19:24
文章分类

全部博文(130)

文章存档

2016年(31)

2015年(16)

2014年(13)

2013年(70)

分类: LINUX

2016-03-12 17:34:14

Android APP 组成元素:
1.Activities
一个activity代表了一个和用户接**流的屏幕,一个应用可以存在很多不同
的activity,相当于可以看做是一个界面的布局,每个app都有不同的界面,所有
会存在多个activity.不同的APP可以使用该app的activity,如果该activity权限
允许. 用户实现的activity 都应该继承Activity 类,然后重写或者添加一些自己
方法

2. Services
一个Services 可以看做是运行在后台的首付进程,它不会直接与用户接**流,
主要用于网络连接等后台操作.
用户实现的Services都应该继承Service 类


3. Content providers
一个Content providers用于管理app的共享的数据data,例如将数据存储在
文件系统或者SQLite本地数据库,甚至是远程存储服务器. 其他app也可以通过
这个Content providers查询和修改数据data,当然,也支持该app的私有数据存储,
这时候只有自身才能访问
一个用户实现的Content providers都应该继承ContentProvider类,然后实现
ContentProvider类的标准API set


4. Broadcast receivers
该组件用于接收系统所广播出来的事件.例如系统广播屏幕关闭,电量过低等事件。
用户实现的Broadcast receivers继承BroadcastReceiver类,广播传递的对象是
Intent object.

以上四个组件的启动:
首先当系统启动一个组件的时候,会去启动这个组件的app(如果app没有启动)
然后在实例化这个组件.这个组件是运行在它自己app的程序内,并没有运行在
你的程序内.android应用跟其他很多系统不一样,一个app并没有单一的一个
入口执行点(entry point).
由于上面的限制,其它组件(不是属于自己app的组件)不能运行在自己的程序空间.
因此,要启动其他app的组件,需要我们发送一种统一的消息格式去通知系统,让她
帮忙启动我们需要的组件。


要激活以上四种类型的组件,可以通过如下的方式
通知系统:
 1. activities, services, and broadcast receivers 这三个组件
 通过一个intent的消息去异步的通知系统启动.
  intent消息可以用Intent object来表示.
 2. content provider组件通过ContentResolver对象
 
There are separate methods for activating each type of component:


1.You can start an activity (or give it something new to do) by passing an Intent to startActivity() 
or startActivityForResult() (when you want the activity to return a result).
2.You can start a service (or give new instructions to an ongoing service) by passing an Intent to 
startService(). Or you can bind to the service by passing an Intent to bindService().
3.You can initiate a broadcast by passing an Intent to methods like sendBroadcast(), 
sendOrderedBroadcast(), or sendStickyBroadcast().
4.You can perform a query to a content provider by calling query() on a ContentResolver.






Manifest file
在系统去启动各个app的组件的时候,系统必须知道每个app存在哪些组件,
Manifest file就是用来记录存在哪里组件可以使用的.
Manifest file是一个XML文件,里面记录了每个组件的接入权限(例如是否
可以internet 接入等功能),声明了需要其他API 的等级,声明需要使用哪些
硬件和软件资源,以及需要链接哪些公共的APP library(例如google map library)
例如如下的xml:


   
                          android:label="@string/example_label" ... >
       

        ...
       

        ...
       

        ...
       

        ...
   




1. Activity 生命周期:
create -> start -> resume -> pause -> stop -> destroy
每个状态都有一个相关的回调函数调用.
用户在实现的时候,会根据需要,实现相关的回调函数重写(override)
其中 resume状态是activity在屏幕上可见状态

阅读(1325) | 评论(0) | 转发(0) |
0

上一篇:iptables

下一篇:linux bridge处理流程

给主人留下些什么吧!~~