Android APP开发设计思想.docx

上传人:b****6 文档编号:13803452 上传时间:2023-06-17 格式:DOCX 页数:13 大小:200.27KB
下载 相关 举报
Android APP开发设计思想.docx_第1页
第1页 / 共13页
Android APP开发设计思想.docx_第2页
第2页 / 共13页
Android APP开发设计思想.docx_第3页
第3页 / 共13页
Android APP开发设计思想.docx_第4页
第4页 / 共13页
Android APP开发设计思想.docx_第5页
第5页 / 共13页
Android APP开发设计思想.docx_第6页
第6页 / 共13页
Android APP开发设计思想.docx_第7页
第7页 / 共13页
Android APP开发设计思想.docx_第8页
第8页 / 共13页
Android APP开发设计思想.docx_第9页
第9页 / 共13页
Android APP开发设计思想.docx_第10页
第10页 / 共13页
Android APP开发设计思想.docx_第11页
第11页 / 共13页
Android APP开发设计思想.docx_第12页
第12页 / 共13页
Android APP开发设计思想.docx_第13页
第13页 / 共13页
亲,该文档总共13页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

Android APP开发设计思想.docx

《Android APP开发设计思想.docx》由会员分享,可在线阅读,更多相关《Android APP开发设计思想.docx(13页珍藏版)》请在冰点文库上搜索。

Android APP开发设计思想.docx

AndroidAPP开发设计思想

OnePieceInc.Confidential

AndroidJava

APP开发设计思想

 

变更说明

序号

版本

变更原因

变更内容

变更人

变更日期

备注

1

V0.1

初稿

初稿

叶蕾

04/10/2020

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

Androidapp开发设计思想

1前言

该文档为AndroidApp开发设计思想。

持续改进中。

1.1文档目的

文档编写目的:

为AndroidApp开发者阅读。

为App的框架搭建提供思路。

1.2设计框架图

基本的设计框架图如下:

 

2UIUE开发思路

2.1采用svg视图

适用于静态资源。

多采用矢量图svg资源。

2.2使用shape设置资源背景

适用于静态背景设置。

2.3配置网络资源

配置网络资源,可以用于风格切换,如遇到节日来替换APP的图标和背景。

可以配置

1.icon资源

2.颜色值rgba

3.字符串

实现思路:

配置一个网络请求来设置

配置R_drawable_****来替代设置R.drawable.***

配置R_color_****来替代设置R.color.***

配置R_string_****来替代设置R.string.***

3H5界面开发思路

部分UIUE采用WebView加载H5界面的开发。

在跨平台的开发中使用较为广泛。

如果平台涉及Android和IOS开发,建议非主要的界面,多采用H5形式来展示。

3.1X5Web引擎

腾讯tbsX5Web引擎可以作为首选。

TBS(腾讯浏览服务)的优势

1)速度快:

相比系统webview的网页打开速度有30+%的提升;

2)省流量:

使用云端优化技术使流量节省20+%;

3)更安全:

安全问题可以在24小时内修复;

4)更稳定:

经过亿级用户的使用考验,CRASH率低于0.15%;

5)兼容好:

无系统内核的碎片化问题,更少的兼容性问题;

6)体验优:

支持夜间模式、适屏排版、字体设置等浏览增强功能;

7)功能全:

在Html5、ES6上有更完整支持;

8)更强大:

集成强大的视频播放器,支持视频格式远多于系统webview;

9)视频和文件格式的支持x5内核多于系统内核

10)防劫持是x5内核的一大亮点

步骤如下:

一、下载jar包及so文件分别放到libs和jniLibs文件夹

二、添加权限

三、Application中初始化

四、使用自定义X5WebView继承腾讯包下WebView

4Widget使用和开发思路

4.1androidx视图控件

AndroidX是对android.support.xxx包的整理后产物。

由于之前的support包过于混乱,所以,Google推出了AndroidX。

由于在后续版本中,会逐步放弃对support的升级和维护,所以,我们必须迁移到AndroidX

迁移步骤可以参考网上案例。

4.1.1RecyclerView

RecyclerView是Android一个更强大的控件,其不仅可以实现和ListView同样的效果,还有优化了ListView中的各种不足。

其可以实现数据纵向滚动,也可以实现横向滚动(ListView做不到横向滚动)。

接下来讲解RecyclerView的用法。

RecyclerView基本用法

因为androidx.recyclerview.widget.RecyclerView属于新增的控件,Android将RecyclerView定义在androidx库里。

若要使用RecyclerView,第一步是要在build.gradle中添加对应的依赖库。

implementation'androidx.recyclerview:

recyclerview:

1.0.0'

4.1.2ConstraintLayout

ConstraintLayout的出现主要是为了解决布局嵌套过多的问题,以灵活的方式定位和调整小部件。

从AndroidStudio2.3起,官方的模板默认使用ConstraintLayout,可见ConstraintLayout的重要性,约束布局非常有利于可视化编程,各种拖拽操作。

但是我们实际开发中是不建议使用拖拽,这样写出来的代码维护成本更高。

RelativeLayout也可以解决多层嵌套问题,但是ConstraintLayout更加灵活,性能更加出色。

适合的场合

1.追求更高的性能:

ConstraintLayout可以有效减少布局的嵌套。

绘制过程中的每个阶段都需要对视图树执行一次自顶向下的遍历操作。

2.实现动画:

可以更加简单实现复杂的动画。

属性分类

ConstraintLayout目前有57个属性(还在迭代),相比LinearLayout和RelativeLayout的学习成本是徒增的,在没有了解他们的属性前,看起来是非常的复杂。

由于属性太多,这里把他们分类几类,这样理解起来就简单很多了。

⏹位置约束layout_constraintXX_toYYOf(13个)

⏹layout_constraintXX_creator(5个,无意义参数)

⏹layout_goneMarginXX(6个)

⏹大小约束layout_constraint[Width|Height]_**(10个)

⏹宽高比例约束layout_constraintDimensionRatio

⏹layout_constraintCircle**(3个)

⏹绝对位置(2个)

⏹参照物Guideline组件(3个)

⏹屏障Barrier组件(2个)

⏹Group组件(和Barrier共享1个)

⏹占位符Placeholder(1个)

⏹其他属性

动画的实现

首先,新建两个布局文件,(注意要用ConstarintLayout布局),一个为执行动画前的布局,另一个是执行动画后的布局。

注意:

务必保持两个布局文件中对应控件的Id一致,要不然没有动画效果。

最为关键的是ConstraintSet这个类的应用。

我们创建两个变量mConstraintSet1,(用于恢复正常状态)mConstraintSet2(用于执行动画状态),初始化变量。

然后分别调用它们clone()的方法,把ConstraintLayout的布局内容克隆到ConstraintSet中。

需要注意的是clone(this,R.layout.animation_execute)这个方法,它的第二个参数为你要执行动画后的布局哦。

最后我们在回调函数中执行如下代码即可。

执行动画代码:

TransitionManager.beginDelayedTransition(constraintLayout);mConstraintSet2.applyTo(constraintLayout);

还原正常状态代码

TransitionManager.beginDelayedTransition(constraintLayout);mConstraintSet1.applyTo(constraintLayout);

到此,运行代码就可以看到动画效果了。

这就是ConstraintSet的简单用法,它还可以为ConstaintLayout实现许多炫酷的动画效果。

4.2自定义Widget控件

继承至View,TextView,ImageView等的控件。

重点是参照实现效果来重写系统原来的控件。

满足程序通用的要求。

例如:

指定font的TextView的效果。

4.3自定义组合控件

可以降低核心UI类(例如Fragment)的代码,增加代码的可读性和可复用性。

布局文件

继承类

1.第一部分:

内部私有变量,布局的Widget对象。

2.第二部分,inflate布局。

3.第三部分,在onFinishInflate函数中,初始化Widget对象。

4.4网络控件的使用

接到一个需求,先看看github等开源平台上是否有现成的控件直接使用。

在项目进度紧张的时候,这样做能够大大提供开发效率。

在项目维护期内,甚至可以将这些控件进行本地widget化

●轮播控件bannerapi'com.hejunlin.superindicatorlibray:

superindicatorlibray:

1.0.3'

●选择器组件:

日历,城市等api'com.bigkoo:

pickerview:

2.1.1'

●圆角显示组件api'com.makeramen:

roundedimageview:

2.3.0'

●下拉刷新组件api'in.srain.cube:

ultra-ptr:

1.0.11'

4.5构建自己的Widget库架子

将自己自定义的Widget组件或控件进行统一的管理,以便后续复用。

5工具类框架

需要构建一套适合自己的,可复用的,可移植的,持续维护的工具类。

持续改进,渐进明细。

设备类工具:

设备相关的信息的函数

字符串工具:

字符串操作相关的函数。

文件存储工具:

本地配置相关的写和读操作。

6调试模式

目的:

1.构建可定制化的配置开关,功能开关,调试开关等。

2.数据请求接口的监控。

便捷定位到问题和分析问题。

3.Web开发中,也可监控网页的跳转。

6.1环境切换

正式环境和测试环境的切换。

6.2网络请求调试模式

网络请求历史记录

6.3H5界面调试模式

H5界面的访问的历史记录。

6.4清理浏览器缓存

针对WebView进行数据的清理。

6.5清理数据并重启

可以定义清理的数据的等级。

6.6功能调试开关

某一项功能的开关,用于控制功能是否使用。

6.7账户信息

账户或本机相关的信息展示。

7数据存储思路

7.1数据库存储

数据库的升级和管理。

7.2结构型数据转字串符存储到文件

将数据结果转换成json字符串之后,通过K&V健值对存储到文件中。

读取的时候,也是先获取字符串,然后将json字符串转换成数据结构。

7.3健值数据存储到文件

 

8网络通信思路

8.1socket通信

有加密需求的,建议使用socket通讯。

8.2http通信

才采用GET和POST。

9三方登录

需要后台支持,支持三方的鉴权。

9.1微信登录

参照微信开放平台的文档。

9.2QQ登录

参照QQ开放平台的文档。

9.3微博登录

参照微博开放平台的文档。

10推送

华为平台采用华为推送。

小米平台使用小米推送。

其他平台,采用友盟推送。

10.1小米推送

参考小米推送开放平台的文档。

10.2华为推送

参考华为推送开放平台的文档。

10.3友盟推送

参考友盟推送开放平台的文档。

11统计

统计一般采用友盟的自动统计功能。

自动统计

MobclickAgent.setPageCollectionMode(MobclickAgent.PageMode.AUTO);

手动统计

MobclickAgent.setPageCollectionMode(MobclickAgent.PageMode.MANUAL);

案例代码:

 

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 幼儿教育 > 育儿理论经验

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2