Android APP开发设计思想.docx
- 文档编号:26331376
- 上传时间:2023-06-17
- 格式:DOCX
- 页数:13
- 大小:200.27KB
Android APP开发设计思想.docx
《Android APP开发设计思想.docx》由会员分享,可在线阅读,更多相关《Android APP开发设计思想.docx(13页珍藏版)》请在冰豆网上搜索。
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);
案例代码:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Android APP开发设计思想 APP 开发 设计 思想