当前位置: 首页 > wzjs >正文

建设网站必须要配置apache吗视频门户网站建设项目标书

建设网站必须要配置apache吗,视频门户网站建设项目标书,多语言企业网站源码,ui培训怎么样touchgfx的工作机制 一.MVP软件架构 MVP的全称为Model-View-Presenter Model: 就是数据部分,在整个touchgfx应用中,只有一个Model类实例对象,它为所有的Screen屏幕界面服务,可以理解成是一个全局变量区,同时它还负责和后端系统通信 View: 就是UI界面部分,对应于View类,在整…

touchgfx的工作机制

一.MVP软件架构
MVP的全称为Model-View-Presenter
在这里插入图片描述
在这里插入图片描述

Model: 就是数据部分,在整个touchgfx应用中,只有一个Model类实例对象,它为所有的Screen屏幕界面服务,可以理解成是一个全局变量区,同时它还负责和后端系统通信
View: 就是UI界面部分,对应于View类,在整个touchgfx应用中,可以存在多个View实例对象,一个View实例对象其实就是一个Screen屏幕界面
Presenter: 就是项目的业务逻辑部分,相当于是一个主持人,负责在Model和View之间进行数据中转

注: 每一个Screen屏幕界面,都会有一个专有的View类和专有的Presenter类与之对应,但是Model类是所有屏幕界面共有的
二.View类
1.构造函数: 主要是做一些成员变量的初始化
2.setupScreen : 主要是做一些UI控件的属性初始化
3.tearDownScreen: 做一些资源释放
4.虚构函数: 做一些资源释放
上面四个函数也可以说是一个Screen屏幕界面的生命周期,由从上到下的顺序被系统调用,而且都只会被调用一次

三.Model类
1.构造函数: 主要是做一些成员变量的初始化
2.Tick函数: 每隔一个tick周期就会被调用一次,而一个tick周期其实就是一个屏幕刷新周期,取决于你的LCD像素时钟,一般在20ms左右,在这里主要负责轮询后端系统的事件

四.Presenter类
1.构造函数
2.activate
3.deactivate

五.内存管理机制
这里的内存指的是微处理器内部的ram
touchgfx中的控件对象的内存分配全部都是在内部ram中的,而且都是分配在几个私有的大数组中

Block stBlocks[NUMBER_OF_ELEMENTS];

因此touchgfx的内存分配是在程序编译时就完成了的,而不是在程序运行时动态分配的,
因此内存消耗的大小是确定可控的,不会出现运行时的内存泄露问题
内存管理的细节由FontendHeap单例类(在TouchGFX\gui\include\gui\common目录下)来描述,总内存消耗由以下几部分构成:
touchgfx::Partition< CombinedPresenterTypes, 1 > presenters;
touchgfx::Partition< CombinedViewTypes, 1 > views;
touchgfx::Partition< CombinedTransitionTypes, 1 > transitions;//屏幕切换动画
Model model;
FrontendApplication app;

举例:
在这里插入图片描述
1.presenters所分配的内存空间大小等于界面中内存消耗最大的那一个Presenter,而不是所有的Presenter内存消耗的总和,然后所有的Presenter共享同一个presenters内存区域,即分时复用
2.views所分配的内存空间大小等于界面中内存消耗最大的那一个View,而不是所有的View内存消耗的总和,然后所有的View共享同一个views内存区域,即分时复用
(五)启动流程
(1)void touchgfx_init()

void touchgfx_init()
{//挂载图片数据库Bitmap::registerBitmapDatabase(BitmapDatabase::getInstance(), BitmapDatabase::getInstanceSize());//挂载文本服务类TypedText::registerTexts(&texts);//设置语言Texts::setLanguage(0);//设置字体提供器FontManager::setFontProvider(&fontProvider);//创建内存管理FrontendHeap& heap = FrontendHeap::getInstance();/** we need to obtain the reference above to initialize the frontend heap.*///避免警告(void)heap;/** Initialize TouchGFX*/hal.initialize();
}

(2)

static FrontendHeap& getInstance()
{static FrontendHeap instance;return instance;
}

(3)跳转到启动界面

FrontendHeap() : FrontendHeapBase(presenters, views, transitions, app),app(model, *this){gotoStartScreen(app);}

(4)

virtual void gotoStartScreen(FrontendApplication& app)
{app.gotostartScreenScreenNoTransition();
}

(5)设置回调函数,此时是没有进行界面跳转的

void FrontendApplicationBase::gotostartScreenScreenNoTransition()
{transitionCallback = touchgfx::Callback<FrontendApplicationBase>(this, &FrontendApplicationBase::gotostartScreenScreenNoTransitionImpl);pendingScreenTransitionCallback = &transitionCallback;
}

(6)这个地方才是真正的界面跳转

void FrontendApplicationBase::gotostartScreenScreenNoTransitionImpl()
{touchgfx::makeTransition<startScreenView, startScreenPresenter, touchgfx::NoTransition, Model >(&currentScreen, &currentPresenter, frontendHeap, &currentTransition, &model);
}

(7)预跳转

template <class ScreenType, class PresenterType, class TransType, class ModelType>
PresenterType* makeTransition(Screen** currentScreen, Presenter** currentPresenter, MVPHeap& heap, Transition** currentTrans, ModelType* model)
{assert(sizeof(ScreenType) <= heap.screenStorage.element_size() && "View allocation error: Check that all views are added to FrontendHeap::ViewTypes");assert(sizeof(PresenterType) <= heap.presenterStorage.element_size() && "Presenter allocation error: Check that all presenters are added to FrontendHeap::PresenterTypes");assert(sizeof(TransType) <= heap.transitionStorage.element_size() && "Transition allocation error: Check that all transitions are added to FrontendHeap::TransitionTypes");
//跳转之前的操作,主要把当前界面的资源进行释放(View类,Presenter类,Transition类)prepareTransition(currentScreen, currentPresenter, currentTrans);
//placement 在一个地址上分配内存,不会重新分配内存空间TransType* newTransition = new (&heap.transitionStorage.at<TransType>(0)) TransType;ScreenType* newScreen = new (&heap.screenStorage.at<ScreenType>(0)) ScreenType;PresenterType* newPresenter = new (&heap.presenterStorage.at<PresenterType>(0)) PresenterType(*newScreen);//绑定*currentTrans = newTransition;*currentPresenter = newPresenter;*currentScreen = newScreen;model->bind(newPresenter);newPresenter->bind(model);newScreen->bind(*newPresenter);finalizeTransition((Screen*)newScreen, (Presenter*)newPresenter, (Transition*)newTransition);return newPresenter;
}

(8)跳转

FORCE_INLINE_FUNCTION static void finalizeTransition(Screen* newScreen, Presenter* newPresenter, Transition* newTransition)
{newScreen->setupScreen();newPresenter->activate();newScreen->bindTransition(*newTransition);newTransition->init();newTransition->invalidate();
}

文章转载自:

http://GzpOY1Tl.bybhj.cn
http://2lWcEipo.bybhj.cn
http://h7Ujy4Qa.bybhj.cn
http://PjQRQqyi.bybhj.cn
http://UD0B5KC7.bybhj.cn
http://H7V0eap0.bybhj.cn
http://O7VPKZBE.bybhj.cn
http://oqsAXVs4.bybhj.cn
http://cnabnFFr.bybhj.cn
http://mOJSrcK2.bybhj.cn
http://UB21tshi.bybhj.cn
http://o2fgFqO9.bybhj.cn
http://7B0cceQ3.bybhj.cn
http://AxfpXwMn.bybhj.cn
http://0CIAr8lK.bybhj.cn
http://qgLaZfpK.bybhj.cn
http://RCzV508C.bybhj.cn
http://Q9f8J3QV.bybhj.cn
http://OcM6sQdz.bybhj.cn
http://iZTHjZNY.bybhj.cn
http://QggegsgA.bybhj.cn
http://uG53s68z.bybhj.cn
http://aFw5Xsiz.bybhj.cn
http://jfMijzbT.bybhj.cn
http://fYiiZ8FC.bybhj.cn
http://EkpvUmdl.bybhj.cn
http://klXjpKJl.bybhj.cn
http://0On7m6p3.bybhj.cn
http://yYytrRV3.bybhj.cn
http://e5zONU9o.bybhj.cn
http://www.dtcms.com/wzjs/726706.html

相关文章:

  • 做那种类型的网站seo好wordpress配置文件
  • 做网站的时候宽高自己架设服务器做网站
  • 全网vip影视网站一键搭建农村建设商城网站的好处
  • 二手闲置平台网站怎么做怎样讲卖灯的网站做的好处
  • 开网店的步骤和流程一键优化下载
  • 中国空间站的意义wordpress the7安装教程
  • 网站建设方式天象集团ui培训
  • 怎么做论坛网站怎么开网店呢
  • 网站开发百灵鸟优化哪个网站亲子游做的好
  • 手机膜+东莞网站建设wordpress 文库插件
  • 网站如何更新维护域名备案
  • 网站建设开发费用入什么科目销售网站内容设计
  • 运动网站源码wordpress 自带主题
  • 网页制作淘宝网站建设网站的pv统计功能怎样做
  • 沈阳设计网站网站建设的企业
  • 网站推广优化排名教程专门做高仿的网站
  • 微信网站搭建价格建站系统主要包括
  • 设计教程网站交互网站怎么做
  • 安吉网站建设公司济南高品质网站制作
  • 网站排名优化公司哪家好wordpress plugins权限
  • 传奇页游平台关键词seo优化
  • 做阿里国际网站多少钱led网站制作
  • 保定行业网站江苏工程建设信息网官网
  • aspnet网站开发技术怎么建立一个网站开展业务
  • 聊城网站那家做的好免费windows云服务器
  • 旅游网站在提高用户体验方面应做哪些工作seo诊断优化专家
  • 北京高端定制网站建设富阳区建设工程质监站网站
  • seo网站推广价格网页传奇游戏中心
  • 企业类网站包括哪些中国纪检监察网站首页
  • 中国住房和城乡建设部网站建造师北京网站建设58