这里是Github地址,供大家学习交流Github

个人觉得最重要的是设计好Json数据协议,利用PHP输出Json数据,采用Okhttp和Gson得到Java数据模型,Gson泛型的问题,将实体消息封装到inner字段内,通过类继承绕开泛型,code字段和msg字段交给BaseActivity,BaseFragment检查处理。

Token字段登录后存入MySQL,并缓存到Redis,登录后自动刷新,旧的自动废弃。

其余主要是一些常规的优化,图片的标签防止错位,缩略图,LRU的缓存等

微博比较有意思的就是@功能,#话题#功能,通过正则表达式匹配来提取信息,生成提醒等批量插入MySQL,提高性能,#话题#功能有起始和终止#号,比较好匹配,而@功能由于没有中止符号较为难办,本项目支持两种:@Java@Scala@Kotlin或者@Java @Scala @Kotlin即通过后面的@符号或者空格来界定,不知有无更好的设计。UI通过SpannableString显示和响应点击事件。

本项目没有实现转发微博,特别是针对多人连续转发,本人也考虑了两种方案,一种是每条微博保存被转发的微博id(如果多次转发,只保留最近的一条),显示时只显示对当前和最近的一条微博,这样查询起来比较快。另外一种是数据库冗余设计,即保存最原始的微博ID,并且保存所有中间转发的内容,所有中间妆发内容包括转发人统统转化成字符串存储,这样刷微博时可以显示全部转发内容和转发人,不知道新浪微博是怎么设计的。

android分享到微博客户端,开发一个Android微博客户端+Web后台相关推荐

  1. interlib android客户端开发,基于Android移动图书馆设计与开发.doc

    基于Android移动图书馆设计与开发 基于Android移动图书馆设计与开发 [摘 要]随着移动 技术的发展,图书馆数字化的资源已不局限于在电脑上进行展示,手机已成为用户浏览图书 馆数字化资源的重要 ...

  2. android中的插件开发框架,设计并开发一个 Android 的插件化框架

    结合动态加载系列文章的分析,现在开始设计并开发一个 Android 的插件化框架,命名为 Frontia.Frontia 有 "前端" 的意思,寓意着 Android 插件能像前端 ...

  3. 新浪微博客户端开发--显示单条微博

    新浪微博客户端开发--显示单条微博 2013年11月23日 新浪微博客户端开发记录 前面两篇博客介绍了如何调用新浪微博API发布微博,任务队列的实现流程,自定义微博adapter的实现,异步更新UI的 ...

  4. python做客户端适合吗_太简单!只学十分钟,Python菜鸟也能开发一个区块链客户端...

    原标题:太简单!只学十分钟,Python菜鸟也能开发一个区块链客户端 作者:Adil Moujahid 编译:kou.Eli 本文转自区块链大本营(ID:blockchai_camp),转载需授权 区 ...

  5. 开发一个android app需要的技术

    最近一直在忙着工作的事,很久没有更新博客了,今天突发奇想要把自己学到的android方面的知识记录下来,一方面是为了系统的回顾一下知识点自己的学习路线,另一方面希望能帮到更多初学的朋友.学习andro ...

  6. interlib android客户端开发,基于Android的移动图书馆设计与开发

    [摘 要]随着移动 技术的发展,图书馆数字化的资源已不局限于在电脑上进行展示,手机已成为用户浏览图书 馆数字化资源的重要工具?本文根据笔者所在图书馆的服务需求进行分析,在图书馆Aleph5 00 20 ...

  7. Android:Socket客户端开发,Android 的Socket客户端优化,Android非UI线程修改控件程序崩溃的问题

    一.Android:Socket客户端开发 创建一个工程 我们要做的是按下按键之后,去往服务器 (服务器) 或者我们自己写的服务器 ,给他发送一些预定好的东西 然后打开操作界面 然后修改一下 你要发送 ...

  8. 如何自己开发一个Android APP(3)——XML和Android

    XML是一种用于保存数据值的语言. XML是一种标记语言,类似于HTML--如果之前接触过Web开发的话.XML文件利用树状结构作为数据模型.通常来说,一个布局文件拥有一个根布局元素,并将其作为特定布 ...

  9. Android安卓-开发一个android桌面

    从0开始 开发一个属于自己的桌面程序 最近在开发一个新项目,需要把应用改成桌面,并引导用户设置为默认桌面,完成后的效果如下图: 1.添加XML <activity android:name=&q ...

最新文章

  1. 学习笔记:部署趋势科技企业安全无忧版——服务器端和web控制台的安装(一)...
  2. Android程序员的技术要求和学习路线
  3. How to install python packages
  4. 卸载idea2020不干净_强制卸载软件程序、以及清理注册表
  5. ubuntu下面supertux2的玩法
  6. java 运行class 传参_JAVA 不同Class传值问题
  7. Java 8星期五:Java 8的阴暗面
  8. vue路由传参两种方式;vue路由传参query与params区别;vue路由跳转的带参与不带参,路由跳转传参方式:name 、 path;
  9. TV Distortion Bundle mac - AE画面像素破损信号干扰失真插件
  10. corn java 可配置_定时任务工具——CronUtil
  11. Android P对dtbo分区
  12. PAT Basic 1012
  13. mysql 计算时区差_在MySQL中计算时区的偏移量
  14. 基于Java分词的ikanalyzer工具
  15. 报错处理——# Creating Server TCP listening socket *:6379: bind: Address already in use
  16. Centos7 Redhat7使用
  17. 风尘若幻_封装win7_sp3(终于可以和大家见面了,欢迎试用-谢谢支持!!!)
  18. 华为5大设计师讲述HarmonyOS UX设计背后的故事
  19. span 禁止选中_网页代码常用小技巧(禁止另存为)
  20. 微信上传临时素材|微信公众号发送图片

热门文章

  1. iphone计算机快捷键,Mac快捷键有哪些 苹果电脑快捷键大全-电脑教程
  2. 大家好我是二龙山扛把子
  3. 功能安全是什么?FSoE是什么?Safety over EtherCAT
  4. 用电脑怎么制作GIF
  5. Oracle数据库查询被锁的表以及解锁表操作
  6. JavaScript之jQuery番外篇【打地鼠游戏的制作讲解】
  7. 实现Twitter-UI效果
  8. Ant design系列认知
  9. vb.net video设备数量_给新手写的便宜好用录音设备推荐(四)sE V7 X动圈话筒+guitaRF吉他音箱声学隔板...
  10. Android U盘文件读写复制操作