当前位置: 首页 > 后端技术 > PHP

我记得一个安卓微博客户端的开发

时间:2023-03-29 17:08:13 PHP

github地址。最近抽空开发了一个Android微博系统进行实践。踩了很多坑,积累了一些经验。因为之前没有和服务器交互过。先用php+mysql+redis搭建web后台,通过json格式提供接口。在这里,我踩到了Gson泛型的坑,但是我通过对json协议进行了特殊的设计,绕过了这个坑。Okhttp和Gson提供了统一的服务接口,使用起来比较方便,没有使用Retrofit等框架。由于自己边做边设计架构,也走了很多弯路,添加数据库表字段,然后修改对应的JavaBean,还好对架构影响不大,所以改动小,扩展性好.个人认为最重要的是设计Json数据协议,使用PHP输出Json数据,使用Okhttp和Gson获取Java数据模型,Gson泛型,将实体消息封装到innerfield中,通过类继承绕过泛型。code字段和msg字段交给BaseActivity和BaseFragment进行检查和处理。登录后Token字段存储在MySQL中,缓存在Redis中。登录后自动刷新,旧的自动丢弃。剩下的主要是一些通用的优化,图片标签防止错位,缩略图,LRU缓存等。微博比较有意思的是@功能,#话题#功能,通过正则表达式匹配提取信息,生成提醒等。将它们批量插入到MySQL中,为了提高性能,#话题#函数有开始和结束#号,比较好匹配,@函数比较难,因为没有停止符号。本项目支持两种类型:@Java@Scala@Kotlin或@Java@Scala@Kotlin也就是通过@符号或者后面的空格来定义。不知道有没有更好的设计。UI通过SpannableString显示和响应点击事件。运行截图使用了一些开源的工具库,里面还是有很多坑,得打补丁。不过界面的设计不断修改,还是比较满意的。