1.性能(更快、更灵敏)
2.响应能力(拒绝ANR)
ANR(Application Not Responding)
何时会ANR:
1.点击事件和按键事件5秒钟无响应
2.接收到消息后10秒钟没有处理返回处理准则:IO操作(File,sql,Network)和复杂的运算(比如游戏的移动运算)最好用异步
3.无缝(与第三方程序的交互前台后台的切换)
4.安全(对操作权限的考虑)
Android应用程序基本特性
1. .apk是Android应用程序安装格式,.dex是Android二进制执行文件格式
2. Android操作系统是基于Linux的多用户操作系统
3.默认情况下,一个应用程序一个userid,系统设定的,你不需要手动去设定, 针对这样的应用程序,该用户有权限进行所有操作。
4.每一个进程有自己的虚拟机实例,所以每个应用程序相对独立。
5.默认情况下,应用程序都有自己的Linux进程,系统会决定何时关闭它,当资源不够的时候
然而,也有例外,可以给两个应用程序共享同一个userid,让彼此之间共享资源,
应用程序可以请求访问系统资源,比如通讯录,短信等,但需要安装时候被授权
Android应用程序七大件(一切皆对象,对象即是类)
一、应用程序四大组件:
1.Activity
1)Activity是Android应用程序的一个界面
2)一个应用程序通常包含多个Activity
3)Activity通过布局管理添加各种View组件
4)通过setContentView(int)方法可以将试图呈现出来
2.Service
1)Service运行在后台,负责处理一些用户看不到,并且会有持续时间的事情。比如下载数据,播放音乐等
2)Service不生成UI,是不可见的
3)所有用户实现的Service必须继承系统的Service类,并且在配置文件中进行注册
3.Content Provider
1)数据在Android当中是程序私有的
2)Content Provider 提供了多个程序间数据交互的机制
3)Content Provider暴露出来一些标准的API来对数据进行操作
4.Broadcast Receiver
1)Broadcast Receiver负责对外部事件做出响应
2)Broadcast Receiver不生成UI,是不可见的
3)所有用户实现的Broadcast Receiver必须继承系统的Broadcast Receiver类,需要在程序中进行注册
4)应用程序可以通过Context.sendBroadcast()将自己的intent广播出去。
其他程序通过自身的Broadcast Receivers载获后进行时间处理。
二、重要对象Intent 四大组件-三个都要Intent的支持
1)传递Intent启动一个Activity,startActivity,startActivityForResult
2)传递Intent启动一个Service,startService,bindService
3)通过Intent新加入一个广播,sendBroadcast(),sendOrderedBroadcast(),sendStickyBroadcast()
4)执行一个查询,ContentResolver的query()
三、其他
1)Launcher&Widget(小部件)
2)Notification(提醒)
根据Sourcecode了解Framework
android.app 封装了Android应用程序全局模型的高级类。
android.content 包含用于在设备上访问和发布数据的类。
android.database 包含用于浏览内容提供源返回数据的类。
android.database.sqlite 包含了SQLLite数据库管理类,应用程序可以利用这些类来管理其私有数据库。
android.graphics 允许你直接在屏幕上绘图的绘图工具,比如画布、颜色过滤器、点和矩形等
android.graphics.drawable 提供了用于管理多种可视界面元素的类,这些可是界面元素仅用于显示,例如bitmap和gradient
android.graphics.glutils 提供了大量能够在Android设备上使用OpenGL嵌入式系统版(OpenGL ES)绘图的类
android.hardware 提供对硬件设备的支持,这些硬件设备不一定会出现在每一个Android设备上。
android.location 定义Android定位和相关服务的类。
android.media 定位,视频,音频和相关的服务。
android.net 用于网络连接的类,功能比ava.net.*强大。
android.opengl 提供OpenGL(高性能图形算法行业标准)工具。3D加速等
提供设备上基础的操作系统服务、信息传递和进程间通信。
android.provider 提供用于方便地访问Android支持的内容提供源的类。
android.sax 一个可以方便地编写高效、健壮的SAX handler的框架。
android.speech.recognition 提供用于语音识别的类
android.telephony 提供用于拨打、接收以及监听电话和电话状态的工具。
android.telephony.gsm 提供用于从GSM电话上控制或读取数据的类。
android.text 提供用于在屏幕上绘制或跟踪文本和文本跨度的类。
android.text.method 提供用于监听或修改键盘输入的类。
android.text.style 提供用于预览或修改视图对象中文本跨度形式的类。
android.util 提供通用的工具方法,例如日期/实践操作、64位编码解码器、
字符串数组互换方法和与XML相关的方法。
android.view 提供用于处理屏幕布局和用户交互的基本UI类。
android.view.animation 提供了动画处理的类
android.webkit 提供了浏览网页的工具。
android.widget widget包含了用在应用程序屏幕上的UI元素(绝大部分可视)。