Android项目体系结构


    任何一个大一点的软件项目,都必须有一个合理的体系结构。软件有哪些功能?这些功能通过哪些技术或者工具来实现?这些功能之间如何联系?怎样实现这些功能才能使整个软件系统达到要求的性能?这些都是一个软件项目在分析、设计初期都必须考虑的问题。

    一个软件项目,一定有用户界面部分,有后台部分,可能还有通信部分,数据库部分...。每个部分都需要利用不同的技术或者工具,下面我们面向Android软件项目,谈谈Android软件的一般体系结构,以及体系结构中几个主要部分的常用主要技术。

    Android有四大基本组件:Activity,Service,BroadcastReceiver和Content Provider。这四大基本组件本身就提供了一个比较合理的体系结构。一般来讲,Activity主要实现用户界面功能,而Service主要实现非用户界面功能,BroadcastReceiver主要实现广播消息,Content Provider提供数据库服务等功能。其中Activity和Service尤其是每一个软件项目都是必不可少的组件。然而,这些Android组件都采用Java技术,对于一个在手机上运行的、比较复杂的软件系统来说,如果仅仅依靠Java技术,在性能上,特别是速度上,可能就不大让人满意了。不过,Google公司考虑还是很周全的,它为Android 系统提供了另一个技术:JNI。

    JNI(Java Native Interface)让软件设计者可以采用C/C++技术来为Android 软件编写程序,这就大大提高了Android 软件的性能。其实,JNI技术的历史比Android的历史悠久多了。我们这里不想讲这个问题,我们要讲的问题是,通过JNI技术,Android软件实际上可以原封不动地大段引用Linux的C/C++语言。这样,以Android的JNI技术作为中介,Linux的C/C++语言可以为Android软件提供强大的支持。所以,一个Android软件项目,其系统结构往往是这样构成的:

●用Activity实现用户界面功能;

●用Service实现不需要界面的后台服务,并且使用更后面的JNI程序;

●JNI使用Linux的C/C++语言,实现线程、加密等等重要的、需要更高性能要求的功能。

    这样的Android软件系统结构,与Web项目的三层结构、J2EE项目的MVC模式,有共同的设计思想。但是,Java程序调用JNI程序,或者JNI程序调用Java程序,效率都比较低。因此,这种Android软件系统结构,更适合于Java和C/C++两端独立性都比较强的软件。对于小型Android软件,还是采用由Android基本组件构成的系统比较实际。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值