实习也半年了,觉得自己前几个月过的太奢侈了,没事打个游戏、看电影。 于是开始想着去做点东西,一直没有很好的需求和想法。上个月,本来想依照这微信去做一个表白软件的 ,现在,也没那心思了,那我就把微信主要的东西都给仿做出来 然后试着去添加一些自己的元素。
然后我把这个过程记录下来 也方便以后自己去查看.
项目目录
项目开发的时候一定要分好目录!!! 这样也会使你以后代码的阅读和重新修改变得更加便捷 ,整个项目也简洁明了。
因为我觉得这个项目不会太大 所以我就选择了这种分层方式,大项目的话 我觉得按模块分会更清晰。
adapter 主要是用来存放listview和RecyclerView使用的Adapter;
common 主要是用来存放基础类的 例如(BaseActivity) 这种全局基础类
config 主要用来存放配置信息的和一些常量数据
model 存放数据类
receiver 存放全局广播
greendao 存放数据库操作类
retrofit 用来存放网络请求
ui 里面就是放activity和fragment , weight是自己写的view
utils 存放的是帮助类
环境搭建
当你去做一款APP的时候 首先你要去看一下大体功能 然后去选择比较合适的框架 由于这是我们基础框架 所以我们就去引用一些在项目中经常用到的库
butterknife
compile 'com.jakewharton:butterknife:8.4.0'
视图注解库这是一个注解库 为什么引用这个库呢 实在是写findIdByVIew写够了!使用这个库会大大的简化代码量 而且对于点击事件什么的就没必要写的那么啰嗦了
不使用时
使用后
是不是代码变得很简洁了 我在这里简单的说一怎么使用 大家如果想仔细学习的话 自行百度
private Unbinder unbinder;//定义一个全局的UnBinder 用于在onDestory中取消资源
然后在onCreate里面绑定
我们本着最佳的效率 所以 我们在布局销毁的时候在onDestory 把资源释放掉
这里是只是简单的去介绍一下 剩下的想怎么在fragment viewholder中的详细用法 请自己百度
retrofit
compile'com.squareup.retrofit2:retrofit:2.1.0'
compile'com.squareup.retrofit2:converter-gson:2.1.0'
compile'com.squareup.okhttp3:logging-interceptor:3.3.0'
compile'io.reactivex:rxandroid:1.1.0'
compile'com.squareup.retrofit2:adapter-rxjava:2.0.0'
网络访问神器 从此handler啥的都是浮云
本来是想做一个表白软件的 所以所有的数据应该存在服务器上 但是现在想法改了,就是想做一个属于自己的微信 所以 我暂时把所有数据都存在本地 ,等软件完成以后在开始重构 加入网络访问 所以这个网络框架暂不讲解怎么搭建,为什么加gson 和 rxjava就是为了直接在主线程中使用 不许再去些啥 handler了 message了 。
BaseRecyclerViewAdapterHelper
compile'com.github.CymChad:BaseRecyclerViewAdapterHelper:2.9.30'
adapter适配类帮助 ,慎之又慎还是把这个adapter的大杀器放出来了 从此再也不用什么写什么viewholder的 至少简化了adapter的百分之七十的代码量 而且让recyclerview添加头部布局尾部布局变得和listview 一样简单 让recyclerview的item点击事件长按事件都很简单 让树形布局变得也没那么麻烦了 我觉得这是一定要掌握的一个框架 在项目中我们也会讲解怎么使用
glide
compile'com.github.bumptech.glide:glide:4.6.1'
网络图片加载框架
在几个图片加载框架中 我还是最喜欢这个框架 他让你加载网络图片变成了一行代码 而且让你加载错误和加载中的状态的图片设置都变成一行代码 强大的缓存机制也是我喜欢她的主要原因(后期我们可以尝试去自己构建一个)
soter-wrapper
compile'com.tencent.soter:soter-wrapper:1.3.12'
腾讯的指纹库 因为自己做的东西,有一些隐私是不想让别人看到的 所以就想加一个加密措施 本着便捷的想法 我就想用指纹验证 刚开始根据网上的例子开始自己去写指纹验证的,但是由于机型(oppo r9系统5.1)原因 不支持!!!!然后就去晚上搜找了几个star很多的开源指纹库 一样白搭 其实最主要的原因还是QIONG!!!! 奉劝大家一句 搞开发别拿自己手机跑程序 一定要有一个工程机 我要不是系统卡 掉电无敌快 开锁界面有时候卡死 打开app时间变慢 程序卡顿 偶尔卸载不了 我也不会提醒你! 言归正传 当我已经放弃改用九宫格解锁的时候, 在github上面搜到了这个指纹库 然后我就加进项目里面了 (亲测可用) 据说和微信的指纹验证是一个的
具体使用请看 https://github.com/Tencent/soter
greendao
由于需要安装插件什么的 请按照配置
数据库操作框架 传说数据库操作库 安卓最好用的库啥的挺多 去选择一个框架的时候一定要先去看一下是不是符合你的需求 然后尽量去选star比较多的 而且版本好比较高的 这样的框架比较接受的主历史的考验 中途要是发现框架漫步不了需求再去改 那就是作死了 也不是说star少的就不好 还是要看项目的具体需求。
由于安卓手机的屏幕分辨率大小不一 所以在手机分辨率上面也要去做适配
当然适配方法有很多
比如用相对布局 RelativeLayout
使用网上的自定义的布局
我用的是dimen 根据系统分辨率的不同自动选择dpi 具体生成的工具我会放在github上面
具体请看 鸿洋大神的安卓终极适配方案(真不明白 为什么csdn的大神们都愿意用婚纱照 是告诉我们奋斗就会有个好对象呢 还是告诉我们单身是成不了大神的/wx)
基础框架我们就加进这些来 剩下的用的时候再说
下面给给大家看一下我这几天做的效果