zoukankan      html  css  js  c++  java
  • 为时三天的Android大作业经历

    作为一位后端选手,端午的三天被android课程的期末大作业所困(这节课是选修课,导致我一节课都没听过),然后开始边学边写android,一开始感觉这次作业随便糊弄以下就交了算了,但是内心的正义感(咕咕咕),让我不好意思糊弄……
    但是在这次开发的过程中,我开始对开发有了更加多的理解(本质就是代码搬运工【误)。后端开发的经验和刷算法题的经历对我完成这次作业也有很大的帮助。比如说业务分层,加密算法的实现,等等都没有像是一个安卓纯小白的样子。

    项目是一个简陋的Android的翻译软件(毕竟只学习过三天),对各位有帮助的可以点一个Star呀
    github项目地址

    0.运行截图



    1.业务分层

    我的工程目录是这样的
    在这里插入图片描述

    • dto(数据传输对象),里面是我进行网络请求的参数构造对象,以及解析返回的Response所用的类结构,使用fastjson进行解析
    • provider(数据产生对象),这个类接收DTO并对里面的数据处理后返回最终结果(也是一个DTO对象)。
    • 回到Activity层去处理传输过来的DTO对象里的数据,而Activity上又有三个Fragment对象,这里的数据传输过程本着三个Fragment依托于MainActivity想法,我把大多数Fragment的数据交互都写在的MianActivity的代码里。
    • 对于Fragment,由于数据处理,按钮事件处理大多放在了MainActivity中,这里的逻辑就非常清晰,只需要管数据是怎么显示在界面上就可以了。这样就实现了单一功能原则。

    2.业务逻辑实现

    • 首先是三个界面的跳转,我使用的BottomNavigationView加上FragmentPagerAdapter还有Fragment实现页面的轮播加上滑动。
    • 翻译这个功能调用了百度翻译的API,其中有一个需要POST的参数字段需要使用MD5加密。
      这个是我感觉比较难的的地方。然后构造完TranslatePostDTO后,将他作为参数输TranslateProvider中,使用fastjson解析返回数据,填充入TranslateResultDTO中,返回这个TranslateDTO,这里面包含我们翻译回来的结果。在翻译结果接收后,我们将其显示在屏幕上,并存入储存文件,以便于历史记录从中读取。
    • 接着是显示历史记录,历史纪录从我写入的文件中读取,但是不做其他操作的话,是无法实时同步历史记录的,我选择重写Fragment中的setUserVisibleHint方法,这个方法调用早于onCreateView,他会每次到达这个Fragment就会重新执行里面的读取文件并显示。

    3. 总结

    总之,对于我这个学习三天的成果,我是比较满意的。并且里面结合了我的日常开发经验,代码耦合度也不高。写完这个项目后我还是比较开心滴,毕竟对现在大一的我的学习能力,阅读其他人的代码(包括源码,这几天看了不少源码,确实帮助很大)的能力都有很大的提升。虽然我不是安卓开发方向的,但是这也算是对大一的一个不错的总结项目。继续努力。

  • 相关阅读:
    由基于qml,c++的串口调试工具浅谈qml与c++混合编程
    qt5_qml_Opengl_shader 第一弹----------------------openglunderqml的简化及介绍
    Delphi 的接口机制——接口操作的编译器实现过程(2)
    Delphi 的接口机制——接口操作的编译器实现过程(1)
    ddd
    [leetcode]Gray Code
    synapse socket总结一:服务器模型
    CentOS 6.5(64bit)安装GCC4.8.2+Qt5.2.1(替换GCC的链接库)
    Qt打开外部程序和文件夹需要注意的细节(Qt调用VC写的动态库,VC需要用C的方式输出函数,否则MinGW32编译过程会报错)
    Qt+SQLite数据加密的一种思路(内存数据库)
  • 原文地址:https://www.cnblogs.com/yfc0818/p/11072574.html
Copyright © 2011-2022 走看看