博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[译]重构源代码构建 Android TV 开发手册十四
阅读量:6271 次
发布时间:2019-06-22

本文共 2075 字,大约阅读时间需要 6 分钟。

版权声明:本文为博主原创翻译文章,转载请注明出处。

推荐: 欢迎关注我创建的Android TV 简书专题,会定期给大家分享一些AndroidTv相关的内容:


###重构

通过本教程,我已经解释了Android TV特定的UI实现(从引用的示例源代码)。 所以我通过重组源代码文件来总结这个项目。 我根据每个类的作用进行了重构,并完成了下面的结构。

  • com.corochann.androidtvapptutorial
    • common-共同模块。 此模块不依赖于此应用程序的具体实现,以便您可以在其他项目中重新使用的代码。

      • PlaybackController
      • utils的
    • data - “模型”的数据集

      • MovieProvider
    • model - MVP架构的“模型”部分

      • Movie
    • recommendation - 推荐功能部分

      • RecommendationBuilder
      • RecommendationFactory
    • ui - UI处理模块(活动和片段)

      • MainActivity&MainFragment

      • DetailsActivity & VideoDetailsFragment

      • PlaybackOverlayActivity&PlaybackOverlayFragment

      • SearchActivity&SearchFragment

    • ErrorActivity&ErrorFragment

    • GuidedStepActivity

    • presenter -MVP架构的Presenter部分

      • CardPresenter
      • (GridItemPresenter) 它在MainFragment中定义,但也可以移动到这里。
      • DescriptionPresenter
      • DetailsDescriptionPresenter
    • view - MVP架构的View部分复制代码
      • 本教程中没有任何内容。 定制设计视图来到这个地方。 例如,如果没有由Leanback支持库提供,ImageCardView将放置在此处。
  • background- 处理背景的模块。 它也是一个常用的模块。
    • SimpleBackgroundManager
    • PicassoBackgroundManager 复制代码

下面我继续补充说明。 ###UI处理模块

起初我想区分处理UI的部分。 更新UI的模块如下,

  • ~Activity - 构成当前Activity的主要组成部分。
  • ~Fragment - Fragment通过填充特定的子组件来支持Activity的UI。
  • ~Presenter - Presenter定义如何显示具体的“item”,稍后将对此进行详细介绍。

让我们在这个包里面添加新的包“ui”并替换上面的内容。 可以通过右键单击软件包名称→新建→软件包→键入“ui”。 然后,新的文件夹“ui”出现在您的Android studio中。 ###Model-View-Presenter(MVP)架构模式

通过本教程,我们使用Movie类作为一个项目来显示,并且我们使用ImageCardView显示其实例。 它由介质CardPresenter实现,它指定如何将此Movie实例显示到ImageCardView 。

这种架构叫做Model-View-Presenter(MVP)架构模式。 模型是将其处理为“Object”的项目的定义,它是面向对象编程的基础,View是显示此项目的实际UI,Presenter是Model和View的中间体。

在我们的例子中,我们可以写这个对应。

Model String Movie
View TextView ImageCardView
Presenter GridItemPresenter CardPresenter

如果您有Web应用程序开发经验,您可能会提醒模型 - 视图 - 控制器(MVC)模式(特别是在rails开发ruby的人员)。 以下是MVC和MVP之间的比较

MVC

MVP

引自http://www.gwtproject.org/articles/testing_methodologies_using_gwt.html

每个模块的Model,View和Presenter在重构后分成每个模块。 我把View和Presenter放在“ui”包中,因为它正在改变UI。

###参考

####本教程的结论

到目前为止,我已经解释了Leanback支持库,这使得我们的Android TV应用程序的UI设计更容易,更简单。 我会说这不是一个简短的教程,但现在几乎所有的Android TV特定UI设计(直到API级别22)都被覆盖了! 我希望您获得Android TV应用程序开发的基础知识,并且您不会失去开始开发自己的设计应用程序的方法。

源代码可以在上找到。 关注微信公众号,定期为你推荐移动开发相关文章。

转载于:https://juejin.im/post/5b714cb2e51d4566375630e2

你可能感兴趣的文章
第二周个人赛
查看>>
推断Windows版本号新方法
查看>>
2017-4-18 ADO.NET
查看>>
RSuite 一个基于 React.js 的 Web 组件库
查看>>
技术博客网址收藏
查看>>
python 金融分析学习
查看>>
授人以渔不如授人以鱼
查看>>
matlab练习程序(图像Haar小波变换)
查看>>
【Java】从域名得到ip
查看>>
Mysql索引会失效的几种情况分析
查看>>
LVM逻辑卷
查看>>
zoj3591 Nim(Nim博弈)
查看>>
canvas绘图
查看>>
poj - 3039 Margaritas on the River Walk
查看>>
bootstrap(5)关于导航
查看>>
Aptana插件在eclipse中安装
查看>>
jQuery-数据管理-删除事件
查看>>
下载器简单实例
查看>>
java实现分页工具类(JDBC)
查看>>
欧几里德算法与扩展欧几里德算法
查看>>