News
前言
谨以此项目送给那些即将踏入Android开发领域的小伙伴们,希望我的项目可以让你们更一步的了解Android开发。基础很好的小伙伴可以绕道了,这个项目不太适合你们!
项目介绍
基于Android平台的新闻阅读App,数据来源聚合数据,官网地址:https://www.juhe.cn/docs/api/id/235 , 新闻大致分为:头条,社会,国内等九大类型,采用侧滑菜单的模式,完美的实现了:
- 基于侧滑菜单的沉浸式状态栏;
- App冷启动导致启动白屏的解决方案;
- RecyclerView.Adapter的自己封装头部,尾部,空白页面;
- App的适配问题;
- 利用GreenDao3.0去实现App的收藏功能;
- 对新闻详情页面中的WebView进行优化和处理,避免内存泄露;
- 采用MVP架构,对RxJava2.0+Retrofit网络请求框架进行封装,在BaseActivity中对于Presenter的添加和移除均做好处理,避免View移除之后的内存泄漏。
- 如若页面无法请求数据,请在聚合数据申请自己的KEY替换Config中的BASE_KEY,如若未解决,请联系我!
软件架构以及开发中遇到的问题
1.采用MVP+RaJava2.0+Retrofit作为软件的架构,对控制器Presenter进行封装,在BaseActivity的onCreate()和onDestroy()方法中可以对Presenter进行初始化和解除绑定,避免在View失效的情况下产生内除泄露,对于MVP的相关知识点推荐几篇文章:
- 深入讲解Android MVP框架,附一个很屌的实现MVP架构的开源库Ted Mosby
- 改造 Android 官方架构组件 ViewModel
- Google官方架构组件引入MVPArms
- 传统MVP用在项目中是真的方便还是累赘?
- 看完不会写MVP架构我跪搓板
2.App应用适配。在实际的公司项目开发中,适配对于Android开发者来说是一个避免不了的问题,本人整理了现在技术领域中最快捷有效的三种适配方式,便于读者了解和选用:
- 首先咱们得了解px,dp,dpi的区别吧?
- 鸿洋的Auto适配方案,推荐用于写Demo和毕业设计使用,公司项目还是算了,毕竟问题还是比较多,性能稍微差了点,不过学一学思想和代码还是很不错的!
- Android 目前最稳定和高效的UI适配方案(也是作者极力推荐的)
- 今日头条Android客户端是配新方案,既然是新的,问题还是有的,性能没话说,只是切换成其他语言好像有点问题
3.关于App启动时候白屏和黑屏,侧滑菜单的沉浸式状态栏的实现,以及App数据库插件GreenDao3.0的基本使用:
- 关于App启动时候的白屏可以在启动页SplashActivity的Theme中设置android:windowBackground图片,详细可以阅读以下文章:
- 关于侧滑菜单的沉浸式状态栏,如下两张图是对该问题最好的诠释:
- 关于数据库插件GreenDao3.0需要注意的地方就是一些初始化和增删改查一些地方,百度都可以搜索到基本的用法,这里不再赘述。
项目深入
1.根据项目中的Module BaseAdapter可以体会一下封装的概念,无论是RecyclerView适配器还是MVP架构的封装,作者都是看过很多代码并且在公司开发中总结出来的;
2.项目中的img/凤凰新闻.pxcp文件是UI尺寸标注文件,百度下载像素大厨打开文件即可看到尺寸标注,新入门的小白可以照着标注文件学一学布局,可以更快速的上手;
应用试玩
总结
- Android开发本身就是一件非常容易入门但是难以深入的一项技术,知识面覆盖非常广,技术杂乱难以深入,但是希望有我的项目可以帮到素不相识的你,愿你在Android开发的道路上越走越宽,越走越平坦。
- 项目地址:https://gitee.com/YiDer/News
- 码云个人地址: https://gitee.com/YiDer
- 联系方式:1070138445
- 广告:本人承接各个学历的计算机毕业设计,主要方向是Java,Android以及Web,公司信誉和个人资料担保,开发周期固定,保障顾客利益,避免各类骗术!