一般的android开发都用到了系统架构哪些层?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一般的android开发都用到了系统架构哪些层?相关的知识,希望对你有一定的参考价值。

android分为四个层,从高层到低层分别是应用程序层、应用程序框架层、系统运行库层和linux核心层。

比如开发一个能登录查询用户个人信息的一个简单android应用,都用到了哪些层
应该是应用程序层吧

开发一个程序,android的系统框架是层层相扣,不能分开的。

应用程序层:
这个层主要指的就是用java语言编写的运行在虚拟机上的程序,Google在最开始时就 在android系统中捆绑了一些核心的应用(核心应用的编写必须使用应用层序框架层的API框架),例如你android手机中SMS发送短消息的程序,通讯录等等。

应用程序框架层:
指的就是开发时所需要的API框架,开发人员是在遵守该框架的原则上,调用他们的,开发自己所需要的程序。

系统运行库层:
用于支持应用框架层的各个组件的。就是说当开发人员使用android应用框架层时,android系统会通过一些C/C++库来支持对我们使用的各个组件,使其能更好地为开发者服务。

linux核心层:
android的核心系统服务如安全性、内存管理、进程管理、网络协议栈和驱动模型等都依赖于Linux2.6内核,Linux内核同时也作为硬件和软件栈之间的抽象层。

因此,你开发的程序是运行在应用程序层,开发中写代码调用的包,是基于应用框架层,而在应用框架中的各个组件是需要系统运行库的支持的,例如,你要登陆查看的信息就必须访问到SQLite数据库,SQLite就位于系统运行库,再有,你登入要输入信息,肯定需要键盘驱动的支持,而各种驱动是依赖Linux内核的。
参考技术A 1:android分为四个层,从高层到低层分别是应用程序层、应用程序框架层

开发一个程序,android系统框架是层层相扣,不能分开的。 应用程序层: 这个层主要指的就是用java语言编写的运行在虚拟机上的程序,Google在最开始时就 在android系统中捆绑了一些核心的应用(核心应用的编写必须使用应用层序框架层的API框架.
2:android 开发框架有四个层,从高层到低层分别是应用程序层、应用程序框架层
android应用开发框架是 Application Framework. 其系统架构由5部分组成,分别是:Linux Kernel、Android Runtime、Libraries、Application Framework、Applications。
参考技术B Android系统架构之应用程序

Android会同一系列核心应用程序包一起发布,该应用程序包包括email客户端,SMS短消息程序,日历,地图,浏览器,联系人管理程序等。所有的应用程序都是使用JAVA语言编写的。

Android系统架构之应用程序框架

开发人员也可以完全访问核心应用程序所使用的API框架。该应用程序的架构设计简化了组件的重用;任何一个应用程序都可以发布它的功能块并且任何其它的应用程序都可以使用其所发布的功能块(不过得遵循框架的安全性限制)。同样,该应用程序重用机制也使用户可以方便的替换程序组件。
参考技术C 是的,就是应用程序层

后台三层架构

后台三层架构

所谓的三层开发就是将系统的整个业务应用划分为表示层、业务逻辑层、数据访问层,这样有利于系统的开发、维护、部署和扩展。

分层实现了“高内聚、低耦合”,采用“分而治之”的思想,把问题划分开来解决,易于控制、延展,易于分配资源。

第一层:表现层/表示层:负责直接跟用户进行交互,一般是指系统的界面,用于数据录入、数据显示等。意味着只做与外观显示相关的工作,不属于它的工作不用做。

第二层:业务层/服务层:用于做一些有效性验证的工作,以更好地保证程序运行的健壮性。如完成数据添加、修改和查询业务;不允许指定的文本框中输入空字符串;数据格式是否正确及数据类型验证;用户权限的合法性判断等。通过以上的诸多判断以决定是否将操作继续向后传递,尽量保证程序的正常运行。文件名常含有service

第三层:持久层/数据访问层:顾名思义,就是用于专门跟数据库进行交互,执行数据的添加、删除、修改和显示等。需要强调的是,所有的数据对象只在这一层被引用,如System.Data.SqlClient等,除数据层之外的任何地方都不应该出现这样的引用。文件名常含有DAO(data access object)

1. 为什么使用三层架构

对于一个简单的应用程序来说,在代码量不是很多的情况下,单层架构或二层架构开发完全够用,没有必要将其复杂化,如果将一个复杂的大型系统设计为单层架构或二层架构,这样的设计则会存在很严重的缺陷。下面会具体介绍,分层开发其实是为大型系统服务的。

在开发过程中出现相似的功能时,初级程序人员经常会复制代码,那么同样的代码为什么要写那么多次?这样不但使程序变得冗长,也不利于维护,一个小小的修改或许会涉及很多页面,经常会导致异常的产生,使程序不能正常运行。最主要的是面向对象的思想没有得到丝毫的体现,打着面向对象的幌子却依然走着面向过程的道路。

针对这样的问题,初级程序人员应学会将程序中一些公用的处理程序写成公共方法,封装在类中,供其他程序调用。例如写一个数据操作类,对数据操作进行合理封装。在数据库操作过程中,只要类中的相应方法(数据添加、修改、查询等)可以完成特定的数据操作,这就是数据访问层,不用每次操作数据库时都写那些重复性的数据库操作代码。在新的应用开发中,数据访问层可以直接拿来用。面向对象的三大特性之一的封装性在这里得到了很好的体现。采用面向对象的方法,可使代码量较以前有很大的减少,而且修改的时候也比较方便,实现了代码的重用性。

2. 使用三层架构开发的优点

从开发角度和应用角度来看,三层架构比二层架构或单层架构有更大的优势。三层架构适合团队开发,每个人可以有不同的分工,协同工作能使效率倍增。开发二层或单层应用时,每个开发人员都应对系统有较深的理解,对人员能力要求很高,而开发三层应用时,则可以结合多方面的人才,只需少数人对系统有全面的了解即可,在一定程度上降低了开发的难度。

三层架构可以更好地支持分布式计算环境。逻辑层的应用程序可以在多个机器上运行,充分利用网络的计算功能。分布式计算的潜力巨大,远比升级CPU有效。美国人曾利用分布式计算进行解密,几个月就破解了据称永远都破解不了的密码。

三层架构的最大优点是它的安全性。用户只能通过逻辑层来访问数据层,减少了入口点,把很多危险的系统功能都屏蔽了。

示例:

表示层:

var express = require(‘express‘);
var router = express.Router();
var UserService = require("../service/UserService");

/* GET users listing. */
router.get(‘/‘, function(req, res, next) {
  res.send(‘respond with a resource‘);
});
router.get(‘/validate‘,function(req,res){
    var username = req.query.username;
    UserService.validate(username,function(data){
        if(data.length > 0){
            res.send("用户名已存在");
        }else{
            res.send("用户名可用");
        }
    });
});

业务层:

var UserDAO = require("../dao/UserDAO");
exports.validate = function(username,func){
    UserDAO.findByUsername(username,func);
}
exports.reg = function(username,pwd,func){
    UserDAO.insert(username,pwd,func);
}
exports.login = function(username,pwd,func){
    UserDAO.findByUsernameAndPwd(username,pwd,func);
}

持久层:

var db = require("./database");

exports.findByUsername = function(username,func){
    db.collection("users").find({username:username},func);
}
exports.findByUsernameAndPwd = function(username,pwd,func){
    db.collection("users").find({
        username:username,
        pwd:pwd
    },func);
}
exports.insert = function(username,pwd,func){
    db.collection("users").insert({
        username:username,
        pwd:pwd
    },func);

以上是关于一般的android开发都用到了系统架构哪些层?的主要内容,如果未能解决你的问题,请参考以下文章

Android中常用的框架有哪些

android开发一般都使用啥框架

android平台框架原理

什么是三层架构?各层的主要功能及相互关系都有哪些

.NET框架都有哪些?不要复制,要实际应用中用到的,他们说的项目框架又是啥意思?

安卓-第一章