Android双层框架解析 - 高焕堂

3星 · 超过75%的资源 需积分: 10 3 下载量 76 浏览量 更新于2024-07-30 收藏 596KB PPT 举报
"高焕堂对Android两层框架的讲解" 在Android开发中,高焕堂提出的两层框架概念是一种设计模式,旨在优化应用程序结构,提高代码的可复用性和可维护性。这种框架设计主要分为两个层次:上层的Application Programming Interface (API) 和下层的游戏引擎或核心功能模块(Engine)。 1. **框架的生成**: 框架的生成是从传统的C++应用程序理念出发,例如C++游戏应用。在传统的C++程序中,UI(用户界面)和游戏引擎是紧密耦合的。而在两层框架中,这种耦合被解耦,使得UI(AP)和引擎(Engine)可以独立发展。 2. **单层框架与双层框架**: - **单层框架**:在这种框架中,API和Engine通常是直接关联的,API(如Java基类)会直接调用Engine(如C++ Engine)的功能。这导致了API对Engine的强依赖,限制了Engine的灵活性。 - **双层框架**:高焕堂提出的双层框架则引入了一个中间层,即C++框架(framework)。这个框架作为API和Engine之间的桥梁,降低了它们之间的耦合度。API(C++子类)通过继承C++框架的一般性基类来实现功能,而Engine(C++特殊领域基类)则专注于提供底层服务。 3. **框架的角色**: - **降低依赖性**:框架提供了绝佳的制高点,处理线程的复杂性,减少API与Engine的直接交互,从而降低它们之间的依赖关系。 - **增强灵活性**:通过这种方式,Engine可以保持100%的自由度,方便进行版本更新和优化,适应市场变化,如“没钱就改版,改版就有钱”。 4. **Java框架与JNI**: 在Android环境中,由于Java是主要的编程语言,所以有时会使用Java框架来封装JNI(Java Native Interface),以调用C++ Engine提供的功能。Java子类会继承Java基类,这些基类可能包含JNI接口,用于与C++ Engine进行通信。 5. **Android双层框架的应用**: - **Android双层框架之例(1)**:可能涉及到Android系统层面的组件,如硬件抽象层(HAL),它是一个C++框架,用于与设备驱动进行交互,而Java层API则通过JNI调用HAL服务。 - **Android双层框架之例(2)**:在游戏开发中,Java层负责用户交互和逻辑控制,C++ Engine负责图形渲染和物理计算。 - **Android双层框架之例(3)**:可能是指第三方库或SDK的实现,其中Java层提供易用的API,而C++层实现高性能和低级别的功能。 6. **优势**: 双层框架设计不仅提高了代码的可读性和可扩展性,还允许Engine模块独立升级,有利于模块化开发和团队协作。同时,它有助于保持应用的稳定性和兼容性,因为API的变化不会直接影响到Engine的实现。 高焕堂的Android两层框架设计理念强调了分层和解耦,为Android应用开发提供了一种高效且灵活的架构模式。通过这样的设计,开发者可以更好地管理和维护复杂的项目,同时提高软件的可维护性和适应性。