android分享到微博客户端,开发一个Android微博客户端+Web后台
这里是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后台相关推荐
- interlib android客户端开发,基于Android移动图书馆设计与开发.doc
基于Android移动图书馆设计与开发 基于Android移动图书馆设计与开发 [摘 要]随着移动 技术的发展,图书馆数字化的资源已不局限于在电脑上进行展示,手机已成为用户浏览图书 馆数字化资源的重要 ...
- android中的插件开发框架,设计并开发一个 Android 的插件化框架
结合动态加载系列文章的分析,现在开始设计并开发一个 Android 的插件化框架,命名为 Frontia.Frontia 有 "前端" 的意思,寓意着 Android 插件能像前端 ...
- 新浪微博客户端开发--显示单条微博
新浪微博客户端开发--显示单条微博 2013年11月23日 新浪微博客户端开发记录 前面两篇博客介绍了如何调用新浪微博API发布微博,任务队列的实现流程,自定义微博adapter的实现,异步更新UI的 ...
- python做客户端适合吗_太简单!只学十分钟,Python菜鸟也能开发一个区块链客户端...
原标题:太简单!只学十分钟,Python菜鸟也能开发一个区块链客户端 作者:Adil Moujahid 编译:kou.Eli 本文转自区块链大本营(ID:blockchai_camp),转载需授权 区 ...
- 开发一个android app需要的技术
最近一直在忙着工作的事,很久没有更新博客了,今天突发奇想要把自己学到的android方面的知识记录下来,一方面是为了系统的回顾一下知识点自己的学习路线,另一方面希望能帮到更多初学的朋友.学习andro ...
- interlib android客户端开发,基于Android的移动图书馆设计与开发
[摘 要]随着移动 技术的发展,图书馆数字化的资源已不局限于在电脑上进行展示,手机已成为用户浏览图书 馆数字化资源的重要工具?本文根据笔者所在图书馆的服务需求进行分析,在图书馆Aleph5 00 20 ...
- Android:Socket客户端开发,Android 的Socket客户端优化,Android非UI线程修改控件程序崩溃的问题
一.Android:Socket客户端开发 创建一个工程 我们要做的是按下按键之后,去往服务器 (服务器) 或者我们自己写的服务器 ,给他发送一些预定好的东西 然后打开操作界面 然后修改一下 你要发送 ...
- 如何自己开发一个Android APP(3)——XML和Android
XML是一种用于保存数据值的语言. XML是一种标记语言,类似于HTML--如果之前接触过Web开发的话.XML文件利用树状结构作为数据模型.通常来说,一个布局文件拥有一个根布局元素,并将其作为特定布 ...
- Android安卓-开发一个android桌面
从0开始 开发一个属于自己的桌面程序 最近在开发一个新项目,需要把应用改成桌面,并引导用户设置为默认桌面,完成后的效果如下图: 1.添加XML <activity android:name=&q ...
最新文章
- 学习笔记:部署趋势科技企业安全无忧版——服务器端和web控制台的安装(一)...
- Android程序员的技术要求和学习路线
- How to install python packages
- 卸载idea2020不干净_强制卸载软件程序、以及清理注册表
- ubuntu下面supertux2的玩法
- java 运行class 传参_JAVA 不同Class传值问题
- Java 8星期五:Java 8的阴暗面
- vue路由传参两种方式;vue路由传参query与params区别;vue路由跳转的带参与不带参,路由跳转传参方式:name 、 path;
- TV Distortion Bundle mac - AE画面像素破损信号干扰失真插件
- corn java 可配置_定时任务工具——CronUtil
- Android P对dtbo分区
- PAT Basic 1012
- mysql 计算时区差_在MySQL中计算时区的偏移量
- 基于Java分词的ikanalyzer工具
- 报错处理——# Creating Server TCP listening socket *:6379: bind: Address already in use
- Centos7 Redhat7使用
- 风尘若幻_封装win7_sp3(终于可以和大家见面了,欢迎试用-谢谢支持!!!)
- 华为5大设计师讲述HarmonyOS UX设计背后的故事
- span 禁止选中_网页代码常用小技巧(禁止另存为)
- 微信上传临时素材|微信公众号发送图片
热门文章
- iphone计算机快捷键,Mac快捷键有哪些 苹果电脑快捷键大全-电脑教程
- 大家好我是二龙山扛把子
- 功能安全是什么?FSoE是什么?Safety over EtherCAT
- 用电脑怎么制作GIF
- Oracle数据库查询被锁的表以及解锁表操作
- JavaScript之jQuery番外篇【打地鼠游戏的制作讲解】
- 实现Twitter-UI效果
- Ant design系列认知
- vb.net video设备数量_给新手写的便宜好用录音设备推荐(四)sE V7 X动圈话筒+guitaRF吉他音箱声学隔板...
- Android U盘文件读写复制操作