我们的产品是安卓端app,所以目前主要就是用Android Studio来进行代码开发。

Android Studio的项目的结构还是比较清晰的,如下图,主要就是java文件夹内的代码部分(.java)以及res文件夹内的布局部分 (.xml)。

一、Java部分

(一)数据库部分

这一部分主要是数据库方提供给UI小组的一系列需要用到并存储到数据库中的类。

UI小组可以不管数据库的内部逻辑,直接构造对象并用其中的方法,如下图。

(二)UI部分

这一部分主要就是前端UI的一些逻辑(主要是各个Activity)以及另外需要用到的其他一些类(如Adapter等),如下图。

      可以看到,虽然我们的app比较简单,但是实际上实现起来代码量确实不小。其中比较难及复杂的部分在后面部分会介绍。

二、布局部分

这部分基本上是和UI部分的代码对应,每一个界面以及其中的一些部件都需要布局文件,如下图。

(一)图片素材

图片主要是在drawable文件夹内,主要就是一些菜单以及按钮上要用到的小图标,还有一些背景图片。

(二)xml文件

包括layout文件夹以及menu文件夹里的文件,如下图。

三、技术难点(部分)

说是技术难点其实就是开发过程中的一些感悟。

实际进行安装开发后,才会发现,那些看起来比较简单的功能,实现起来却并不简单,这里主要就选一两个来随便讲一讲。

首先,最复杂的一部分就是DiaryWriteActivity,从代码量(java部分目前1600行)上也能看出。

根据美工的建议,我们把这个界面改成了app的主界面。这样就带来了一系列比较麻烦的问题。

因为这个界面既要展示日记,还要能编辑日记、新建日记。不同的情况就会导致不同的布局设置,就需要在代码中对页面布局进行动态设置。

再就是从不同界面都能进入这个界面,如搜索结果、时间轴、日历等等,这些界面进入虽然本质上没有什么区别,但是一个问题就是如果我们要查看前后日记,我的理解应该就是比如搜索结果进入,查看的前后日记的那个list应该就是搜索结果的那个范围,这就需要根据进入的来源去进行一些相应的判断。

还有比如我们把前后按钮改成滑动,这个滑动看起来简单,实现起来也不是几行代码的事情,另外还要考虑到某些情况应该要禁止滑动相应等等。

还有就是一个返回的问题,从不同界面返回的话结果应该也不是完全一样,这就需要在onRestart()里再做一些处理。

其实上面说的这些也不是什么真正的“难点”,就是需要注意的地方非常多,一个地方少了个条件判断,就容易出现动不动闪退的结果,给用户带来不好的体验。

还有一个比较难的地方就是富文本,这个也是一直困扰我们小组同学的地方。一方面是存储上的问题,还有就是图片上的一些问题。比如出现来插入图片在有的手机上会闪退的情况。

除了上面说的这个DiaryWriteActivity,还有一些难的地方就是想实现的一些效果很难做到或者说良心的教程很难找到。比如现在日记界面滑动切换前后日记,只是相应滑动事件改变日记内容,但如果我是真正想实现卡片式有滑动的效果就不知从何下手。这也只是举个例子,还有就是比如我前两天才发现安卓自带圆形约束布局,我之前还傻傻地纯靠自己调间距来实现。

确实像我们这样从零开始接触安卓开发确实会遇到各种问题,时不时还掉进各种坑,感觉如果想真正说andriod开发有一定了解还任重而道远。

alpha阶段 代码结构及技术难点简介的更多相关文章

  1. 【Alpha阶段】M1事后报告

    时间:2015-11-13 23:30 地点:七公寓一楼会议室 参与人员:窝窝头全体成员(王若愚因事请假) 设想和目标 我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描述 ...

  2. Alpha阶段项目展示博客

    烫烫烫烫烫(hotcode5)团队 1. 团队成员的简介和个人博客地址 刘畅 博客园ID:森高Slontia 身份:PM 个人介绍: 弹丸粉 || 小说创作爱好者 || 撸猫狂魔(x || 生命的价值 ...

  3. Alpha阶段展示报告

    一.团队成员简介与个人博客地址 江昊,项目经理 http://www.cnblogs.com/haoj/ 王开,后端开发 http://www.cnblogs.com/wk1216123/ 王春阳,后 ...

  4. V1-bug Alpha阶段项目展示

    V1-bug Alpha阶段项目展示 团队成员简介 Name Summary Sefie wxmwy V1-bug制造公司资深工程师精通各种抱大腿方式团队吉祥物 182 面面俱到流派一丝不苟 Powe ...

  5. Alpha阶段项目展示

    1.团队简介 韩青长 前端工程师 我是韩青长,技术小白,抱着对软工的好奇和对未来工作的憧憬选了这门课.暂时选择了测试的工作,也对开发和UI有一定兴趣.从前上帝创造了我们,现在轮到我们来创造自己的软件了 ...

  6. [2018福大至诚软工助教]alpha阶段小结

    [2018福大至诚软工助教]alpha阶段小结 一.得分 1. 冲刺(7次 Scrum) 150分 1)第1篇(25分) 项目 评分标准 各个成员在 Alpha 阶段认领的任务 (6分)视详细程度给分 ...

  7. 个人作业四--Alpha阶段个人总结

    一.个人总结 在alpha 结束之后, 每位同学写一篇个人博客, 总结自己的alpha 过程: 请用自我评价表:http://www.cnblogs.com/xinz/p/3852177.html 有 ...

  8. BugPhobia回顾篇章:团队Alpha阶段工作分析

    0x00:序言 1 universe, 9 planets, 204 countries,809 islands, 7 seas, and i had the privilege to meet yo ...

  9. BugPhobia展示篇章:学霸在线系统Alpha阶段展示

    0x00:序言 1 universe, 9 planets, 204 countries,809 islands, 7 seas, and i had the privilege to meet yo ...

随机推荐

  1. Microsoft Azure Storage架构分析

    Microsoft云存储服务分为两个部分,SQL Azure和Azure Storage.云存储系统的可扩展性和功能不可兼得,必须牺牲一定的关系数据库功能换取可扩展性.Microsoft实现云存储的思 ...

  2. Microsoft Azure存储架构设计

    SQL Azure简介 SQL Azure是Azure存储平台的逻辑数据库,物理数据库仍然是SQL Server.一个物理的SQL Server被分成多个逻辑分片(partition),每一个分片成为 ...

  3. JDK的windows和Linux版本之下载(图文详解)

    不多说,直接上干货! 简单说下,Eclipse需要Jdk,MyEclipse有自带的Jdk,除非是版本要求 http://www.oracle.com/technetwork/java/javase/ ...

  4. C#基础篇二变量与变量类型

    说到数据类型,先把基本的数据类型拿出来 byte 0 到 255 无符号 8 位整数sbyte -128 到 127 有符号 8 位整数short -32,768 到 32,767 有符号 16 位整 ...

  5. 32-hadoop-hbase调优

    1, 数据膨胀后, 才对region进行分区, 效率比较低, 所以需要预创建region, 进行负载均衡写入 package com.wenbronk.hbase; import org.apache ...

  6. 【IT笔试面试题整理】判断一个二叉树是否是平衡的?

    [试题描述]定义一个函数,输入一个链表,判断链表是否存在环路 平衡二叉树,又称AVL树.它或者是一棵空树,或者是具有下列性质的二叉树:它的左子树和右子树都是平衡二叉树,且左子树和右子树的高度之差之差的 ...

  7. HTTPS加密越来越流行,为何要加密?

    继谷歌之后,国内最大的搜索引擎百度在2015年5月实现了全站HTTPS加密.搜狗搜索.360搜索.bing搜索.淘宝.天猫.知乎等也都实现了全站HTTPS加密,互联网即将迎来全网HTTPS加密时代. ...

  8. SQL语句大全从基础到熟练(不含数据库高端操作)日常用户 三、

    前言 昨天晚上回家忘记带钥匙导致在楼下站街三小时,鬼天气热的不要不要的然后我就在车里坐了会之后就.....zzZZ,哈哈睡的挺香的毕竟累了一天了 上两篇文章都是介绍的语法语句,本篇文章介绍下函数的使用 ...

  9. Redis有序集合操作

    有序集合存储着成员和分值之间的映射,并且提供了分值处理命令,以及根据分值大小有序的获取或扫描成员和分值的命令 (常用命令) ZADD : ZADD key-name score member [sco ...

  10. SQL SERVER 查看SQL语句IO,时间,索引消耗

    1.查看SQL语句IO消耗 set statistics io on     select * from dbo.jx_order where order_time>'2011-04-12 12 ...