Android实际开发中App怎么构建?
最近很多学生问我,Android App开发时,怎么构建?是的,对于刚进入这个行业的新手来说,很多都是懵懂的,懵B的,对零散的知识碎片记忆深刻,但是对于一个完整的App开发,需要涉及到的知识点,连接起来却不明白。
今天就此进行简单的说明,希望能对哪些还处在懵懂的哥们一些提示吧!
我们知道,无论Android还是ios ,或者wp,html最核心的是:
1.展示数据(更好,更美,更准确)
2.业务交互(数据交互)
问题出来了,就好处理了。只要解决数据的展示和更好的数据交互那么一个合格的app也就好构建了
主要涉及到几个方面:
1.构建思想
1.MVC,MVP,MVVM等都是为了更好的解耦,更好,更快的开发;
2.程序大牛写个快速开发框架(如:ThinkAndroid,FastDev4Android等)也可以是新手学习借鉴的好方法;
2.UI构建
更好的展示,更美的UI设计,更具人性的App体验,更炫的动画等等都是好的app的元素,这么都归于UI构建
2.1常用的控件
下拉刷新,上拉加载
轮播图
ListView GridVIew tablayout recycleview
等等
2.2常用的组件
activity fragment service 等等
2.3常用的动画
View动画
帧动画
属性动画
动画集
2.4常见的组合
Activity+Fragment+自定义RadioGroup
Activity+Viewpager+Fragment
ACtivity +侧滑(DrawerLayout,SlidingMenu)+toolbar
混合式开发
2.5常见的页面跳转流程
splash页面 —引导页—–>主页—->分类页—–>详细页
3.网络
3.1网络协议
HTTP,HTTPS
TCP/IP
socket
3.2网络通道
wifi
2G/3G/4G
蓝牙
3.3网络请求工具
Volley
适合频繁请求,但是数据量不大的网络交互
Volley默认是不支持HTTPS
xutils
支持同步,异步方式的请求;
支持大文件上传,上传大文件不会oom;
支持GET,POST,PUT,MOVE,COPY,DELETE,HEAD,OPTIONS,TRACE,CONNECT请求;
下载支持301/302重定向,支持设置是否根据Content-Disposition重命名下载的文件;
返回文本内容的请求(默认只启用了GET请求)支持缓存,可设置默认过期时间和针对当前请求的过期时间
AFinal
通过httpclient进行封装http数据请求,支持ajax方式加载,支持下载、上传文件功能
okhttp
Android版Http客户端。非常高效,支持SPDY、连接池、GZIP和 HTTP 缓存。默认情况下,OKHttp会自动处理常见的网络问题,像二次连接、SSL的握手问题
Retrofit
版本
Retrofit 1.x
Retrofit 2.0
使用
如果你的应用程序中集成了OKHttp,Retrofit默认会使用OKHttp处理其他网络层请求。
Retrofit使用GSON解析JSON数据
其他
3.4网络数据格式
JSON XML
XML和JSON的优缺点对比
(1).可读性方面。
JSON和XML的数据可读性基本相同,JSON和XML的可读性可谓不相上下,一边是建议的语法,一边是规范的标签形式,XML可读性较好些。
(2).可扩展性方面。
XML天生有很好的扩展性,JSON当然也有,没有什么是XML能扩展,JSON不能的。
(3).编码难度方面。
XML有丰富的编码工具,比如Dom4j、JDom等,JSON也有json.org提供的工具,但是JSON的编码明显比XML容易许多,即使不借助工具也能写出JSON的代码,可是要写好XML就不太容易了。
(4).解码难度方面。
XML的解析得考虑子节点父节点,让人头昏眼花,而JSON的解析难度几乎为0。这一点XML输的真是没话说。
(5).流行度方面。
XML已经被业界广泛的使用,而JSON才刚刚开始,但是在Ajax这个特定的领域,未来的发展一定是XML让位于JSON。到时Ajax应该变成Ajaj(Asynchronous Javascript and JSON)了。
(6).解析手段方面。
JSON和XML同样拥有丰富的解析手段。
(7).数据体积方面。
JSON相对于XML来讲,数据的体积小,传递的速度更快些。
(8).数据交互方面。
JSON与JavaScript的交互更加方便,更容易解析处理,更好的数据交互。
(9).数据描述方面。
JSON对数据的描述性比XML较差。
(10).传输速度方面。
JSON的速度要远远快于XML。
4.图片加载
APP中展示的数据,绝大部分都含有图片,随着设备分辨率越来高,屏幕越来越大,怎么更好更稳定的展示图片这是我们在日后开发中所要注意的问题!!!
4.1图片请求工具
如第三方的框架
1.Picasso
2.Glide
3.volley
4.Fresco
...
4.2图片处理的问题
图片处理不好会出现
1.失真
2.OOM异常
3.错乱
最核心,也是最基本的是加载高清图片导致OOM异常的问题
其实处理图片加载OOM就两方面:
1.加载内存空间分配不够
2.降质处理
4.3图片加载样式
1.圆形图片
2.圆角图片
3.方形图片
4.不规则图片
4.4图片样式
圆形
圆角
不规则
5.数据储存
前面说了,app最核心的是展示数据和数据交互,那么Android开发中用什么技术来进行数据储存昵?
5.1网络(云储存)
公司的后台
三方的云储存
5.2数据库(sqlite)
sqlite操作
1.sql语句
2.android封装的操作类helper
3.操作框架(如:GreenDao,Afinal,xuitls)
sqlite版本更新
1.版本号
2.数据不留失更新
3.外部数据库加载
5.3sp
sp的原理
底层用了xml进行键值对储存
sp用途
临时数据,设置数据
sp使用注意事项
不宜存放过大的数据(大于app分配内存),容易导致OOM异常
5.4file
文件储存,文件下载,多线程下载,apk更新,图片下载等等
5.5ContentProvider
实际开发用的较少,在此不做过多阐述,一般用于系统联系人获取
下次继续策…