Android-2

安卓微信仿制之路 第一步

2018-04-17  本文已影响110人  郑志伟vv

实习也半年了,觉得自己前几个月过的太奢侈了,没事打个游戏、看电影。 于是开始想着去做点东西,一直没有很好的需求和想法。上个月,本来想依照这微信去做一个表白软件的 ,现在,也没那心思了,那我就把微信主要的东西都给仿做出来 然后试着去添加一些自己的元素。

然后我把这个过程记录下来 也方便以后自己去查看.

项目目录

项目开发的时候一定要分好目录!!! 这样也会使你以后代码的阅读和重新修改变得更加便捷 ,整个项目也简洁明了。

因为我觉得这个项目不会太大  所以我就选择了这种分层方式,大项目的话 我觉得按模块分会更清晰。

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)

基础框架我们就加进这些来 剩下的用的时候再说 

下面给给大家看一下我这几天做的效果

(gif图 画质就这样了)
上一篇 下一篇

猜你喜欢

热点阅读