Android 开发框架包括基本的应用功能开发、数据存储、网络访问三大块。

1 应用方面
一般而言,一个标准的Android 程序包括Activity、Broadcast Intent Receiver、Service、Content Provider
四部分。
1).Activity
Activity 是在Android 应用开发中最频繁、最基本的模块。在Android 中,Activity 类主要与界面资源
文件相关联(res/layout 目录下的xml 资源,也可以不含任何界面资源),包含控件的显示设计、界面交互
设计、事件的响应设计以及数据处理设计、导航设计等Application 设计的方方面面。
因此,对于一个Activity 来说,它就是手机上的一个界面,相当于一个网页,所不同的是,每个Activity
运行结束时都返回一个返回值,类似一个函数。Android 系统会自动记录从首页到其他页面的所有跳转记
录并且自动将以前的Activity 压入系统堆栈,用户可以通过编程的方式删除历史堆栈中的Activity Instance。

2).Broadcast Intent Receiver
Intent 为不同的Activity 进行跳转提供了机制,譬如从A Activity 跳转到B Activity,使用Intent 来实现,
语句如下。
Intent in = new Intent(A.this, B.class);
startActivity(in);
Broadcast Intent Receiver 为各种不同的Android 应用程序间进行进程间的通信提供了可能。如当电话
呼叫来临时,可以通过Broadcast Intent Receiver 发布广播消息。对用户而言,用户是无法看到Broadcast Intent
Receiver 事件的,它对用户是不透明的,Broadcast Intent Receiver 通过Notification Manager 来通知用户这
些事件发生了,它既可以在资源AndroidManifest.xml 中注册,也可以在代码中通过Context.registerReceiver()
进行注册在AndroidManifest.xml 中注册以后,当事件来临时,即使程序没有启动,系统也会自动启动此应
用程序。另外,各应用程序可以很方便地通过Context.sendBroadcast()将自己的事件广播给其他应用程
序。

3).Service
Android 中的Service 和Windows 中的Service 完全是一个概念,用户可以通过StartService(Intent service)
启动一个Service,也可通过Context.bindService 来绑定一个Service。

4).Content Provider
Content Provider 提供了应用程序之间数据交换的机制,一个应用程序通过实现一个Content Provider
的抽象接口将自己的数据暴露出去,并且隐蔽了具体的数据存储实现,这样实现了Android 应用程序内部
数据的保密性。标准的Content Provider 提供了基本的CRUD(Create、Read、Update、Delete)接口,并
且实现了权限机制,保护了数据交互的安全性。
一个标准的 Android 应用程序的工程文件包含以下几大部分。
 Java源代码部分(包含Activity)——放置在src目录中。
 R.java文件——由Eclipse自动生成与维护,开发者不需要修改,提供了对Android资源的全局索引。
 Android Library——应用程序运行的Android库。
 assets目录——主要用于放置多媒体等文件。
 res目录——放置的是资源文件: drawable包含的是图片文件,layout里面包含的是布局文件,values
里面主要包含的是字符串(strings.xml)、颜色(colors.xml)以及数组(arrays.xml)资源。
 AndroidManifest.xml——应用的配置文件,在这个文件中,需要声明所有用到的Activity、Service、
Receiver等。

2 数据存储
Android 中提供的存储方式包括:SharedPreferences、文件存储、SQLite 数据库存储方式、内容提供器
方式Content Provider 以及网络方式 5 种,具体介绍如下。

1).SharedPreferences
作为Android 提供的一种配置文件读/写方式,默认保存在应用的目录data/<package name>/shared_prefs
下,通过方法getSharedPreferences(xx, 0);来获取SharedPreferences 对象进行读/写操作。
2).文件存储
Android 系统提供了进行数据读/写访问的API,例如,openFileInput、openFileOutput 等,需要特别注
意的是,Android 中应用程序的数据是私有的,也就是说,其他应用程序无法访问当前应用程序产生的文
件。
3).SQLite 数据库存储方式
通过继承 SQLiteOpenHelper 类提供的CRUD 接口来进行数据库操作,方便了应用程序的数据存储操
作。
4).内容提供器方式(Content Provider)
通过调用其他应用程序的数据接口来实现数据的读/写访问。
5).网络方式
主要通过下面要提到的网络访问该网络提供的网络服务接口,实现数据的读/写服务(如WebService
数据访问接口)。

网络访问方面

Android 主要通过java.net.*及Android.net.*来进行HTTP 访问技术的封装;利用其提供的HttpPost、
DefaultHttpClient、HttpResponse 等类提供的访问接口来实现具体的Web 服务访问。

Android 开发框架的更多相关文章

  1. Android 开发框架汇总

    Android 开发框架汇总 时间过的真快,转眼间就要进入到16年的8月了,现在应该是三伏期间,一个字“热”.前端时间整理了一篇“JS前端框架汇总”,然后紧接着又抽时间学习了一下Android开发,在 ...

  2. Android开发框架androidannotations的使用

    Android开发框架AndroidAnnotations,它除了有依赖注入的特性以外,还集成了Ormlite,Spring-android中的REST模板.使用起来非常方便,大大提高了开发效率. 使 ...

  3. 一个快速、完善的Android开发框架整合实践(QuickAndroid)

    https://github.com/alafighting/QuickAndroid QuickAndroid 一个快速.完善的Android开发框架整合实践 QA项目简介 本框架QuickAndr ...

  4. Android 开发框架介绍

    一.概述 现android开发有很多开发框架使用,做App不一定用到框架,但好框架的思想也是值得学习.选择合适的开发框架可提供实用功能,简化项目开发提升效率. 二.Afinal框架 简介 Afinal ...

  5. Android开发框架--AndroidAnnotations(一)

    annotation:注解 什么是框架 框架是基石 android开发中哪些内容可以做成框架呢 网络模块 图片缓存模块 数据库模块 UI基础模块 开发框架给我们带来了哪些好处 提升开发效率 代码简洁 ...

  6. 值得推荐的android开发框架简单介绍

    一些总结出来的Android高速开发框架,所有都是开源框架,附带项目地址,是开发学习的绝佳资料. Direct-Load-apk项目 项目主页地址:http://www.kymjs.com/ 功能:D ...

  7. Android开发框架

    AsyncHttpClient 它把HTTP所有的通信细节全部封装在了内部,我们只需要简单调用几行代码就可以完成通信操作 Universal-Image-Loader 它使得在界面上显示网络图片的操作 ...

  8. 开源的Android开发框架-------PowerFramework使用心得(五)网络请求HTTPRequest

    GET请求示例 //所有参数都使用Bundle,用putString Bundle bundle = new Bundle(); bundle.putString("username&quo ...

  9. 开源的Android开发框架-------PowerFramework使用心得(一)总体介绍

    PowerFramework是一款几乎囊括了所有Android基础功能的框架应用,这个框架目前是开源的,开发者可以在这个框架的基础上进行二次开发.结合开发者自己的UI设计,可以很快就能开发出具备基础应 ...

随机推荐

  1. 【iOS】Quartz2D练习-动态改变属性值

    一.通过slider控制圆的缩放 1.实现过程 新建一个项目,新建一个继承自UIview的类,并和storyboard中自定义的view进行关联.代码示例:SLViewController.m文件 # ...

  2. API的非向后兼容性无论如何通常代表着一种比较差的设计

    不管一个类库或者工具方法实现多么的好,如果无法做到向后兼容性,通常会给用户带来很大的升级成本,很多对此的依赖如果希望在后续的升级和维护期间使用该类库的其他新增特性或者好处,将不得不推迟升级亦或是被迫接 ...

  3. 【JavaEE】Hibernate继承映射,不用多态查询只查父表的方法

    几个月前,我在博问里面发了一个问题:http://q.cnblogs.com/q/64900/,但是一直没有找到好的答案,关闭问题以后才自己解决了,在这里分享一下. 首先我重复一下场景,博问里面举的动 ...

  4. event 对象 小记

    event对象的属性提供了有关事件的细节并且通过event对象的方法,可以控制事件的继续传播和阻止事件的默认行为 2级DOM Events 标准定义了一个标准的事件模型  被除了IE外的所有现代浏览器 ...

  5. CMD和AMD

    CMD是国内玉伯在开发SeaJS的时候提出来的,属于CommonJS的一种规范,此外还有AMD,其对于的框架是RequireJS. 二者的异同之处: 二者都是异步(Asynchronuous Modu ...

  6. 对抗静态分析——运行时修复dex

    对抗静态分析——运行时修复dex   本文来源:i春秋社区-分享你的技术,为安全加点温度 零.写在前面   这个系列本来题目想写对抗反编译,可是想想对抗反编译的这个范围有点大,总结如下 灵魂作图   ...

  7. 中国象棋引擎的C#源代码

    以前写的中国象棋引擎的C#源程序,可在VS2010中编译运行,由于个人精力有限,难以完成后续的开发工作,如果谁感兴趣,请关注微信公众号(“申龙斌的程序人生”,ID:slbGTD),发送后台消息“象棋引 ...

  8. R语言学习笔记:向量

    向量是R语言最基本的数据类型. 单个数值(标量)其实没有单独的数据类型,它只不过是只有一个元素的向量. x <- c(1, 2, 4, 9) x <- c(x[1:3], 88, x[4] ...

  9. Sharepoint学习笔记—习题系列--70-573习题解析 -(Q73-Q76)

    Question 73You create a Web Part that calls a function named longCall.You discover that longCall tak ...

  10. Spring(六)AOP切入方式

    一.接口切入方式 实现类 package com.pb.entity; /** * 实体类 */ public class Hello { private String name; private S ...