基础知识之apk和framework
*apk是英文AndroidPackage的缩写
也就是我们常说的Android系统安装包。apk类似于Symbian系统的Sis或Sisx文件格式。我们可以将APK文件直接传到Android模拟器或Android手机中执行即可安装。
其实就是一个压缩文件,类似于zip格式,或者说就是zip格式。
apk有什么?
1.res文件夹(小资源文件)用来存放资源文件:drawable-hdpi等,是存放图片的;layout文件夹是存放布局的,menu是存放菜单的。
2.AndroidManifest.xml是清单文件(每个工程放里面),每一个安卓的工程都会有。里面会记录android的一些版本号、使用的SDK版本、图标等信息。但打包后,会编译成二进制的xml文件,打开可能看不到太多的信息。
3.assets文件夹(大资源文件)里面也会记录一些资源文件。但一般用来记录较大型的资源文件。比如音乐文件、视频文件,或者一些文档、图片等。
4.classes.dex(.java->.class->.dex)。因为android现在使用DVM,将.java编译成.class,再编译成.dex,最后打包为.apk.是android平台的可执行文件的类型。
5.resources.arsc(定义了各个资源ID常量)编译后的二进制资源文件。定义了各个资源ID常量,供在代码中索引资源。
6.META-INF文件夹(签名了才有)。这个文件夹简单说下吧。如果我们没有对APK签名,那么其包里是没有这个文件夹的,如果签名才有。android中,没有签名的APK是不允许安装在android设备中的。
在打包成APK的过程中,部分内容是原封不动的打包进APK的。比如上面说的资源文件等;还有是编译成二进制后打包进去的。比如清单文件等。
框架(Framework)是整个或部分系统的可重用设计
表现为一组抽象构件及构件实例间交互的方法;
另一种定义认为,框架是可被应用开发者定制的应用骨架。前者是从应用方面而后者是从目的方面给出的定义。
(看见.framework文件可以当成是一种库,.a文件是静态库,.dylib是动态库,.framework可能是静态库也可能是动态库)
框架比构件可定制性强。在某种程度上,将构件和框架看成两个不同但彼此协作的技术或许更好。框架为构件提供重用的环境,为构件处理错误、交换数据及激活操作提供了标准的方法。
应用框架的概念也很简单。它并不是包含构件应用程序的小片程序,而是实现了某应用领域通用完备功能(除去特殊应用的部分)的底层服务。使用这种框架的编程人员可以在一个通用功能已经实现的基础上开始具体的系统开发。框架提供了所有应用期望的默认行为的类集合。具体的应用通过重写子类(该子类属于框架的默认行为)或组装对象来支持应用专用的行为。
应用框架强调的是软件的设计重用性和系统的可扩充性,以缩短大型应用软件系统的开发周期,提高开发质量。与传统的基于类库的面向对象重用技术比较,应用框架更注重于面向专业领域的软件重用。应用框架具有领域相关性,构件根据框架进行复合而生成可运行的系统。框架的粒度越大,其中包含的领域知识就更加完整。
框架,即framework。其实就是某种应用的半成品,就是一组组件,共你选用完成你自己的系统。简单说就是使用别人搭好的舞台,你来做表演。而起,框架一般是成熟的,不断升级的软件。框架的概念最早起源于Smalltalk环境,其中最著名的框架是Smalltalk 80的用户界面框架MVC。随着用户界面框架Interviews【Linton 89】和ET++【Weinand 89】的开发和发布,框架研究越来越受到研究人员的重视。虽然框架研究最初起源于用户界面领域,但它被成功地应用到其他领域中,入操作系统【Russo 90】、火警系统【Molin 96a,Molin 96b】等。Taligent公司于1992年成立后,框架研究受到了广泛的重视。该公司计划基于框架来开发一个完整的面向对象操作系统。另外,该公司还发布了一套支持快速应用开发的工具集CommonPoint,其中包括了上百个面向对象框架【Andert 94,Cotter 95】。框架还没有统一的定义,其中Raiph Johnson所给出的定义基本上为大多数研究人员所接受:
一个框架是一个可复用的设计,它是有一组抽象类及其实例间协作关系来表达的【Johnson 98】。
这个定义是从框架内涵的角度来定义框架的,当然也可以从框架用途的角度来给出框架的定义:
一个框架是在一个给定的问题领域内,一个应用程序的一部分设计与实现【Bosch 97】。
为什么要用框架
因为软件系统发展到今天已经很复杂了,特别是服务器端软件,涉及到的只是,内容,问题太多。在某些方面使用别人成熟的框架,就相当于让别人帮你完成一些基础工作,你只需要集中精力完成系统的业务逻辑设计。而且框架一般都经过很多人使用,所以结构很好,所以扩展性也很好,而且它是不断升级的,你可以直接享受别人升级代码带来的好处。
框架一般处在低层应用平台(如J2EE)和高层业务逻辑之间的中间层。
软件为什么要分层?为了实现“高内聚、低耦合”。把问题划分开来各个解决,易于控制,易于延展,易于分配资源...总之好处很多。
框架和设计模式
框架、设计模式这两个概念总容易被混淆,其实它们之间还是有区别的。构件通常是代码重用,而设计模式是设计重用,框架则介于两者之间,部分代码重用,部分设计重用,有时分析也可重用。在软件生产中有三种级别的重用:内部重用,即在同一应用中能公共使用的抽象块;代码重用,即将通用模块组合成库或工作集,以便在多个应用和领域都能使用;应用框架的重用,即为专业领域提供通用的或现成的基础结构,以获得最高级别的重用性。
框架与设计模式虽然相似,但却有着根本的不同。设计模式是对在某种环境中反复出现的问题以及解决该问题的方案的描述,它比框架更抽象;框架可以用代码表示,也能直接执行和复用,而对模式而言只有实例才能用代码表示;设计模式是比框架更小的元素,一个框架中往往含有一个或多个设计模式,框架总是针对某一特定应用领域,但同一模式却可适用于各种应用。可以说,框架是软件,而设计模式是软件的知识。

浙公网安备 33010602011771号