从0搭建 Android App

简介

因为工作调整原因,从公司的Android架构组调到了一个新团队,从头开始搭建一个社区APP。索性,在架构组的时候,对app的架构有一定了解,可以搭建相对较为完善的app。

架构

骨架是基础,没有骨架,所有代码就像散沙一样,臃肿,混乱就全来了。
简单画了下APP的架构:
arc

架构比较简单:

最上层是壳工程:基本不涉及业务代码,只是一个容纳各个业务模块的工程。里面一般只包含开屏页和首页及4个tab。

接着就是项目的各个业务模块,一般都是按照业务类型分成各个module。

foundation模块是项目的公共基础模块,应该包含项目所有公共组件,工具类,以及对各个SDK封装的代码等。
我认为应该包含:mvp框架代码,公共UI组件,webView封装组件等等吧

foundation再下方就是各种无关业务的SDK组件,我只列了网络,图片,日志框架,还有很多框架,后面再往下补充了。

DETAIL

壳工程

在application里会进行非常多初始化的操作,多了之后会发现app启动时间越来越长。建议可以起一个intentService,在intentService中进行初始化操作,会减少启动耗时。因为壳工程内容不多,暂时只能想到这个,后续想到其他的话,再补充。

Business Module

没啥,按照业务模块创建module就行

Foundation
1.工具类

编码加解密:AES(使用了梆梆安全的so库),base64,md5工具类等

封装各个SDK调用的工具类 例如:图片加载

建议使用所有SDK都创建工具类,封装使用,以此一旦需要更换SDK,只需要修改工具类中的调用方法,不需要改动调用处,否则工作量就大了。

2.基础框架

MVP框架 (这个也是参照github上的框架做的改造,但找不到是哪个链接了,后续再写一篇mvp框架补上吧)

BaseActivity

跨平台:webView react-native

3.公共组件

cardView ConstraintLayout recyclerView

vlayout

SDK

网络:OKHttp (https://github.com/square/okhttp)

fastJson (https://github.com/alibaba/fastjson)

日志:xLog (https://github.com/elvishew/xLog)

图片:glide (https://github.com/bumptech/glide)

动画:lottie (https://github.com/airbnb/lottie-android)

数据监控:神策

线上崩溃统计:自己实现

sqllite:lietpal
https://github.com/LitePalFramework/LitePal)

推送:个推

性能:leakCanary (https://github.com/square/leakcanary)

通信:eventbus (https://github.com/greenrobot/EventBus)

组件:vlayout (https://github.com/alibaba/vlayout)

依赖注入: butterKnife (https://github.com/JakeWharton/butterknife)
butterknife对多模块应用支持还是不太好,后续在使用过程中发现在业务模块,死活无法绑定view id,最后弃用了butterKnife,不知道现在修复好了没,说实话,butterknife还是能提高一定开发效率的

地图:高德地图

二维码: zxing

大概罗列了下项目中目前使用的sdk,框架等,后续再补充吧

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值