Android应用程序基础及原理概要

来源:互联网 发布:江苏11选5遗漏数据 编辑:程序博客网 时间:2024/05/18 02:30
做开发时候每个程序都要思考的问题
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元素(绝大部分可视)。


0 0
原创粉丝点击