首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Android框架搭建1-架构选型

前言

Q:我们在Android开发中,为什么需要搭建框架?

这个问题,想必有很多新手会问,当然也包括以前的我。为什么需要框架?搭建一个框架有什么好处?

我们带着这个问题开始探讨......

如果没有使用框架,我们的应用中可能会这样:

Activity中,一堆的控件声明和findViewById,或者ButterKnife的一堆BindView,或者两者混合,没有统一规范。且Activity里代码又臭又长,有控件数据绑定、有业务逻辑、有事件处理等等。

网络请求,有些地方使用HttpUrlConnection,有些地方使用Okhttp,且每个网络请求都要写一堆回调处理、异常处理,并且不同网络库处理还不一样。

权限申请的代码分布在项目的各个角落,若需要修改权限请求方式,需要一个个搜索、修改,还可能会遗漏

操作数据库的代码有的在主线程,有的在子线程,且数据库有字段修改,可能造成获取数据异常

等等......

因此我希望搭建一个框架,可以:

不写FindViewById

Activity和Fragment只处理ui交互事件,不关心业务逻辑,不处理业务数据

网络请求有统一的异常处理,能自动转换成我需要的数据类型

数据库自动转换成我需要的实体类,不关心如何转换、游标需不需要关闭等问题

数据变化自动更新到ui

等等...

简单点说,一切为了快速开发,就是尽可能地少写代码,把重复工作交给框架,这样能减少很多代码量,同时也比较不容易出错(只要框架不出错)。

那么问题来了,如何搭建框架呢?且听我慢慢说

一、语言选型

语言方面,Android开发考虑两种语言:Java和Kotlin,Java想必是所有Androider都会使用的语言了,但这里我推荐用Kotlin,为什么呢?

自Google IO 2017以来,Kotlin被Google爸爸列为Android开发一级语言后,Github上越来越多的开源库都开始使用Kotlin来编写,甚至Google Developer官方教程中,也使用Kotlin来编写demo。

Kotlin有什么优势:

可以从Java无缝过渡,Kotlin完全兼容Java,你可以完全使用Kotlin开发,也可以Kotlin和Java混合使用

语法简洁,相同逻辑的代码,在不失语义的前提下,Kotlin可以做到比Java更加简洁,代码量更少

空指针安全,Kotlin提供安全的空值访问,在编码期间解决变量空值问题

扩展函数,Kotlin使用扩展函数在旧的类中添加新的扩展方法,例如:在String中添加日期转换方法

更好用的数据类,不用再写getter/setter等一大堆又臭又长的代码

等等......

简单点说就是,Kotlin比Java好用些,并且如果你不怎么会Kotlin,你可以一边写Java,一边写Kotlin,渐进地转换到Kotlin开发,反正它们俩是兼容的。

二、基础架构选型

在Android界,我的思想是:面向Google编程,简单点说,就是Google爸爸推荐用什么库,我就用什么库,Google爸爸就是Androider的模板。

Google爸爸的Android开发者中文页面:https://developer.android.google.cn

为了构建更加健壮,用户体验更好的App,我们要用到Google爸爸这些个库:

Support系列。包括support-v4、support-appcompat-v7、support-design、support-constraintlayout等等,Support系列包是Google推出的一些列兼容包,使用这些库开发Android App,可以获得更好的兼容性、健壮性和性能

Architecture components系列。Google IO 2018推出了一些列全新的开发工具包,Architecture components就是其中一个,它包括Data Binding、LifeCycle、ViewModel、LiveData、Room、WorkManager、Navigation等一系列库,从生命周期到数据库到线程工作等等。

三、其他架构选型

诸如网络请求、图片加载、缓存、路由......等等,篇幅考虑,将在后续文章中说明。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180908A1ARGJ00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券