安卓学习记录-Android-day16
来源:互联网 发布:淘宝网拍卖流程 编辑:程序博客网 时间:2024/06/14 20:54
一、安卓应用程序基础及原理
1. 掌上设备局限性的需求
更低的处理器
有限的内存
有限的存储能力
小屏幕和低分辨率
数据传输的高成本
数据传输的低速度和高延迟
不稳定的数据连接
有限的电量
ANR:无响应
1. 点击事件和按键事件5秒无响应
2. 接收到消息后10秒无响应
处理原则:IO操作(File,sal,Network)和复杂的运算,最好用异步。
无缝的:与第三方程序的交互,前后台的切换。
二、应用程序的基本特征
.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提醒
- 安卓学习记录-Android-day16
- 安卓学习记录-Android-day15
- 安卓学习记录-Android-day17
- 安卓学习记录-Android-day18
- 安卓学习记录
- 安卓学习记录
- 安卓学习记录
- 安卓学习记录-Android-day19-UI学习1
- 安卓学习记录-Android-day19-UI学习2
- 安卓学习记录一
- 安卓学习记录02
- 安卓学习记录03
- 安卓开发学习记录
- 安卓学习记录----repo
- C++ 学习笔记 day16
- java学习day16
- java学习day16
- 安卓学习记录-java-day1
- 2016-01-17nginx
- 视音频数据处理入门:PCM音频采样数据处理
- 安卓学习记录-Android-day15
- json封装数据
- json:实体类和JSON对象之间相互转化
- 安卓学习记录-Android-day16
- #UPCF Round1 A - The Text Splitting
- 智能家居的过去现在和未来——进入智能家居行业一个月感悟
- Codeforces 596B
- 安卓学习记录-Android-day17
- #UPCF Round1 B - HDD is Outdated Technology
- 设计模式简介
- VisualVM 入门指南
- 安卓学习记录-Android-day18