安卓学习记录-Android-day16

来源:互联网 发布:淘宝网拍卖流程 编辑:程序博客网 时间:2024/06/14 20:54

 

一、安卓应用程序基础及原理

1.      掌上设备局限性的需求

更低的处理器

有限的内存

有限的存储能力

小屏幕和低分辨率

数据传输的高成本

数据传输的低速度和高延迟

不稳定的数据连接

有限的电量

ANR:无响应

1.      点击事件和按键事件5秒无响应

2.      接收到消息后10秒无响应

处理原则:IO操作(FilesalNetwork)和复杂的运算,最好用异步。

        无缝的:与第三方程序的交互,前后台的切换。

二、应用程序的基本特征

.apk安装格式,.dex是安卓二进制执行文件格式。

安卓操作系统是基于linux多用户操作系统

每个程序都使用不同的用户。

默认情况下,一个程序一个userid,系统设定的,不需要手动设定,针对这样的程序,用户有权限进行所有操作。

每一个进程都有自己的虚拟机实例,每个程序相对独立。

默认情况下,应用程序都有自己的Linux进程,系统会决定何时关闭它,当资源不够的时候。

例外,可以两个程序共享一个USERID,彼此之间共享资源。

应用程序可以请求访问系统资源,比如通讯录、短信。但需要安装时候授权。

三、安卓程序七大件

四大组件:

Activity:一个界面,通过这个界面交互。

         Activity通过布局管理添加各种View组件。

         通过setContentView(int)将视图呈现出来。

Service运行在后台,处理用户看不到,并有持续时间,下载、播放音乐。

        不生成UI,是不可见

        所有的用户实现Service继承系统Service类,并在配置文件中注册。

Content Provider数据在安卓是程序私有的

                提供了多个程序间数据交互机制

                暴露出来一些标准的API来对数据进行操作

Broadcast Receiver:不生成UI继承BroadcastReceiver类,进行注册

                可通过Context.sendBroadcast()将自己的intent广播出去,其他程序通过自身的Receivers截获后进行时间处理。

重要对象:四大组件三个都需要Intent支持

1.       传递Intent启动一个Activity,startAcitity,startActivityForResult

2.       传递Intent启动一个Service,bindService

3.       通过Intent添加一个广播,sendBroadcast();

SensOrderedBroadcast()

sendStickyBroadcast()

4.       执行一个查询,ContentResolver的query()查询

Launcher&Widget

Notification提醒

0 0
原创粉丝点击