Android 开发框架
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 开发框架的更多相关文章
- Android 开发框架汇总
Android 开发框架汇总 时间过的真快,转眼间就要进入到16年的8月了,现在应该是三伏期间,一个字“热”.前端时间整理了一篇“JS前端框架汇总”,然后紧接着又抽时间学习了一下Android开发,在 ...
- Android开发框架androidannotations的使用
Android开发框架AndroidAnnotations,它除了有依赖注入的特性以外,还集成了Ormlite,Spring-android中的REST模板.使用起来非常方便,大大提高了开发效率. 使 ...
- 一个快速、完善的Android开发框架整合实践(QuickAndroid)
https://github.com/alafighting/QuickAndroid QuickAndroid 一个快速.完善的Android开发框架整合实践 QA项目简介 本框架QuickAndr ...
- Android 开发框架介绍
一.概述 现android开发有很多开发框架使用,做App不一定用到框架,但好框架的思想也是值得学习.选择合适的开发框架可提供实用功能,简化项目开发提升效率. 二.Afinal框架 简介 Afinal ...
- Android开发框架--AndroidAnnotations(一)
annotation:注解 什么是框架 框架是基石 android开发中哪些内容可以做成框架呢 网络模块 图片缓存模块 数据库模块 UI基础模块 开发框架给我们带来了哪些好处 提升开发效率 代码简洁 ...
- 值得推荐的android开发框架简单介绍
一些总结出来的Android高速开发框架,所有都是开源框架,附带项目地址,是开发学习的绝佳资料. Direct-Load-apk项目 项目主页地址:http://www.kymjs.com/ 功能:D ...
- Android开发框架
AsyncHttpClient 它把HTTP所有的通信细节全部封装在了内部,我们只需要简单调用几行代码就可以完成通信操作 Universal-Image-Loader 它使得在界面上显示网络图片的操作 ...
- 开源的Android开发框架-------PowerFramework使用心得(五)网络请求HTTPRequest
GET请求示例 //所有参数都使用Bundle,用putString Bundle bundle = new Bundle(); bundle.putString("username&quo ...
- 开源的Android开发框架-------PowerFramework使用心得(一)总体介绍
PowerFramework是一款几乎囊括了所有Android基础功能的框架应用,这个框架目前是开源的,开发者可以在这个框架的基础上进行二次开发.结合开发者自己的UI设计,可以很快就能开发出具备基础应 ...
随机推荐
- 自学silverlight 5.0
这是一个silverlight游戏:http://keleyi.com/keleyi/phtml/silverlight/ 接了个单子,非要用Silverlight 5来作一个项目,之前从来没接触过这 ...
- ajax post提交的方式
ajax的post注意事项 注意post请求的Content-Type为application/x-www-form-urlencoded,参数是在请求体中,即上面请求中的Form Data(后台通过 ...
- SVG操作插件:SVG.JS 个人提取部分实用中文文档
先贴出github地址:https://github.com/svgdotjs/svg.js(也就是原文档的说明和文件的下载地址) 创建SVG文档 var draw = SVG('drawing'). ...
- jsp页面 列表 展示 ajax异步实现
1. 服务端先返回页面基本结构(如message.jsp), <%@ page language="java" contentType="text/html; ch ...
- 字典集合Dictionary<K,V>和构造的应用==>>体检套餐项目
效果 首先,我们先来准备我们需要的类 1.检查项目类 using System; using System.Collections.Generic; using System.Linq; using ...
- 数据库的sacle-up和scale-out与sharding技术区分
scale 英文是扩展的意思. 数据库要进行扩展,指的是存储系统不够,或者性能不够,要提升的时候,就要进行扩展. 分为向上扩展和横向扩展,这就像一个人往上面发展与横向发展两种思路. scale-up: ...
- 每个软件都自己把操作系统的host配置项加到内存中供频繁调用
nginx的转发,http_pass 转发到一个域名passport.ab.cn 那具体是到哪台机器上. 其实可以通过/etc/hosts文件来配置的. 可以理解,这个hosts文件是操作系统级别的, ...
- Uploading Files in SharePoint 2013 using CSOM and REST
http://www.shillier.com/archive/2013/03/26/uploading-files-in-sharepoint-2013-using-csom-and-rest.as ...
- AVL树详解
AVL树 参考了:http://www.cppblog.com/cxiaojia/archive/2012/08/20/187776.html 修改了其中的错误,代码实现并亲自验证过. 平衡二叉树(B ...
- 得到设备是何种iPhone设备 + 怎么获得启动页面图片
一.前言 今天做一个功能,需要动态的获得启动页,然后根据不同设备去使用不用的启动页图片. 二.正文 常规来说,我们直接判断是何种设备,然后通过name去获得图片选择性加载即可.但是实际上遇到的两个问题 ...